我一直在读CMake教程。
“安装和测试(步骤3)”部分有以下测试脚本:
add_test (TutorialComp25 Tutorial 25)
set_tests_properties (TutorialComp25
PROPERTIES PASS_REGULAR_EXPRESSION "25 is 5")根据CMake文档,add_test很简单,但我不了解set_tests_properties是如何工作的;特别是这个"25是5“。
听起来像是
if (INPUT_ARG is OUTPUT_RESULT)
test passed
else
test failed对吗?
发布于 2015-03-18 22:42:35
来自PASS_REGULAR_EXPRESSION的文档
输出必须匹配这个正则表达式才能通过测试。 如果设置,测试输出将根据指定的正则表达式进行检查,并且至少有一个正则表达式必须匹配,否则测试将失败。
教程示例的第一个测试(称为TutorialRuns)没有设置任何属性。这意味着,如果CTest exe在完成时返回0,并且通过了参数25,则该测试将被视为已通过测试。
在第二个测试中,调用
set_tests_properties (TutorialComp25 PROPERTIES PASS_REGULAR_EXPRESSION "25 is 5")这意味着运行带有arg的Tutorial exe的控制台输出必须包含字符串"25 is 5"才能被视为pass。在这种情况下,返回值将被忽略。由于测试exe输出:
The square root of 25 is 5它过去了。
记住,这是一个正在应用的正则表达式。如果将PASS_REGULAR_EXPRESSION设置为例如"^25 is 5",则测试将失败,因为这是为了查找输出的start中的短语25 is 5。string命令的文档中简要描述了CMake的regex语法。
https://stackoverflow.com/questions/29132812
复制相似问题