diff options
author | Brad King <brad.king@kitware.com> | 2014-05-07 10:59:02 -0400 |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2014-05-07 11:02:16 -0400 |
commit | 54111286453894beb69ad18a9361edc2a50efc84 (patch) | |
tree | 2be66f856c661fde65c890374fa7ca3d5d660ed2 /Tests | |
parent | 9cb4677509aa767245cbf4bb9e655d1559bc10bd (diff) | |
download | cmake-54111286453894beb69ad18a9361edc2a50efc84.tar.gz |
ctest_build: Do not crash on bad generator name
If creation of the global generator fails, return early with an error
message instead of trying to use the generator and crashing.
Add a CTestTestBadGenerator test to cover this case.
Reported-by: Mathieu Malaterre <malat@debian.org>
Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=747306
Diffstat (limited to 'Tests')
-rw-r--r-- | Tests/CMakeLists.txt | 12 | ||||
-rw-r--r-- | Tests/CTestTestBadGenerator/CMakeLists.txt | 3 | ||||
-rw-r--r-- | Tests/CTestTestBadGenerator/CTestConfig.cmake | 7 | ||||
-rw-r--r-- | Tests/CTestTestBadGenerator/test.cmake.in | 20 |
4 files changed, 42 insertions, 0 deletions
diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt index 8074a01d82..c903103dd8 100644 --- a/Tests/CMakeLists.txt +++ b/Tests/CMakeLists.txt @@ -2245,6 +2245,18 @@ ${CMake_BINARY_DIR}/bin/cmake -DVERSION=master -P ${CMake_SOURCE_DIR}/Utilities/ PASS_REGULAR_EXPRESSION "${CTestTestBadExe_REGEX}") configure_file( + "${CMake_SOURCE_DIR}/Tests/CTestTestBadGenerator/test.cmake.in" + "${CMake_BINARY_DIR}/Tests/CTestTestBadGenerator/test.cmake" + @ONLY ESCAPE_QUOTES) + add_test(CTestTestBadGenerator ${CMAKE_CTEST_COMMAND} + -C "\${CTestTest_CONFIG}" + -S "${CMake_BINARY_DIR}/Tests/CTestTestBadGenerator/test.cmake" -V + --output-log "${CMake_BINARY_DIR}/Tests/CTestTestBadGenerator/testOutput.log" + ) + set_property(TEST CTestTestBadGenerator PROPERTY + PASS_REGULAR_EXPRESSION "could not create generator named \"Bad Generator\"") + + configure_file( "${CMake_SOURCE_DIR}/Tests/CTestTestParallel/test.cmake.in" "${CMake_BINARY_DIR}/Tests/CTestTestParallel/test.cmake" @ONLY ESCAPE_QUOTES) diff --git a/Tests/CTestTestBadGenerator/CMakeLists.txt b/Tests/CTestTestBadGenerator/CMakeLists.txt new file mode 100644 index 0000000000..d46d9bf4f3 --- /dev/null +++ b/Tests/CTestTestBadGenerator/CMakeLists.txt @@ -0,0 +1,3 @@ +cmake_minimum_required(VERSION 3.0) +project(CTestTestDepends NONE) +include(CTest) diff --git a/Tests/CTestTestBadGenerator/CTestConfig.cmake b/Tests/CTestTestBadGenerator/CTestConfig.cmake new file mode 100644 index 0000000000..ef981893d7 --- /dev/null +++ b/Tests/CTestTestBadGenerator/CTestConfig.cmake @@ -0,0 +1,7 @@ +set (CTEST_PROJECT_NAME "CTestTestBadGenerator") +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/CTestTestBadGenerator/test.cmake.in b/Tests/CTestTestBadGenerator/test.cmake.in new file mode 100644 index 0000000000..fe4fba82a8 --- /dev/null +++ b/Tests/CTestTestBadGenerator/test.cmake.in @@ -0,0 +1,20 @@ +cmake_minimum_required(VERSION 3.0) + +# Settings: +set(CTEST_DASHBOARD_ROOT "@CMake_BINARY_DIR@/Tests/CTestTest") +set(CTEST_SITE "@SITE@") +set(CTEST_BUILD_NAME "CTestTest-@BUILDNAME@-Depends") + +set(CTEST_SOURCE_DIRECTORY "@CMake_SOURCE_DIR@/Tests/CTestTestBadGenerator") +set(CTEST_BINARY_DIRECTORY "@CMake_BINARY_DIR@/Tests/CTestTestBadGenerator") +set(CTEST_CVS_COMMAND "@CVSCOMMAND@") +set(CTEST_CMAKE_GENERATOR "Bad Generator") +set(CTEST_CMAKE_GENERATOR_TOOLSET "") +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_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) |