mirror of
https://github.com/Kitware/CMake.git
synced 2025-12-31 19:00:54 -06:00
ctest: Fall back to CMake options for TLS version
Use `CMAKE_TLS_VERSION` or `ENV{CMAKE_TLS_VERSION}` if
`CTEST_TLS_VERSION` is not set.
Issue: #25701
This commit is contained in:
@@ -11,3 +11,6 @@ TLS version allowed when submitting to a dashboard via ``https://`` URLs.
|
||||
The value may be one of:
|
||||
|
||||
.. include:: CMAKE_TLS_VERSION-VALUES.txt
|
||||
|
||||
If ``CTEST_TLS_VERSION`` is not set, the :variable:`CMAKE_TLS_VERSION` variable
|
||||
or :envvar:`CMAKE_TLS_VERSION` environment variable is used instead.
|
||||
|
||||
@@ -21,6 +21,13 @@ mark_as_advanced(CMAKE_CTEST_COMMAND)
|
||||
# configure files
|
||||
|
||||
block()
|
||||
if(NOT DEFINED CTEST_TLS_VERSION)
|
||||
if(DEFINED CMAKE_TLS_VERSION)
|
||||
set(CTEST_TLS_VERSION "${CMAKE_TLS_VERSION}")
|
||||
elseif(DEFINED ENV{CMAKE_TLS_VERSION})
|
||||
set(CTEST_TLS_VERSION "$ENV{CMAKE_TLS_VERSION}")
|
||||
endif()
|
||||
endif()
|
||||
if(NOT DEFINED CTEST_TLS_VERIFY AND DEFINED CMAKE_TLS_VERIFY)
|
||||
set(CTEST_TLS_VERIFY "${CMAKE_TLS_VERIFY}")
|
||||
endif()
|
||||
|
||||
@@ -55,8 +55,28 @@ cmCTestGenericHandler* cmCTestSubmitCommand::InitializeHandler()
|
||||
this->Makefile, "DropLocation", "CTEST_DROP_LOCATION", this->Quiet);
|
||||
}
|
||||
|
||||
this->CTest->SetCTestConfigurationFromCMakeVariable(
|
||||
this->Makefile, "TLSVersion", "CTEST_TLS_VERSION", this->Quiet);
|
||||
if (!this->CTest->SetCTestConfigurationFromCMakeVariable(
|
||||
this->Makefile, "TLSVersion", "CTEST_TLS_VERSION", this->Quiet)) {
|
||||
if (cmValue tlsVersionVar =
|
||||
this->Makefile->GetDefinition("CMAKE_TLS_VERSION")) {
|
||||
cmCTestOptionalLog(
|
||||
this->CTest, HANDLER_VERBOSE_OUTPUT,
|
||||
"SetCTestConfiguration from CMAKE_TLS_VERSION:TLSVersion:"
|
||||
<< *tlsVersionVar << std::endl,
|
||||
this->Quiet);
|
||||
this->CTest->SetCTestConfiguration("TLSVersion", *tlsVersionVar,
|
||||
this->Quiet);
|
||||
} else if (cm::optional<std::string> tlsVersionEnv =
|
||||
cmSystemTools::GetEnvVar("CMAKE_TLS_VERSION")) {
|
||||
cmCTestOptionalLog(
|
||||
this->CTest, HANDLER_VERBOSE_OUTPUT,
|
||||
"SetCTestConfiguration from ENV{CMAKE_TLS_VERSION}:TLSVersion:"
|
||||
<< *tlsVersionEnv << std::endl,
|
||||
this->Quiet);
|
||||
this->CTest->SetCTestConfiguration("TLSVersion", *tlsVersionEnv,
|
||||
this->Quiet);
|
||||
}
|
||||
}
|
||||
if (!this->CTest->SetCTestConfigurationFromCMakeVariable(
|
||||
this->Makefile, "TLSVerify", "CTEST_TLS_VERIFY", this->Quiet)) {
|
||||
if (cmValue tlsVerifyVar =
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
[^0]
|
||||
@@ -0,0 +1,2 @@
|
||||
Error message was: ([Cc]ould *n.t resolve host:? '?badhostname.invalid'?|The requested URL returned error:|Protocol "https" (not supported or disabled|not supported|disabled)|.* was built with SSL disabled).*
|
||||
Problems when submitting via HTTP
|
||||
@@ -0,0 +1 @@
|
||||
Set CURLOPT_SSLVERSION to CURL_SSLVERSION_TLSv1_1
|
||||
@@ -0,0 +1 @@
|
||||
include(FailDrop-common.cmake)
|
||||
@@ -0,0 +1 @@
|
||||
[^0]
|
||||
@@ -0,0 +1,2 @@
|
||||
Error message was: ([Cc]ould *n.t resolve host:? '?badhostname.invalid'?|The requested URL returned error:|Protocol "https" (not supported or disabled|not supported|disabled)|.* was built with SSL disabled).*
|
||||
Problems when submitting via HTTP
|
||||
@@ -0,0 +1 @@
|
||||
Set CURLOPT_SSLVERSION to CURL_SSLVERSION_TLSv1_1
|
||||
@@ -0,0 +1 @@
|
||||
include(FailDrop-common.cmake)
|
||||
@@ -491,12 +491,17 @@ run_ctest(check-configuration-type)
|
||||
function(run_FailDrop case)
|
||||
set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/FailDrop-${case}-build)
|
||||
run_cmake_with_options(FailDrop-${case} ${ARGN})
|
||||
unset(ENV{CMAKE_TLS_VERSION}) # Test that env variable is saved in ctest config file.
|
||||
set(RunCMake_TEST_NO_CLEAN 1)
|
||||
run_cmake_command(FailDrop-${case}-ctest
|
||||
${CMAKE_CTEST_COMMAND} -M Experimental -T Submit -VV
|
||||
)
|
||||
endfunction()
|
||||
run_FailDrop(TLSVersion-1.1 -DCTEST_TLS_VERSION=1.1)
|
||||
run_FailDrop(TLSVersion-1.1-cmake -DCMAKE_TLS_VERSION=1.1) # Test fallback to CMake variable.
|
||||
set(ENV{CMAKE_TLS_VERSION} 1.1) # Test fallback to env variable.
|
||||
run_FailDrop(TLSVersion-1.1-env)
|
||||
unset(ENV{CMAKE_TLS_VERSION})
|
||||
run_FailDrop(TLSVerify-ON -DCTEST_TLS_VERIFY=ON)
|
||||
run_FailDrop(TLSVerify-OFF -DCMAKE_TLS_VERIFY=OFF) # Test fallback to CMake variable.
|
||||
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
(-1|255)
|
||||
@@ -0,0 +1,2 @@
|
||||
Error message was: ([Cc]ould *n.t resolve host:? '?badhostname.invalid'?|The requested URL returned error:|Protocol "https" (not supported or disabled|not supported|disabled)|.* was built with SSL disabled).*
|
||||
Problems when submitting via HTTP
|
||||
@@ -0,0 +1,4 @@
|
||||
SetCTestConfiguration from CMAKE_TLS_VERSION:TLSVersion:1\.1
|
||||
SetCTestConfiguration:TLSVersion:1\.1
|
||||
.*
|
||||
Set CURLOPT_SSLVERSION to CURL_SSLVERSION_TLSv1_1
|
||||
@@ -0,0 +1 @@
|
||||
(-1|255)
|
||||
@@ -0,0 +1,2 @@
|
||||
Error message was: ([Cc]ould *n.t resolve host:? '?badhostname.invalid'?|The requested URL returned error:|Protocol "https" (not supported or disabled|not supported|disabled)|.* was built with SSL disabled).*
|
||||
Problems when submitting via HTTP
|
||||
@@ -0,0 +1,4 @@
|
||||
SetCTestConfiguration from ENV{CMAKE_TLS_VERSION}:TLSVersion:1\.1
|
||||
SetCTestConfiguration:TLSVersion:1\.1
|
||||
.*
|
||||
Set CURLOPT_SSLVERSION to CURL_SSLVERSION_TLSv1_1
|
||||
@@ -59,6 +59,12 @@ block()
|
||||
set(CASE_DROP_METHOD "https")
|
||||
set(CASE_TEST_PREFIX_CODE "set(CTEST_TLS_VERSION 1.1)")
|
||||
run_ctest(FailDrop-TLSVersion-1.1 -VV)
|
||||
set(CASE_TEST_PREFIX_CODE "set(CMAKE_TLS_VERSION 1.1)") # Test fallback to CMake variable.
|
||||
run_ctest(FailDrop-TLSVersion-1.1-cmake -VV)
|
||||
set(ENV{CMAKE_TLS_VERSION} 1.1) # Test fallback to env variable.
|
||||
set(CASE_TEST_PREFIX_CODE "")
|
||||
run_ctest(FailDrop-TLSVersion-1.1-env -VV)
|
||||
unset(ENV{CMAKE_TLS_VERSION})
|
||||
set(CASE_TEST_PREFIX_CODE "set(CTEST_TLS_VERIFY ON)")
|
||||
run_ctest(FailDrop-TLSVerify-ON -VV)
|
||||
set(CASE_TEST_PREFIX_CODE "set(CMAKE_TLS_VERIFY OFF)") # Test fallback to CMake variable.
|
||||
|
||||
Reference in New Issue
Block a user