Cmake-4

Step4:安装和测试

1)对于MathFunctions我们想安装库和头文件,但是对于应用程序我们安装可执行程序和配置头文件。

MathFunctions/CMakeLists.txt的末尾增加如下:

install(TARGETS MathFunctions DESTINATION lib)
install(FILES MathFunctions.h DESTINATION include)

在上一级的CMakeList中增加:

install(TARGETS Tutorial DESTINATION bin)
install(FILES "${PROJECT_BINARY_DIR}/TutorialConfig.h"
  DESTINATION include
  )

生成的 Demo 文件和 MathFunctions 函数库 libMathFunctions.o 文件将会被复制到 /usr/local/bin 中,而 MathFunctions.h 和生成的 config.h 文件则会被复制到 /usr/local/include 中

2)测试

enable_testing()

# does the application run
add_test(NAME Runs COMMAND Tutorial 25)

# does the usage message work?
add_test(NAME Usage COMMAND Tutorial)
set_tests_properties(Usage
  PROPERTIES PASS_REGULAR_EXPRESSION "Usage:.*number"
  )

# define a function to simplify adding tests
function(do_test target arg result)
  add_test(NAME Comp${arg} COMMAND ${target} ${arg})
  set_tests_properties(Comp${arg}
    PROPERTIES PASS_REGULAR_EXPRESSION ${result}
    )
endfunction(do_test)

# do a bunch of result based tests
do_test(Tutorial 4 "4 is 2")
do_test(Tutorial 9 "9 is 3")
do_test(Tutorial 5 "5 is 2.236")
do_test(Tutorial 7 "7 is 2.645")
do_test(Tutorial 25 "25 is 5")
do_test(Tutorial -25 "-25 is [-nan|nan|0]")
do_test(Tutorial 0.0001 "0.0001 is 0.01")

以下内容引用自:

原文链接:https://blog.csdn.net/qq_38450982/article/details/89156116

add_test():

运行的项目中添加测试。

add_test(<name> <command> [<arg>...])

 添加一个名为<name>的测试。测试名称不包含空格、引号或CMake语法中特殊的其他字符。

<command>指定测试命令行。如果<command>指定了一个可执行目标(由add_executable()创建),它将被在构建时创建的可执行文件的位置自动替换。

<arg>为传递给<command>的参数。

set_tests_properties()对测试属性进行设置,函数原型如下:

set_tests_properties(test1 [test2...] PROPERTIES prop1 value1 prop2 value2)

PROPERTIES 包括有WILL_FAIL、PASS_REGULAR_EXPRESSION、FAIL_REGULAR_EXPRESSION。代码中用到的是PASS_REGULAR_EXPRESSION,如果设置了这个属性,测试输出将根据指定的正则表达式进行检查,并且至少有一个正则表达式必须匹配,否则测试失败。如我们以第一个测试为例:

  1. add_test (TutorialComp25 Tutorial 25)

  2. set_tests_properties (TutorialComp25 PROPERTIES PASS_REGULAR_EXPRESSION "25 is 5")

添加一个名为TutorialComp25的测试,调用可执行文件Tutorial, Tutorial的功能是计算平方根,并且传给它的参数为25。然后设置测试TutorialComp25的属性,将输出根据指定的正则表达式即“25 is 5”进行匹配,如果匹配成功,则测试成功,否则则失败。


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值