2010-08-23 71 views
2

我將在我的C++項目中使用CDash和CMake/CTest。在CTest和CDash中使用CMake

爲了使CDASH和定製設置,例如 「MEMORYCHECK_SUPPRESSIONS_FILE」「DART_TESTING_TIMEOUT」,我在根的CMakeLists.txt

 

set(MEMORYCHECK_SUPPRESSIONS_FILE "${CMAKE_SOURCE_DIR}/valgrind.supp") 
set(DART_TESTING_TIMEOUT "120") 
include(CTest) 

 

添加下列行然而,生成的「DartConfiguration.tcl」根本不包含我的設置 (MemoryCheckSuppressionFile是空的和超時仍是缺省值)

我發現,例如,如果我通過-DDART_TESTING_TIMEOUT = STRING:120,它的工作原理,但是,如果在的CMakeLists.txt指定它們它將失敗。

預先感謝您:)

DartConfiguration.tcl

 



# Dynamic analisys and coverage 
PurifyCommand: 
ValgrindCommand: 
ValgrindCommandOptions: 
MemoryCheckCommand: /usr/bin/valgrind 
MemoryCheckCommandOptions: 
MemoryCheckSuppressionFile: 
CoverageCommand: /usr/bin/gcov 

# Testing options 
# TimeOut is the amount of time in seconds to wait for processes 
# to complete during testing. After TimeOut seconds, the 
# process will be summaily terminated. 
# Currently set to 25 -9.0.0.71596-0inutes 
TimeOut: 1500 

 

回答

2

有三種可能的解決方案:

  1. 創建緩存變量。這也創造了一個可變的GUI項,這並不總是你想要的自動測試:SET(DART_TESTING_TIMEOUT "120" CACHE STRING "")

  2. 你用一個簡單的「設置」命令指定的選項,但在一個叫DartConfig.cmake而不是文件主CMakeLists.txt。該文件被解析創建DartConfiguration.tcl

  3. 您可以使用腳本CTEST設置您dartclient:http://www.cmake.org/Wiki/CMake_Scripting_Of_CTest