gcov辅助脚本
(金庆的专栏)
代码覆盖测试查看结果时,需要进入代码所在目录,调用gcov,然后vi查看。
因为代码目录结构复杂,进出子目录太麻烦,所以用以下脚本直接生成与查看。
一般是用TSVN列出有更改的文件,将文件列表复制到文本,然后复制其中的CPP文件名作为参数,在代码根目录下执行脚本。
#!/bin/sh
# gcov.sh
# Usage: gcov.sh abc.sh
# Find file and cd to it, then call gcov and vim the result.
if [ $# -eq 0 ]
then
echo Usage: $0 SOURCE_FILE
echo Example: $0 abc.cpp
exit
fi
DIR=`find . -name $1.gcda -exec dirname {} \;`
cd ${DIR}
gcov $1.gcda
vim +/##### $1.gcov
说明:
find 在当前目录下查找文件。
dirname 在查找结果中获取目录名
cd 进入目录
gcov 在该目录下执行 gcov
vim 打开gcov输出文件,参数 +/##### 用于查找 ##### 并跳到该行。
##### 是源代码未执行的标记。
该脚本不能处理多个文件具有相同文件名的情况。