diff options
author | Bill Hoffman <bill.hoffman@kitware.com> | 2016-07-28 19:12:43 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2016-09-20 17:14:20 (GMT) |
commit | d328dc6853e211dc05c4abcf62cc64b9c91235a2 (patch) | |
tree | 188238fc8ae3c7a85dc3edf1eae3a70b85b6197f /Tests/RunCMake/ctest_cmake_error | |
parent | 9ac2e189607433b45b252a1e2261ccfaf11e492b (diff) | |
download | CMake-d328dc6853e211dc05c4abcf62cc64b9c91235a2.zip CMake-d328dc6853e211dc05c4abcf62cc64b9c91235a2.tar.gz CMake-d328dc6853e211dc05c4abcf62cc64b9c91235a2.tar.bz2 |
CTest: Add CAPTURE_CMAKE_ERROR val to `ctest_*` commands
If a `ctest_*` command has CAPTURE_CMAKE_ERROR then any errors generated
by cmake during that command will cause the value to be assigned `-1`.
This will prevent a `ctest -S` script from returning non-zero unless the
script explicitly calls `message(FATAL_ERROR)`.
Diffstat (limited to 'Tests/RunCMake/ctest_cmake_error')
8 files changed, 47 insertions, 0 deletions
diff --git a/Tests/RunCMake/ctest_cmake_error/CMakeLists.txt.in b/Tests/RunCMake/ctest_cmake_error/CMakeLists.txt.in new file mode 100644 index 0000000..1babd72 --- /dev/null +++ b/Tests/RunCMake/ctest_cmake_error/CMakeLists.txt.in @@ -0,0 +1,4 @@ +cmake_minimum_required(VERSION 3.1) +project(CTestCoverage@CASE_NAME@ NONE) +include(CTest) +add_test(NAME RunCMakeVersion COMMAND "${CMAKE_COMMAND}" --version) diff --git a/Tests/RunCMake/ctest_cmake_error/CTestCaptureErrorNonZero-stderr.txt b/Tests/RunCMake/ctest_cmake_error/CTestCaptureErrorNonZero-stderr.txt new file mode 100644 index 0000000..4afb57a --- /dev/null +++ b/Tests/RunCMake/ctest_cmake_error/CTestCaptureErrorNonZero-stderr.txt @@ -0,0 +1,4 @@ +.*ctest_configure called with unknown argument "junk".* +.*ctest_build called with unknown argument "junk".* +.*ctest_test called with unknown argument "junk".* +.*ctest_coverage called with unknown argument "junk".* diff --git a/Tests/RunCMake/ctest_cmake_error/CTestCaptureErrorZero-stderr.txt b/Tests/RunCMake/ctest_cmake_error/CTestCaptureErrorZero-stderr.txt new file mode 100644 index 0000000..4afb57a --- /dev/null +++ b/Tests/RunCMake/ctest_cmake_error/CTestCaptureErrorZero-stderr.txt @@ -0,0 +1,4 @@ +.*ctest_configure called with unknown argument "junk".* +.*ctest_build called with unknown argument "junk".* +.*ctest_test called with unknown argument "junk".* +.*ctest_coverage called with unknown argument "junk".* diff --git a/Tests/RunCMake/ctest_cmake_error/CTestCaptureErrorZero-stdout.txt b/Tests/RunCMake/ctest_cmake_error/CTestCaptureErrorZero-stdout.txt new file mode 100644 index 0000000..d00b0c8 --- /dev/null +++ b/Tests/RunCMake/ctest_cmake_error/CTestCaptureErrorZero-stdout.txt @@ -0,0 +1 @@ +.*Run dashboard with model Experimental.* diff --git a/Tests/RunCMake/ctest_cmake_error/CTestConfig.cmake.in b/Tests/RunCMake/ctest_cmake_error/CTestConfig.cmake.in new file mode 100644 index 0000000..1f679d5 --- /dev/null +++ b/Tests/RunCMake/ctest_cmake_error/CTestConfig.cmake.in @@ -0,0 +1 @@ +set(CTEST_PROJECT_NAME "CTestCoverage@CASE_NAME@") diff --git a/Tests/RunCMake/ctest_cmake_error/CoverageQuiet-stdout.txt b/Tests/RunCMake/ctest_cmake_error/CoverageQuiet-stdout.txt new file mode 100644 index 0000000..3b09eac --- /dev/null +++ b/Tests/RunCMake/ctest_cmake_error/CoverageQuiet-stdout.txt @@ -0,0 +1 @@ +sec$ diff --git a/Tests/RunCMake/ctest_cmake_error/RunCMakeTest.cmake b/Tests/RunCMake/ctest_cmake_error/RunCMakeTest.cmake new file mode 100644 index 0000000..0ec04c2 --- /dev/null +++ b/Tests/RunCMake/ctest_cmake_error/RunCMakeTest.cmake @@ -0,0 +1,10 @@ +include(RunCTest) + +set(CASE_CTEST_COVERAGE_ARGS "") + +function(run_ctest_coverage CASE_NAME) + set(CASE_CTEST_COVERAGE_ARGS "${ARGN}") + run_ctest(${CASE_NAME}) +endfunction() + +run_ctest_coverage(CTestCaptureErrorNonZero junk CAPTURE_CMAKE_ERROR val) diff --git a/Tests/RunCMake/ctest_cmake_error/test.cmake.in b/Tests/RunCMake/ctest_cmake_error/test.cmake.in new file mode 100644 index 0000000..0648e7c --- /dev/null +++ b/Tests/RunCMake/ctest_cmake_error/test.cmake.in @@ -0,0 +1,22 @@ +cmake_minimum_required(VERSION 3.1) + +set(CTEST_SITE "test-site") +set(CTEST_BUILD_NAME "test-build-name") +set(CTEST_SOURCE_DIRECTORY "@RunCMake_BINARY_DIR@/@CASE_NAME@") +set(CTEST_BINARY_DIRECTORY "@RunCMake_BINARY_DIR@/@CASE_NAME@-build") +set(CTEST_CMAKE_GENERATOR "@RunCMake_GENERATOR@") +set(CTEST_CMAKE_GENERATOR_PLATFORM "@RunCMake_GENERATOR_PLATFORM@") +set(CTEST_CMAKE_GENERATOR_TOOLSET "@RunCMake_GENERATOR_TOOLSET@") +set(CTEST_BUILD_CONFIGURATION "$ENV{CMAKE_CONFIG_TYPE}") +set(CTEST_COVERAGE_COMMAND "@COVERAGE_COMMAND@") + +set(ctest_coverage_args "@CASE_CTEST_COVERAGE_ARGS@") +ctest_start(Experimental) +ctest_configure( ${ctest_coverage_args} ) +ctest_build( ${ctest_coverage_args} ) +ctest_test( ${ctest_coverage_args} ) +ctest_coverage( ${ctest_coverage_args} ) +ctest_upload(junk CAPTURE_CMAKE_ERROR val) +if(NOT val EQUAL -1) + message(FATAL_ERROR "CAPTURE_CMAKE_ERROR should be -1 is [${val}]") +endif() |