使用ctest / cmake测试非零退出状态

时间:2018-07-11 15:38:54

标签: unit-testing cmake ctest

感兴趣的应用程序是编译器,当它在源中遇到错误时,它将返回非零退出代码。编译器的单元测试由一些小片段组成,这些小片段有意触发错误。

用于添加测试的功能是:

function(add_compiler_test test_name options)
  add_test(NAME ${test_name}
    COMMAND $<TARGET_FILE:pawncc> ${DEFAULT_COMPILER_OPTIONS} ${options})
  set_tests_properties(${test_name} PROPERTIES
    ENVIRONMENT PATH=$<TARGET_FILE_DIR:pawnc>)
endfunction()

尽管程序是正确的行为,但当程序返回非零退出代码时,这会导致测试失败。

如何测试程序的退出状态?

1 个答案:

答案 0 :(得分:1)

如果您希望测试在返回非零退出状态时报告为“成功”,否则返回FAILED,则为测试设置WILL_FAIL属性:

set_tests_properties(<test1> <test2> ... PROPERTIES WILL_FAIL TRUE)