diff options
author | Zach Mullen <zach.mullen@kitware.com> | 2009-09-22 16:06:03 (GMT) |
---|---|---|
committer | Zach Mullen <zach.mullen@kitware.com> | 2009-09-22 16:06:03 (GMT) |
commit | 664a409ae03050b68add7fa642d5758c7dff2630 (patch) | |
tree | a21b6050e23d8d8326223b03abbc9c0b453e8069 /Tests | |
parent | ca299989431279c48444837bcd603b127b0a9fad (diff) | |
download | CMake-664a409ae03050b68add7fa642d5758c7dff2630.zip CMake-664a409ae03050b68add7fa642d5758c7dff2630.tar.gz CMake-664a409ae03050b68add7fa642d5758c7dff2630.tar.bz2 |
Added tests for ctest parallel options (PARALLEL_LEVEL, PROCESSORS, RUN_SERIAL)
Diffstat (limited to 'Tests')
-rw-r--r-- | Tests/CMakeLists.txt | 9 | ||||
-rw-r--r-- | Tests/CTestTestParallel/CMakeLists.txt | 24 | ||||
-rw-r--r-- | Tests/CTestTestParallel/CTestConfig.cmake | 7 | ||||
-rw-r--r-- | Tests/CTestTestParallel/lockFile.cxx | 20 | ||||
-rw-r--r-- | Tests/CTestTestParallel/test.cmake.in | 33 |
5 files changed, 93 insertions, 0 deletions
diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt index 4f8b1db..2420fc0 100644 --- a/Tests/CMakeLists.txt +++ b/Tests/CMakeLists.txt @@ -1083,6 +1083,15 @@ ${CMake_BINARY_DIR}/bin/cmake -DVERSION=CVS -P ${CMake_SOURCE_DIR}/Utilities/Rel ) SET_TESTS_PROPERTIES(CTestTestCrash PROPERTIES PASS_REGULAR_EXPRESSION "SegFault") + + CONFIGURE_FILE( + "${CMake_SOURCE_DIR}/Tests/CTestTestParallel/test.cmake.in" + "${CMake_BINARY_DIR}/Tests/CTestTestParallel/test.cmake" + @ONLY ESCAPE_QUOTES) + ADD_TEST(CTestTestParallel ${CMAKE_CTEST_COMMAND} + -S "${CMake_BINARY_DIR}/Tests/CTestTestParallel/test.cmake" -V + --output-log "${CMake_BINARY_DIR}/Tests/CTestTestParallel/testOutput.log" + ) ADD_TEST(CTestTestShowOnly ${CMAKE_CTEST_COMMAND} -N ) diff --git a/Tests/CTestTestParallel/CMakeLists.txt b/Tests/CTestTestParallel/CMakeLists.txt new file mode 100644 index 0000000..b6d31b3 --- /dev/null +++ b/Tests/CTestTestParallel/CMakeLists.txt @@ -0,0 +1,24 @@ +cmake_minimum_required (VERSION 2.6) +PROJECT(CTestTestParallel) + +SET(DART_ROOT "" CACHE STRING "" FORCE) +ENABLE_TESTING() +INCLUDE (${CMAKE_ROOT}/Modules/Dart.cmake) + +GET_FILENAME_COMPONENT(CTEST_COMMAND "${CMAKE_COMMAND}" PATH) +SET(CTEST_COMMAND "${CTEST_COMMAND}/ctest") + +ADD_EXECUTABLE (LockFile lockFile.cxx) +TARGET_LINK_LIBRARIES (NoBuild ${EXTRA_LIBS}) + +ENABLE_TESTING () + +ADD_TEST (TestRunSerial1 LockFile) +ADD_TEST (TestRunSerial2 LockFile) +SET_TESTS_PROPERTIES(TestRunSerial1 TestRunSerial2 PROPERTIES RUN_SERIAL true) + +ADD_TEST (TestProcessorsGreaterThanMPL1 LockFile) +ADD_TEST (TestProcessorsGreaterThanMPL2 LockFile) +SET_TESTS_PROPERTIES(TestProcessorsGreaterThanMPL1 PROPERTIES PROCESSORS 10) + +INCLUDE (CTest) diff --git a/Tests/CTestTestParallel/CTestConfig.cmake b/Tests/CTestTestParallel/CTestConfig.cmake new file mode 100644 index 0000000..c3c5038 --- /dev/null +++ b/Tests/CTestTestParallel/CTestConfig.cmake @@ -0,0 +1,7 @@ +set(CTEST_PROJECT_NAME "CTestTestParallel") +set(CTEST_NIGHTLY_START_TIME "21:00:00 EDT") +set(CTEST_DART_SERVER_VERSION "2") +set(CTEST_DROP_METHOD "http") +set(CTEST_DROP_SITE "www.cdash.org") +set(CTEST_DROP_LOCATION "/CDash/submit.php?project=PublicDashboard") +set(CTEST_DROP_SITE_CDASH TRUE) diff --git a/Tests/CTestTestParallel/lockFile.cxx b/Tests/CTestTestParallel/lockFile.cxx new file mode 100644 index 0000000..e46d0fd --- /dev/null +++ b/Tests/CTestTestParallel/lockFile.cxx @@ -0,0 +1,20 @@ +#include <iostream> +#include <fstream> + +//if run serially, works fine +//if run in parallel, someone will attempt to delete +//a locked file, which will fail +int main() +{ + std::string fname = "lockedFile.txt"; + std::fstream fout; + fout.open(fname.c_str(), std::ios::out); + + for(int i = 0; i < 10000; i++) + { + fout << "x"; + fout.flush(); + } + fout.close(); + return std::remove("lockedFile.txt"); +} diff --git a/Tests/CTestTestParallel/test.cmake.in b/Tests/CTestTestParallel/test.cmake.in new file mode 100644 index 0000000..870954e --- /dev/null +++ b/Tests/CTestTestParallel/test.cmake.in @@ -0,0 +1,33 @@ +CMAKE_MINIMUM_REQUIRED(VERSION 2.1) + +# Settings: +SET(CTEST_DASHBOARD_ROOT "@CMake_BINARY_DIR@/Tests/CTestTest") +SET(CTEST_SITE "@SITE@") +SET(CTEST_BUILD_NAME "CTestTest-@BUILDNAME@-Parallel") + +SET(CTEST_SOURCE_DIRECTORY "@CMake_SOURCE_DIR@/Tests/CTestTestParallel") +SET(CTEST_BINARY_DIRECTORY "@CMake_BINARY_DIR@/Tests/CTestTestParallel") +SET(CTEST_CVS_COMMAND "@CVSCOMMAND@") +SET(CTEST_CMAKE_GENERATOR "@CMAKE_GENERATOR@") +SET(CTEST_BUILD_CONFIGURATION "$ENV{CMAKE_CONFIG_TYPE}") +SET(CTEST_MEMORYCHECK_COMMAND "@MEMORYCHECK_COMMAND@") +SET(CTEST_MEMORYCHECK_SUPPRESSIONS_FILE "@MEMORYCHECK_SUPPRESSIONS_FILE@") +SET(CTEST_MEMORYCHECK_COMMAND_OPTIONS "@MEMORYCHECK_COMMAND_OPTIONS@") +SET(CTEST_COVERAGE_COMMAND "@COVERAGE_COMMAND@") +SET(CTEST_NOTES_FILES "${CTEST_SCRIPT_DIRECTORY}/${CTEST_SCRIPT_NAME}") + +#CTEST_EMPTY_BINARY_DIRECTORY(${CTEST_BINARY_DIRECTORY}) + +FILE(WRITE "${CTEST_BINARY_DIRECTORY}/CMakeCache.txt" " +CMAKE_CXX_FLAGS:STRING=@CMAKE_CXX_FLAGS@ +CMAKE_C_FLAGS:STRING=@CMAKE_C_FLAGS@ +CMAKE_C_COMPILER:STRING=@CMAKE_C_COMPILER@ +CMAKE_CXX_COMPILER:STRING=@CMAKE_CXX_COMPILER@ +CMAKE_C_COMPILER_ARG1:STRING=@CMAKE_C_COMPILER_ARG1@ +CMAKE_CXX_COMPILER_ARG1:STRING=@CMAKE_CXX_COMPILER_ARG1@ +") + +CTEST_START(Experimental) +CTEST_CONFIGURE(BUILD "${CTEST_BINARY_DIRECTORY}" RETURN_VALUE res) +CTEST_BUILD(BUILD "${CTEST_BINARY_DIRECTORY}" RETURN_VALUE res) +CTEST_TEST(BUILD "${CTEST_BINARY_DIRECTORY}" RETURN_VALUE res PARALLEL_LEVEL 4) |