mirror of
https://github.com/Kitware/CMake.git
synced 2026-01-08 14:50:10 -06:00
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:
@@ -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)
|
||||
@@ -0,0 +1,5 @@
|
||||
int main()
|
||||
{
|
||||
int = 3;
|
||||
return;
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
cmake_minimum_required(VERSION 2.8.12)
|
||||
|
||||
project(launcher_test_project)
|
||||
project(launcher_custom_command_test_project)
|
||||
|
||||
include(CTest)
|
||||
|
||||
@@ -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)
|
||||
@@ -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)
|
||||
@@ -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)
|
||||
@@ -0,0 +1,6 @@
|
||||
extern int foo();
|
||||
|
||||
int main()
|
||||
{
|
||||
return foo();
|
||||
}
|
||||
@@ -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")
|
||||
|
||||
Reference in New Issue
Block a user