首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >CMake的PASS_REGULAR_EXPRESSION如何匹配多行输出?

CMake的PASS_REGULAR_EXPRESSION如何匹配多行输出?
EN

Stack Overflow用户
提问于 2016-06-26 04:54:56
回答 1查看 1.9K关注 0票数 5

我想以以下方式通过CMake添加一个测试:

代码语言:javascript
复制
ADD_UNIT_TEST(MyTest)
set_tests_properties(
    MyTest
    PROPERTIES
        PASS_REGULAR_EXPRESSION
           "This matches the first line\n"
           "This matches the second line"
)

这个是可能的吗?多么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-03 18:39:52

我找到了帖子,并用文章中建议的代码修改了示例:

  • \n替换为[\r\n\t ]*

在我的CMake版本3.5.2中,以下内容确实成功地发挥了作用:

代码语言:javascript
复制
cmake_minimum_required(VERSION 3.5)

project(RegExMultiLine)

enable_testing()

add_test(
    NAME 
        MyTest 
    COMMAND 
        ${CMAKE_COMMAND} -E echo 
            "Some other line\n"
            "This matches the first line\n"
            "This matches the second line\n"
            "Another line"
)

set_tests_properties(
    MyTest
    PROPERTIES
        PASS_REGULAR_EXPRESSION
           "This matches the first line[\r\n\t ]*This matches the second line"
)

将给予:

代码语言:javascript
复制
> ctest -C Debug
[...]
    Start 1: MyTest
1/1 Test #1: MyTest ...........................   Passed    0.03 sec

而不是(当使用原始代码时):

代码语言:javascript
复制
> ctest -C Debug
[...]
    Start 1: MyTest
1/1 Test #1: MyTest ...........................***Failed  Required regular expression not found.Regex=[This matches the first line
This matches the second line
]  0.03 sec
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38035328

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档