mirror of
https://github.com/reactos/CMake.git
synced 2024-11-29 06:20:23 +00:00
Tests: Add RunCMake.CTestSubmit cases covering ctest_submit failures
Cover command invocation argument errors. Prepare infrastructure to cover failed 'drop' cases, but do not cover them yet because we need to collect error messages from each platform.
This commit is contained in:
parent
287070ceb8
commit
352de1d749
@ -52,6 +52,7 @@ add_RunCMake_test(CMP0053)
|
||||
add_RunCMake_test(CMP0054)
|
||||
add_RunCMake_test(CMP0055)
|
||||
add_RunCMake_test(CTest)
|
||||
add_RunCMake_test(CTestSubmit)
|
||||
|
||||
if(NOT CMake_TEST_EXTERNAL_CMAKE)
|
||||
add_RunCMake_test(CTestMemcheck
|
||||
|
1
Tests/RunCMake/CTestSubmit/BadArg-result.txt
Normal file
1
Tests/RunCMake/CTestSubmit/BadArg-result.txt
Normal file
@ -0,0 +1 @@
|
||||
(-1|255)
|
2
Tests/RunCMake/CTestSubmit/BadArg-stderr.txt
Normal file
2
Tests/RunCMake/CTestSubmit/BadArg-stderr.txt
Normal file
@ -0,0 +1,2 @@
|
||||
CMake Error at .*/Tests/RunCMake/CTestSubmit/BadArg/test.cmake:[0-9]+ \(ctest_submit\):
|
||||
ctest_submit called with unknown argument "bad-arg".
|
1
Tests/RunCMake/CTestSubmit/BadFILES-result.txt
Normal file
1
Tests/RunCMake/CTestSubmit/BadFILES-result.txt
Normal file
@ -0,0 +1 @@
|
||||
(-1|255)
|
2
Tests/RunCMake/CTestSubmit/BadFILES-stderr.txt
Normal file
2
Tests/RunCMake/CTestSubmit/BadFILES-stderr.txt
Normal file
@ -0,0 +1,2 @@
|
||||
CMake Error at .*/Tests/RunCMake/CTestSubmit/BadFILES/test.cmake:[0-9]+ \(ctest_submit\):
|
||||
File "bad-file" does not exist. Cannot submit a non-existent file.
|
1
Tests/RunCMake/CTestSubmit/BadPARTS-result.txt
Normal file
1
Tests/RunCMake/CTestSubmit/BadPARTS-result.txt
Normal file
@ -0,0 +1 @@
|
||||
(-1|255)
|
2
Tests/RunCMake/CTestSubmit/BadPARTS-stderr.txt
Normal file
2
Tests/RunCMake/CTestSubmit/BadPARTS-stderr.txt
Normal file
@ -0,0 +1,2 @@
|
||||
CMake Error at .*/Tests/RunCMake/CTestSubmit/BadPARTS/test.cmake:[0-9]+ \(ctest_submit\):
|
||||
Part name "bad-part" is invalid.
|
4
Tests/RunCMake/CTestSubmit/CMakeLists.txt.in
Normal file
4
Tests/RunCMake/CTestSubmit/CMakeLists.txt.in
Normal file
@ -0,0 +1,4 @@
|
||||
cmake_minimum_required(VERSION 3.1)
|
||||
project(CTestSubmit@CASE_NAME@ NONE)
|
||||
include(CTest)
|
||||
add_test(NAME RunCMakeVersion COMMAND "${CMAKE_COMMAND}" --version)
|
5
Tests/RunCMake/CTestSubmit/CTestConfig.cmake.in
Normal file
5
Tests/RunCMake/CTestSubmit/CTestConfig.cmake.in
Normal file
@ -0,0 +1,5 @@
|
||||
set(CTEST_PROJECT_NAME "CTestSubmit@CASE_NAME@")
|
||||
|
||||
# Intentionally leave out other upload-related CTestConfig.cmake settings
|
||||
# so that any ctest_submit calls fail with an error message.
|
||||
set(CTEST_DROP_METHOD "@CASE_DROP_METHOD@")
|
1
Tests/RunCMake/CTestSubmit/RepeatRETURN_VALUE-result.txt
Normal file
1
Tests/RunCMake/CTestSubmit/RepeatRETURN_VALUE-result.txt
Normal file
@ -0,0 +1 @@
|
||||
(-1|255)
|
2
Tests/RunCMake/CTestSubmit/RepeatRETURN_VALUE-stderr.txt
Normal file
2
Tests/RunCMake/CTestSubmit/RepeatRETURN_VALUE-stderr.txt
Normal file
@ -0,0 +1,2 @@
|
||||
CMake Error at .*/Tests/RunCMake/CTestSubmit/RepeatRETURN_VALUE/test.cmake:[0-9]+ \(ctest_submit\):
|
||||
Called with more than one value for RETURN_VALUE
|
43
Tests/RunCMake/CTestSubmit/RunCMakeTest.cmake
Normal file
43
Tests/RunCMake/CTestSubmit/RunCMakeTest.cmake
Normal file
@ -0,0 +1,43 @@
|
||||
include(RunCMake)
|
||||
|
||||
# Default case parameters.
|
||||
set(CASE_DROP_METHOD "http")
|
||||
set(CASE_CTEST_SUBMIT_ARGS "")
|
||||
|
||||
function(run_ctest CASE_NAME)
|
||||
configure_file(${RunCMake_SOURCE_DIR}/test.cmake.in
|
||||
${RunCMake_BINARY_DIR}/${CASE_NAME}/test.cmake @ONLY)
|
||||
configure_file(${RunCMake_SOURCE_DIR}/CTestConfig.cmake.in
|
||||
${RunCMake_BINARY_DIR}/${CASE_NAME}/CTestConfig.cmake @ONLY)
|
||||
configure_file(${RunCMake_SOURCE_DIR}/CMakeLists.txt.in
|
||||
${RunCMake_BINARY_DIR}/${CASE_NAME}/CMakeLists.txt @ONLY)
|
||||
run_cmake_command(${CASE_NAME} ${CMAKE_CTEST_COMMAND}
|
||||
-C Debug
|
||||
-S ${RunCMake_BINARY_DIR}/${CASE_NAME}/test.cmake
|
||||
-V
|
||||
--output-log ${RunCMake_BINARY_DIR}/${CASE_NAME}-build/testOutput.log
|
||||
${ARGN}
|
||||
)
|
||||
endfunction()
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# Test bad argument combinations.
|
||||
|
||||
function(run_ctest_submit CASE_NAME)
|
||||
set(CASE_CTEST_SUBMIT_ARGS "${ARGN}")
|
||||
run_ctest(${CASE_NAME})
|
||||
endfunction()
|
||||
|
||||
run_ctest_submit(BadArg bad-arg)
|
||||
run_ctest_submit(BadPARTS PARTS bad-part)
|
||||
run_ctest_submit(BadFILES FILES bad-file)
|
||||
run_ctest_submit(RepeatRETURN_VALUE RETURN_VALUE res RETURN_VALUE res)
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# Test failed drops by various protocols
|
||||
|
||||
function(run_ctest_submit_FailDrop CASE_DROP_METHOD)
|
||||
run_ctest(FailDrop-${CASE_DROP_METHOD})
|
||||
endfunction()
|
||||
|
||||
# TODO: call run_ctest_submit_FailDrop() for each submission protocol
|
16
Tests/RunCMake/CTestSubmit/test.cmake.in
Normal file
16
Tests/RunCMake/CTestSubmit/test.cmake.in
Normal file
@ -0,0 +1,16 @@
|
||||
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}")
|
||||
|
||||
ctest_start(Experimental)
|
||||
ctest_configure()
|
||||
|
||||
set(ctest_submit_args "@CASE_CTEST_SUBMIT_ARGS@")
|
||||
ctest_submit(${ctest_submit_args})
|
Loading…
Reference in New Issue
Block a user