te')); return $arr; } /* 遍历用户所有主题 * @param $uid 用户ID * @param int $page 页数 * @param int $pagesize 每页记录条数 * @param bool $desc 排序方式 TRUE降序 FALSE升序 * @param string $key 返回的数组用那一列的值作为 key * @param array $col 查询哪些列 */ function thread_tid_find_by_uid($uid, $page = 1, $pagesize = 1000, $desc = TRUE, $key = 'tid', $col = array()) { if (empty($uid)) return array(); $orderby = TRUE == $desc ? -1 : 1; $arr = thread_tid__find($cond = array('uid' => $uid), array('tid' => $orderby), $page, $pagesize, $key, $col); return $arr; } // 遍历栏目下tid 支持数组 $fid = array(1,2,3) function thread_tid_find_by_fid($fid, $page = 1, $pagesize = 1000, $desc = TRUE) { if (empty($fid)) return array(); $orderby = TRUE == $desc ? -1 : 1; $arr = thread_tid__find($cond = array('fid' => $fid), array('tid' => $orderby), $page, $pagesize, 'tid', array('tid', 'verify_date')); return $arr; } function thread_tid_delete($tid) { if (empty($tid)) return FALSE; $r = thread_tid__delete(array('tid' => $tid)); return $r; } function thread_tid_count() { $n = thread_tid__count(); return $n; } // 统计用户主题数 大数量下严谨使用非主键统计 function thread_uid_count($uid) { $n = thread_tid__count(array('uid' => $uid)); return $n; } // 统计栏目主题数 大数量下严谨使用非主键统计 function thread_fid_count($fid) { $n = thread_tid__count(array('fid' => $fid)); return $n; } ?>windows环境下使用gcov和gcovr
最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

windows环境下使用gcov和gcovr

运维笔记admin2浏览0评论

前提

        一个“.c”或者“.cpp”文件,gcc命令能够使用,下载了lcov或者gcovr

安装


    ★  gcov:不用安装,会跟随GCC配套发布


    ★  lcov:gcov的图形化前端
                Ubuntu系统安装:sudo apt-get install lcov
                windows系统安装:windows环境博主未安装lcov,可能比较繁琐,有需要可以自行搜索安装


    ★  gcovr:gcov的图形化前端,功能更全面,更方便,有lcov的全部功能
                windows/linux系统下安装:pip install gcovr(前提是安装了python,能使用pip)

操作过程


    (0)在.c文件所在路径下打开cmd。


    (1)生成覆盖率信息文件(“.exe”和“.gcno”文件): 
                ●   gcc(或者g++) -fprofile-arcs -ftest-coverage .c文件名

//比如我要打开“hello.c”
使用命令:

gcc -fprofile-arcs -ftest-coverage -o hello hello.c

可以得到hello.c 的可运行文件hello.exe
也可以不要“-o hello”,那样会得到a.exe文件


                        -ftest-coverage选项:添加记录单行代码执行次数的指令
                        -fprofile-arc选项:添加程序每个分支的检测代码(if或者其它条件语句)


    (2)生成代码覆盖率信息文件(“.gcda”文件):
                ●   运行可执行程序“.exe”文件

用上面的例子

使用命令行:
    
    hello.exe


    (3)生成代码覆盖率报告(“.gcov”文件和“.c.gcov”文件): 
                ●   gcov .c文件名

gcov hello.c

★  LCOV和GCOVR   二选一

◐可视化(LCOV):(LCOV博主没有使用,此处是搜索得到)


    (4)用LCOV收集相关数据并生成一个.info文件:
        ●   lcov --capture --directory . --output-file coverage.info


    (5)通过genhtml将coverage.info转化为HTML文件(genhtml是lcov自带的工具):
        ●   genhtml coverage.info --output-directory out
            生成的OUT目录里包含了HTML版的代码覆盖率报告。


◑可视化(GCOVR):


    (4)生成HTML代码覆盖率报告
        ●   gcovr -r . --html --html-details -o coverage.html

直接输入命令

 gcovr -r . --html-details -o coverage.html

如果想修改得到的文件名,可以修改coverage.html

              

发布评论

评论列表(0)

  1. 暂无评论