summaryrefslogtreecommitdiffstats
path: root/Tests
diff options
context:
space:
mode:
Diffstat (limited to 'Tests')
-rw-r--r--Tests/CMakeLists.txt50
-rw-r--r--Tests/CTestSubmitLargeOutput/CMakeLists.txt8
-rw-r--r--Tests/CTestSubmitLargeOutput/CTestConfig.cmake6
-rw-r--r--Tests/CTestSubmitLargeOutput/GenerateRandomOutput.cmake31
-rw-r--r--Tests/CTestSubmitLargeOutput/test.cmake.in26
-rw-r--r--Tests/CTestTest2/test.cmake.in6
-rw-r--r--Tests/CTestTest3/test.cmake.in5
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@")