diff options
Diffstat (limited to 'Tests')
-rw-r--r-- | Tests/CMakeLists.txt | 50 | ||||
-rw-r--r-- | Tests/CTestSubmitLargeOutput/CMakeLists.txt | 8 | ||||
-rw-r--r-- | Tests/CTestSubmitLargeOutput/CTestConfig.cmake | 6 | ||||
-rw-r--r-- | Tests/CTestSubmitLargeOutput/GenerateRandomOutput.cmake | 31 | ||||
-rw-r--r-- | Tests/CTestSubmitLargeOutput/test.cmake.in | 26 | ||||
-rw-r--r-- | Tests/CTestTest2/test.cmake.in | 6 | ||||
-rw-r--r-- | Tests/CTestTest3/test.cmake.in | 5 |
7 files changed, 128 insertions, 4 deletions
diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt index 7bc8b33..6a08b3c 100644 --- a/Tests/CMakeLists.txt +++ b/Tests/CMakeLists.txt @@ -1393,26 +1393,45 @@ ${CMake_BINARY_DIR}/bin/cmake -DVERSION=master -P ${CMake_SOURCE_DIR}/Utilities/ endforeach() - IF (CTEST_TEST_CTEST AND CMAKE_RUN_LONG_TESTS) + IF (CMAKE_TESTS_CDASH_SERVER) + SET(regex "^([^:]+)://([^/]+)(/.*)$") + + IF ("${CMAKE_TESTS_CDASH_SERVER}" MATCHES "${regex}") + SET(protocol "${CMAKE_MATCH_1}") + SET(server "${CMAKE_MATCH_2}") + SET(path "${CMAKE_MATCH_3}") + ELSE ("${CMAKE_TESTS_CDASH_SERVER}" MATCHES "${regex}") + SET(protocol "http") + SET(server "www.cdash.org") + SET(path "/CDash") + MESSAGE("warning: CMAKE_TESTS_CDASH_SERVER does not match expected regex...") + MESSAGE(" ...using default url='${protocol}://${server}${path}' for CTestTest[23]") + ENDIF ("${CMAKE_TESTS_CDASH_SERVER}" MATCHES "${regex}") + ENDIF (CMAKE_TESTS_CDASH_SERVER) + + + IF (CTEST_TEST_CTEST AND CMAKE_RUN_LONG_TESTS AND CMAKE_TESTS_CDASH_SERVER) CONFIGURE_FILE("${CMake_SOURCE_DIR}/Tests/CTestTest/test.cmake.in" "${CMake_BINARY_DIR}/Tests/CTestTest/test.cmake" @ONLY ESCAPE_QUOTES) ADD_TEST(CTestTest ${CMAKE_CTEST_COMMAND} -S "${CMake_BINARY_DIR}/Tests/CTestTest/test.cmake" -V --output-log "${CMake_BINARY_DIR}/Tests/CTestTest/testOutput.log" ) + CONFIGURE_FILE("${CMake_SOURCE_DIR}/Tests/CTestTest2/test.cmake.in" "${CMake_BINARY_DIR}/Tests/CTestTest2/test.cmake" @ONLY ESCAPE_QUOTES) ADD_TEST(CTestTest2 ${CMAKE_CTEST_COMMAND} -S "${CMake_BINARY_DIR}/Tests/CTestTest2/test.cmake" -V --output-log "${CMake_BINARY_DIR}/Tests/CTestTest2/testOutput.log" ) + CONFIGURE_FILE("${CMake_SOURCE_DIR}/Tests/CTestTest3/test.cmake.in" "${CMake_BINARY_DIR}/Tests/CTestTest3/test.cmake" @ONLY ESCAPE_QUOTES) ADD_TEST(CTestTest3 ${CMAKE_CTEST_COMMAND} -S "${CMake_BINARY_DIR}/Tests/CTestTest3/test.cmake" -V --output-log "${CMake_BINARY_DIR}/Tests/CTestTest3/testOutput.log" ) - + # these tests take a long time, make sure they have it # if timeouts have not already been set GET_TEST_PROPERTY(CTestTest TIMEOUT PREVIOUS_TIMEOUT) @@ -1432,7 +1451,32 @@ ${CMake_BINARY_DIR}/bin/cmake -DVERSION=master -P ${CMake_SOURCE_DIR}/Utilities/ SET_TESTS_PROPERTIES ( CTestTest3 PROPERTIES TIMEOUT ${CMAKE_LONG_TEST_TIMEOUT}) ENDIF ("${PREVIOUS_TIMEOUT}" MATCHES NOTFOUND) - ENDIF (CTEST_TEST_CTEST AND CMAKE_RUN_LONG_TESTS) + ENDIF (CTEST_TEST_CTEST AND CMAKE_RUN_LONG_TESTS AND CMAKE_TESTS_CDASH_SERVER) + + IF(NOT DEFINED CTEST_RUN_CTestSubmitLargeOutput) + SET(CTEST_RUN_CTestSubmitLargeOutput OFF) + + IF (CMAKE_TESTS_CDASH_SERVER AND "${server}" STREQUAL "localhost") + SET(CTEST_RUN_CTestSubmitLargeOutput ON) + ENDIF (CMAKE_TESTS_CDASH_SERVER AND "${server}" STREQUAL "localhost") + ENDIF(NOT DEFINED CTEST_RUN_CTestSubmitLargeOutput) + + IF(CTEST_RUN_CTestSubmitLargeOutput) + CONFIGURE_FILE( + "${CMake_SOURCE_DIR}/Tests/CTestSubmitLargeOutput/test.cmake.in" + "${CMake_BINARY_DIR}/Tests/CTestSubmitLargeOutput/test.cmake" + @ONLY ESCAPE_QUOTES + ) + ADD_TEST(CTestSubmitLargeOutput ${CMAKE_CTEST_COMMAND} + -S "${CMake_BINARY_DIR}/Tests/CTestSubmitLargeOutput/test.cmake" -V + --output-log "${CMake_BINARY_DIR}/Tests/CTestSubmitLargeOutput/testOutput.log" + ) + + # This test only passes if it fails to submit properly... + # + SET_TESTS_PROPERTIES(CTestSubmitLargeOutput PROPERTIES + PASS_REGULAR_EXPRESSION "Errors occurred during submission") + ENDIF(CTEST_RUN_CTestSubmitLargeOutput) IF (CMAKE_RUN_LONG_TESTS AND TEST_KDE4_STABLE_BRANCH) IF(UNIX) diff --git a/Tests/CTestSubmitLargeOutput/CMakeLists.txt b/Tests/CTestSubmitLargeOutput/CMakeLists.txt new file mode 100644 index 0000000..6c30e7a --- /dev/null +++ b/Tests/CTestSubmitLargeOutput/CMakeLists.txt @@ -0,0 +1,8 @@ +cmake_minimum_required(VERSION 2.8) +project(SubmitLargeOutput NONE) + +include(CTest) + +add_test(GenerateRandomOutput ${CMAKE_COMMAND} + -P ${CMAKE_CURRENT_SOURCE_DIR}/GenerateRandomOutput.cmake + ) diff --git a/Tests/CTestSubmitLargeOutput/CTestConfig.cmake b/Tests/CTestSubmitLargeOutput/CTestConfig.cmake new file mode 100644 index 0000000..ffd6efc --- /dev/null +++ b/Tests/CTestSubmitLargeOutput/CTestConfig.cmake @@ -0,0 +1,6 @@ +set(CTEST_PROJECT_NAME "SubmitLargeOutput") +set(CTEST_NIGHTLY_START_TIME "01:00:00 UTC") +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/CTestSubmitLargeOutput/GenerateRandomOutput.cmake b/Tests/CTestSubmitLargeOutput/GenerateRandomOutput.cmake new file mode 100644 index 0000000..c7f4f29 --- /dev/null +++ b/Tests/CTestSubmitLargeOutput/GenerateRandomOutput.cmake @@ -0,0 +1,31 @@ +# +# This script generates random lines of output. +# +# By default, it generates 100M of output (a million lines of 100 bytes each), +# but you can override that by passing in -D line_count and/or -D line_size... +# + +# Default values: +# +if(NOT DEFINED line_count) + set(line_count 1000000) +endif() + +if(NOT DEFINED line_size) + set(line_size 100) +endif() + +if(NOT DEFINED random_seed) + set(random_seed 1987) +endif() + +# Use RANDOM_SEED once before the loop: +# +string(RANDOM LENGTH ${line_size} RANDOM_SEED ${random_seed} s) + +# Emit line_count lines of random output: +# +foreach(i RANGE 1 ${line_count}) + string(RANDOM LENGTH ${line_size} s) + message(${s}) +endforeach() diff --git a/Tests/CTestSubmitLargeOutput/test.cmake.in b/Tests/CTestSubmitLargeOutput/test.cmake.in new file mode 100644 index 0000000..bc094b0 --- /dev/null +++ b/Tests/CTestSubmitLargeOutput/test.cmake.in @@ -0,0 +1,26 @@ +SET(CTEST_SITE "@SITE@") +SET(CTEST_BUILD_NAME "LargeOutput-@BUILDNAME@") +SET(CTEST_BUILD_CONFIGURATION "$ENV{CMAKE_CONFIG_TYPE}") +SET(CTEST_CMAKE_GENERATOR "@CMAKE_GENERATOR@") + +SET(CTEST_SOURCE_DIRECTORY "@CMake_SOURCE_DIR@/Tests/CTestSubmitLargeOutput") +SET(CTEST_BINARY_DIRECTORY "@CMake_BINARY_DIR@/Tests/CTestSubmitLargeOutput/build") +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_READ_CUSTOM_FILES("${CTEST_BINARY_DIRECTORY}") +CTEST_BUILD(BUILD "${CTEST_BINARY_DIRECTORY}" RETURN_VALUE res) + +SET(CTEST_CUSTOM_MAXIMUM_FAILED_TEST_OUTPUT_SIZE 1000000000) +SET(CTEST_CUSTOM_MAXIMUM_PASSED_TEST_OUTPUT_SIZE 1000000000) + +CTEST_TEST(BUILD "${CTEST_BINARY_DIRECTORY}" RETURN_VALUE res) + +set(CTEST_DROP_METHOD "@protocol@") +set(CTEST_DROP_SITE "@server@") +set(CTEST_DROP_LOCATION "@path@/submit.php?project=PublicDashboard") + +CTEST_SUBMIT(RETURN_VALUE res) diff --git a/Tests/CTestTest2/test.cmake.in b/Tests/CTestTest2/test.cmake.in index 643e767..cccd8c1 100644 --- a/Tests/CTestTest2/test.cmake.in +++ b/Tests/CTestTest2/test.cmake.in @@ -18,7 +18,6 @@ SET(CTEST_NOTES_FILES "${CTEST_SCRIPT_DIRECTORY}/${CTEST_SCRIP #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@ @@ -41,6 +40,11 @@ CTEST_TEST(BUILD "${CTEST_BINARY_DIRECTORY}" RETURN_VALUE res START 2 END 4 STRI CTEST_TEST(BUILD "${CTEST_BINARY_DIRECTORY}" RETURN_VALUE res START 6 STRIDE 2 SUBMIT_INDEX 3) CTEST_MEMCHECK(BUILD "${CTEST_BINARY_DIRECTORY}" RETURN_VALUE res STRIDE 1.5) CTEST_COVERAGE(BUILD "${CTEST_BINARY_DIRECTORY}" RETURN_VALUE res) + +set(CTEST_DROP_METHOD "@protocol@") +set(CTEST_DROP_SITE "@server@") +set(CTEST_DROP_LOCATION "@path@/submit.php?project=PublicDashboard") + CTEST_SUBMIT(RETURN_VALUE res) # Test submission of a subset of parts. diff --git a/Tests/CTestTest3/test.cmake.in b/Tests/CTestTest3/test.cmake.in index d0a1f88..1cf5a88 100644 --- a/Tests/CTestTest3/test.cmake.in +++ b/Tests/CTestTest3/test.cmake.in @@ -53,6 +53,11 @@ CTEST_BUILD(BUILD "${CTEST_BINARY_DIRECTORY}" RETURN_VALUE res) CTEST_TEST(BUILD "${CTEST_BINARY_DIRECTORY}" RETURN_VALUE res PARALLEL_LEVEL 5 SCHEDULE_RANDOM ON) CTEST_MEMCHECK(BUILD "${CTEST_BINARY_DIRECTORY}" RETURN_VALUE res) CTEST_COVERAGE(BUILD "${CTEST_BINARY_DIRECTORY}" RETURN_VALUE res) + +set(CTEST_DROP_METHOD "@protocol@") +set(CTEST_DROP_SITE "@server@") +set(CTEST_DROP_LOCATION "@path@/submit.php?project=PublicDashboard") + CTEST_SUBMIT(RETURN_VALUE res) #SET(svncommand "@SVNCOMMAND@") |