【问题标题】:The regular expression in the FILTER option of gcovrgcovr 的 FILTER 选项中的正则表达式
【发布时间】:2015-09-14 16:33:13
【问题描述】:

我使用gcovr 来读取程序 foo.c 的覆盖率信息。语法是

gcovr -r . -b --filter=FILE_PATTERN

'-r.'部分表示当前目录为搜索根目录,'-b' 表示分支覆盖,FILE_PATTERN 部分表示只保留与此正则表达式匹配的数据文件,根据 gcovr 的用户指南http://gcovr.com/guide.html

所以我使用以下命令行

gcovr -r . -b --filter='foo\\.c'

但是这个命令没有找到关于 foo.c 检索到的信息。看来我使用了错误的正则表达式。你怎么看?

【问题讨论】:

    标签: regex gcov gcovr


    【解决方案1】:

    除非你的文件名是字面意思:foo\.c
    该正则表达式不匹配。

    在正则表达式中,双反斜杠创建一个文字反斜杠。
    您可能会混淆正则表达式转义序列和 C/C++ 字符串转义序列。

    如果您的文件名是字面意思:foo.c
    使用这个正则表达式模式: foo\.c

    【讨论】:

    • 我已使用--exclude='.*Test.*' 排除任何名称中带有“Test”的文件,但仍有许多文件如TestIO.cpp 被报告 - 有什么建议吗?
    • @DavidDoria 你还受到这个问题的影响吗?如果您可以使用最新的 gcovr 制作一个小型示例项目来重现此问题,我很想获得有关 gcovr 项目的错误报告:)
    • @amon 抱歉,我很久很久没有看这个了,目前没有足够的带宽。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-06-15
    • 2015-05-05
    • 1970-01-01
    • 2015-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多