diff options
Diffstat (limited to 'Tests/CTestTestParallel')
-rw-r--r-- | Tests/CTestTestParallel/CMakeLists.txt | 15 | ||||
-rw-r--r-- | Tests/CTestTestParallel/CTestConfig.cmake | 7 | ||||
-rw-r--r-- | Tests/CTestTestParallel/lockFile.c | 20 | ||||
-rw-r--r-- | Tests/CTestTestParallel/test.cmake.in | 21 |
4 files changed, 63 insertions, 0 deletions
diff --git a/Tests/CTestTestParallel/CMakeLists.txt b/Tests/CTestTestParallel/CMakeLists.txt new file mode 100644 index 000000000..fc53f6874 --- /dev/null +++ b/Tests/CTestTestParallel/CMakeLists.txt @@ -0,0 +1,15 @@ +cmake_minimum_required (VERSION 2.6) +PROJECT(CTestTestParallel) +INCLUDE(CTest) + +ADD_EXECUTABLE (LockFile lockFile.c) + +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) +SET_TESTS_PROPERTIES(TestProcessorsGreaterThanMPL1 PROPERTIES DEPENDS + TestProcessorsGreaterThanMPL2) diff --git a/Tests/CTestTestParallel/CTestConfig.cmake b/Tests/CTestTestParallel/CTestConfig.cmake new file mode 100644 index 000000000..c3c503881 --- /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.c b/Tests/CTestTestParallel/lockFile.c new file mode 100644 index 000000000..6a6a889cc --- /dev/null +++ b/Tests/CTestTestParallel/lockFile.c @@ -0,0 +1,20 @@ +#include <stdio.h> + +/*if run serially, works fine. + If run in parallel, someone will attempt to delete + a locked file, which will fail */ +int main(void) +{ + FILE* file; + int i; + const char* fname = "lockedFile.txt"; + file = fopen(fname, "w"); + + for(i = 0; i < 10000; i++) + { + fprintf(file, "%s", "x"); + fflush(file); + } + fclose(file); + return remove(fname); +} diff --git a/Tests/CTestTestParallel/test.cmake.in b/Tests/CTestTestParallel/test.cmake.in new file mode 100644 index 000000000..83845dee4 --- /dev/null +++ b/Tests/CTestTestParallel/test.cmake.in @@ -0,0 +1,21 @@ +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_TEST_GENERATOR@") +SET(CTEST_BUILD_CONFIGURATION "$ENV{CMAKE_CONFIG_TYPE}") +SET(CTEST_COVERAGE_COMMAND "@COVERAGE_COMMAND@") +SET(CTEST_NOTES_FILES "${CTEST_SCRIPT_DIRECTORY}/${CTEST_SCRIPT_NAME}") + +#CTEST_EMPTY_BINARY_DIRECTORY(${CTEST_BINARY_DIRECTORY}) + +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) |