首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PASS_REGULAR_EXPRESSION in CMake

PASS_REGULAR_EXPRESSION in CMake
EN

Stack Overflow用户
提问于 2015-03-18 21:14:43
回答 1查看 1.8K关注 0票数 2

我一直在读CMake教程

“安装和测试(步骤3)”部分有以下测试脚本:

代码语言:javascript
复制
add_test (TutorialComp25 Tutorial 25)
set_tests_properties (TutorialComp25 
  PROPERTIES PASS_REGULAR_EXPRESSION "25 is 5")

根据CMake文档,add_test很简单,但我不了解set_tests_properties是如何工作的;特别是这个"25是5“。

听起来像是

代码语言:javascript
复制
if (INPUT_ARG is OUTPUT_RESULT)
  test passed
else
  test failed

对吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-03-18 22:42:35

来自PASS_REGULAR_EXPRESSION的文档

输出必须匹配这个正则表达式才能通过测试。 如果设置,测试输出将根据指定的正则表达式进行检查,并且至少有一个正则表达式必须匹配,否则测试将失败。

教程示例的第一个测试(称为TutorialRuns)没有设置任何属性。这意味着,如果CTest exe在完成时返回0,并且通过了参数25,则该测试将被视为已通过测试。

在第二个测试中,调用

代码语言:javascript
复制
set_tests_properties (TutorialComp25 PROPERTIES PASS_REGULAR_EXPRESSION "25 is 5")

这意味着运行带有arg的Tutorial exe的控制台输出必须包含字符串"25 is 5"才能被视为pass。在这种情况下,返回值将被忽略。由于测试exe输出:

代码语言:javascript
复制
The square root of 25 is 5

它过去了。

记住,这是一个正在应用的正则表达式。如果将PASS_REGULAR_EXPRESSION设置为例如"^25 is 5",则测试将失败,因为这是为了查找输出的start中的短语25 is 5string命令的文档中简要描述了CMake的regex语法。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29132812

复制
相关文章

相似问题

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