9.MariaDB笔记——cmake使用介绍四安装与测试

来源:互联网 发布:淘宝ar怎么用 编辑:程序博客网 时间:2024/06/08 08:41

9.MariaDB笔记——cmake使用介绍四安装与测试

继续下一步,增加安装规则和测试。

对上篇中的MathFunctions库,我们安装库和头文件通过在MathFunctionsCMakeLists文件中加入如下两行:

install(TARGETS MathFunctions DESTINATION bin)

install (FILESMathFunctions.h DESTINATION include)

对于整个应用,在顶层的CMakeLists文件中加入如下:

# add the installtargets

install(TARGETS Tutorial DESTINATION bin)

install (FILES"${PROJECT_BINARY_DIR}/TutorialConfig.h"       

         DESTINATION include)

这样的话,输入make install后可以安装头文件,库,可执行文件到系统。

CMake 的变量CMAKE_INSTALL_PREFIX用于控制文件安装的前缀路径。

 

Tests

CMakeLists文件的最后可以加入一些基本测试来确保应用工作正常。

include(CTest)

# does theapplication run

add_test(TutorialRuns Tutorial 25)

# does it sqrtof 25

add_test(TutorialComp25 Tutorial 25)

set_tests_properties(TutorialComp25

  PROPERTIES PASS_REGULAR_EXPRESSION "25is 5")

# does ithandle negative numbers

add_test(TutorialNegative Tutorial -25)

set_tests_properties(TutorialNegative

  PROPERTIES PASS_REGULAR_EXPRESSION "-25is 0")

# does ithandle small numbers

add_test(TutorialSmall Tutorial 0.0001)

set_tests_properties(TutorialSmall

  PROPERTIES PASS_REGULAR_EXPRESSION"0.0001 is 0.01")

# does theusage message work?

add_test(TutorialUsage Tutorial)

set_tests_properties(TutorialUsage

  PROPERTIES

  PASS_REGULAR_EXPRESSION"Usage:.*number")

编译后,执行make ctest来进行测试。如下:

F:\ cmake_zhizuo>ctest

Test project F:/VS2010_ZHIZUO/cmake_zhizuo

   Start 1: TutorialRuns

1/5 Test #1: TutorialRuns.....................   Passed    0.95 sec

   Start 2: TutorialComp25

2/5 Test #2: TutorialComp25...................***Failed  Requiredregular expre

ssion not found.Regex=[25 is 5

] 0.02 sec

   Start 3: TutorialNegative

3/5 Test #3: TutorialNegative.................***Failed  Requiredregular expre

ssion not found.Regex=[-25 is 0

] 0.03 sec

   Start 4: TutorialSmall

4/5 Test #4: TutorialSmall....................***Failed  Requiredregular expre

ssion not found.Regex=[0.0001 is 0.01

] 0.02 sec

   Start 5: TutorialUsage

5/5 Test #5: TutorialUsage....................   Passed    0.02 sec

 

40% tests passed, 3 tests failed out of 5

 

Total Test time (real) =   1.09 sec

 

The following tests FAILED:

         2 - TutorialComp25 (Failed)

         3 - TutorialNegative (Failed)

         4 - TutorialSmall (Failed)

Errors while running CTest

如果需要增加很多测试,可以增加宏如下:

#define amacro to simplify adding tests, then use it

macro (do_testarg result)

  add_test (TutorialComp${arg} Tutorial ${arg})

  set_tests_properties (TutorialComp${arg}

    PROPERTIES PASS_REGULAR_EXPRESSION${result})

endmacro(do_test)

# do a bunchof result based tests

do_test (25"25 is 5")

do_test (-25"-25 is 0")

 

 

 

 

 

 

原创粉丝点击