Tests: Add additional launcher tests

Modify the launcher test to also try to build two executables, having
respectively build and link errors. This is intended to test that
launchers are used when running compile and link commands, as well as
custom commands. (In particular, this should catch breakage such as that
fixed by ce71bd9505a.)
This commit is contained in:
Matthew Woehlke
2017-01-10 13:48:59 -05:00
parent 4918cd8c98
commit 4b0c13a87f
10 changed files with 82 additions and 29 deletions

View File

@@ -0,0 +1,7 @@
cmake_minimum_required(VERSION 2.8.12)
project(launcher_compiler_test_project)
include(CTest)
add_executable(build_error build_error.cxx)

View File

@@ -0,0 +1,5 @@
int main()
{
int = 3;
return;
}

View File

@@ -1,6 +1,6 @@
cmake_minimum_required(VERSION 2.8.12)
project(launcher_test_project)
project(launcher_custom_command_test_project)
include(CTest)

View File

@@ -0,0 +1,8 @@
set(CTEST_USE_LAUNCHERS 1)
set(CTEST_PROJECT_NAME "CTestTestLaunchers")
set(CTEST_NIGHTLY_START_TIME "21:00:00 EDT")
set(CTEST_DART_SERVER_VERSION "2")
set(CTEST_DROP_METHOD "http")
set(CTEST_DROP_SITE "open.cdash.org")
set(CTEST_DROP_LOCATION "/submit.php?project=PublicDashboard")
set(CTEST_DROP_SITE_CDASH TRUE)

View File

@@ -0,0 +1,7 @@
cmake_minimum_required(VERSION 2.8.12)
project(launcher_linker_test_project)
include(CTest)
add_executable(link_error link_error.cxx)

View File

@@ -0,0 +1,8 @@
set(CTEST_USE_LAUNCHERS 1)
set(CTEST_PROJECT_NAME "CTestTestLaunchers")
set(CTEST_NIGHTLY_START_TIME "21:00:00 EDT")
set(CTEST_DART_SERVER_VERSION "2")
set(CTEST_DROP_METHOD "http")
set(CTEST_DROP_SITE "open.cdash.org")
set(CTEST_DROP_LOCATION "/submit.php?project=PublicDashboard")
set(CTEST_DROP_SITE_CDASH TRUE)

View File

@@ -0,0 +1,6 @@
extern int foo();
int main()
{
return foo();
}

View File

@@ -1,39 +1,51 @@
cmake_minimum_required(VERSION 2.8.12)
# Settings:
set(CTEST_DASHBOARD_SOURCE "@CMake_SOURCE_DIR@/Tests/CTestTestLaunchers")
set(CTEST_DASHBOARD_ROOT "@CMake_BINARY_DIR@/Tests/CTestTestLaunchers")
set(CTEST_SITE "@SITE@")
set(CTEST_BUILD_NAME "Launchers-@BUILDNAME@-CTestTestLaunchers")
set(TEST_SUCCESS TRUE)
set(CTEST_SOURCE_DIRECTORY "${CTEST_DASHBOARD_SOURCE}/launcher_test_project")
set(CTEST_BINARY_DIRECTORY "${CTEST_DASHBOARD_ROOT}/launcher_test_project-bin")
set(CTEST_CMAKE_GENERATOR "@CMAKE_GENERATOR@")
set(CTEST_CMAKE_GENERATOR_PLATFORM "@CMAKE_GENERATOR_PLATFORM@")
set(CTEST_CMAKE_GENERATOR_TOOLSET "@CMAKE_GENERATOR_TOOLSET@")
set(CTEST_BUILD_CONFIGURATION "$ENV{CMAKE_CONFIG_TYPE}")
set(CTEST_NOTES_FILES "${CTEST_SCRIPT_DIRECTORY}/${CTEST_SCRIPT_NAME}")
function(run_test_case NAME WHAT)
set(_message "Testing that launchers are used when running ${WHAT}")
message(STATUS "${_message}...")
ctest_empty_binary_directory(${CTEST_BINARY_DIRECTORY})
# Settings:
set(CTEST_DASHBOARD_SOURCE "@CMake_SOURCE_DIR@/Tests/CTestTestLaunchers")
set(CTEST_DASHBOARD_ROOT "@CMake_BINARY_DIR@/Tests/CTestTestLaunchers")
set(CTEST_SITE "@SITE@")
set(CTEST_BUILD_NAME "Launchers-@BUILDNAME@-CTestTestLaunchers")
file(WRITE "${CTEST_BINARY_DIRECTORY}/CMakeCache.txt" "
CMAKE_CXX_FLAGS:STRING=@CMAKE_CXX_FLAGS@
CMAKE_C_FLAGS:STRING=@CMAKE_C_FLAGS@
CMAKE_C_COMPILER:STRING=@CMAKE_C_COMPILER@
CMAKE_CXX_COMPILER:STRING=@CMAKE_CXX_COMPILER@
CMAKE_C_COMPILER_ARG1:STRING=@CMAKE_C_COMPILER_ARG1@
CMAKE_CXX_COMPILER_ARG1:STRING=@CMAKE_CXX_COMPILER_ARG1@
")
set(CTEST_SOURCE_DIRECTORY "${CTEST_DASHBOARD_SOURCE}/${NAME}")
set(CTEST_BINARY_DIRECTORY "${CTEST_DASHBOARD_ROOT}/${NAME}-bin")
set(CTEST_CMAKE_GENERATOR "@CMAKE_GENERATOR@")
set(CTEST_CMAKE_GENERATOR_PLATFORM "@CMAKE_GENERATOR_PLATFORM@")
set(CTEST_CMAKE_GENERATOR_TOOLSET "@CMAKE_GENERATOR_TOOLSET@")
set(CTEST_BUILD_CONFIGURATION "$ENV{CMAKE_CONFIG_TYPE}")
set(CTEST_NOTES_FILES "${CTEST_SCRIPT_DIRECTORY}/${CTEST_SCRIPT_NAME}")
set(TEST_SUCCESS FALSE)
ctest_empty_binary_directory(${CTEST_BINARY_DIRECTORY})
ctest_start(Experimental)
ctest_configure(OPTIONS "-DCTEST_USE_LAUNCHERS=1")
ctest_build(NUMBER_ERRORS error_count)
file(WRITE "${CTEST_BINARY_DIRECTORY}/CMakeCache.txt" "
CMAKE_CXX_FLAGS:STRING=@CMAKE_CXX_FLAGS@
CMAKE_C_FLAGS:STRING=@CMAKE_C_FLAGS@
CMAKE_C_COMPILER:STRING=@CMAKE_C_COMPILER@
CMAKE_CXX_COMPILER:STRING=@CMAKE_CXX_COMPILER@
CMAKE_C_COMPILER_ARG1:STRING=@CMAKE_C_COMPILER_ARG1@
CMAKE_CXX_COMPILER_ARG1:STRING=@CMAKE_CXX_COMPILER_ARG1@
")
if("${error_count}" STREQUAL "1")
set(TEST_SUCCESS TRUE)
endif()
ctest_start(Experimental)
ctest_configure(OPTIONS "-DCTEST_USE_LAUNCHERS=1")
ctest_build(NUMBER_ERRORS error_count)
if("${error_count}" STREQUAL "0")
set(TEST_SUCCESS FALSE PARENT_SCOPE)
message(STATUS "${_message}... FAIL")
else()
message(STATUS "${_message}... PASS")
endif()
endfunction()
run_test_case(launcher_compiler_test_project "the compiler")
run_test_case(launcher_linker_test_project "the linker")
run_test_case(launcher_custom_command_test_project "a custom command")
if(TEST_SUCCESS)
message("CTEST_TEST_LAUNCHER_SUCCESS")