mirror of
https://github.com/Kitware/CMake.git
synced 2025-12-31 19:00:54 -06:00
ctest: Fall back to CMake environment variable for TLS server verification
Use `ENV{CMAKE_TLS_VERIFY}` if `CTEST_TLS_VERIFY` or `CMAKE_TLS_VERIFY`
is not set.
Issue: #23608
This commit is contained in:
@@ -9,5 +9,5 @@ before including the :module:`CTest` module. The value is a boolean
|
||||
indicating whether to verify the server certificate when submitting
|
||||
to a dashboard via ``https://`` URLs.
|
||||
|
||||
If ``CTEST_TLS_VERIFY`` is not set, :variable:`CMAKE_TLS_VERIFY` is
|
||||
used instead.
|
||||
If ``CTEST_TLS_VERIFY`` is not set, the :variable:`CMAKE_TLS_VERIFY` variable
|
||||
or :envvar:`CMAKE_TLS_VERIFY` environment variable is used instead.
|
||||
|
||||
@@ -28,8 +28,12 @@ block()
|
||||
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}")
|
||||
if(NOT DEFINED CTEST_TLS_VERIFY)
|
||||
if(DEFINED CMAKE_TLS_VERIFY)
|
||||
set(CTEST_TLS_VERIFY "${CMAKE_TLS_VERIFY}")
|
||||
elseif(DEFINED ENV{CMAKE_TLS_VERIFY})
|
||||
set(CTEST_TLS_VERIFY "$ENV{CMAKE_TLS_VERIFY}")
|
||||
endif()
|
||||
endif()
|
||||
if(CTEST_NEW_FORMAT)
|
||||
configure_file(
|
||||
|
||||
@@ -88,6 +88,15 @@ cmCTestGenericHandler* cmCTestSubmitCommand::InitializeHandler()
|
||||
this->Quiet);
|
||||
this->CTest->SetCTestConfiguration("TLSVerify", *tlsVerifyVar,
|
||||
this->Quiet);
|
||||
} else if (cm::optional<std::string> tlsVerifyEnv =
|
||||
cmSystemTools::GetEnvVar("CMAKE_TLS_VERIFY")) {
|
||||
cmCTestOptionalLog(
|
||||
this->CTest, HANDLER_VERBOSE_OUTPUT,
|
||||
"SetCTestConfiguration from ENV{CMAKE_TLS_VERIFY}:TLSVerify:"
|
||||
<< *tlsVerifyEnv << std::endl,
|
||||
this->Quiet);
|
||||
this->CTest->SetCTestConfiguration("TLSVerify", *tlsVerifyEnv,
|
||||
this->Quiet);
|
||||
}
|
||||
}
|
||||
this->CTest->SetCTestConfigurationFromCMakeVariable(
|
||||
|
||||
@@ -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_SSL_VERIFYPEER to off
|
||||
@@ -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_SSL_VERIFYPEER to on
|
||||
@@ -0,0 +1 @@
|
||||
include(FailDrop-common.cmake)
|
||||
@@ -491,6 +491,7 @@ 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_VERIFY}) # Test that env variable is saved in ctest config file.
|
||||
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
|
||||
@@ -504,8 +505,14 @@ run_FailDrop(TLSVersion-1.1-env)
|
||||
unset(ENV{CMAKE_TLS_VERSION})
|
||||
run_FailDrop(TLSVerify-ON -DCTEST_TLS_VERIFY=ON)
|
||||
run_FailDrop(TLSVerify-ON-cmake -DCMAKE_TLS_VERIFY=ON) # Test fallback to CMake variable.
|
||||
set(ENV{CMAKE_TLS_VERIFY} 1) # Test fallback to env variable.
|
||||
run_FailDrop(TLSVerify-ON-env)
|
||||
unset(ENV{CMAKE_TLS_VERIFY})
|
||||
run_FailDrop(TLSVerify-OFF -DCTEST_TLS_VERIFY=OFF)
|
||||
run_FailDrop(TLSVerify-OFF-cmake -DCMAKE_TLS_VERIFY=OFF) # Test fallback to CMake variable.
|
||||
set(ENV{CMAKE_TLS_VERIFY} 0) # Test fallback to env variable.
|
||||
run_FailDrop(TLSVerify-OFF-env)
|
||||
unset(ENV{CMAKE_TLS_VERIFY})
|
||||
|
||||
run_cmake_command(EmptyDirCoverage-ctest
|
||||
${CMAKE_CTEST_COMMAND} -C Debug -M Experimental -T Coverage
|
||||
|
||||
@@ -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_VERIFY}:TLSVerify:OFF
|
||||
SetCTestConfiguration:TLSVerify:OFF
|
||||
.*
|
||||
Set CURLOPT_SSL_VERIFYPEER to off
|
||||
@@ -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_VERIFY}:TLSVerify:ON
|
||||
SetCTestConfiguration:TLSVerify:ON
|
||||
.*
|
||||
Set CURLOPT_SSL_VERIFYPEER to on
|
||||
@@ -69,8 +69,16 @@ block()
|
||||
run_ctest(FailDrop-TLSVerify-ON -VV)
|
||||
set(CASE_TEST_PREFIX_CODE "set(CMAKE_TLS_VERIFY ON)") # Test fallback to CMake variable.
|
||||
run_ctest(FailDrop-TLSVerify-ON-cmake -VV)
|
||||
set(ENV{CMAKE_TLS_VERIFY} ON) # Test fallback to env variable.
|
||||
set(CASE_TEST_PREFIX_CODE "")
|
||||
run_ctest(FailDrop-TLSVerify-ON-env -VV)
|
||||
unset(ENV{CMAKE_TLS_VERIFY})
|
||||
set(CASE_TEST_PREFIX_CODE "set(CTEST_TLS_VERIFY OFF)")
|
||||
run_ctest(FailDrop-TLSVerify-OFF -VV)
|
||||
set(CASE_TEST_PREFIX_CODE "set(CMAKE_TLS_VERIFY OFF)") # Test fallback to CMake variable.
|
||||
run_ctest(FailDrop-TLSVerify-OFF-cmake -VV)
|
||||
set(ENV{CMAKE_TLS_VERIFY} OFF) # Test fallback to env variable.
|
||||
set(CASE_TEST_PREFIX_CODE "")
|
||||
run_ctest(FailDrop-TLSVerify-OFF-env -VV)
|
||||
unset(ENV{CMAKE_TLS_VERIFY})
|
||||
endblock()
|
||||
|
||||
Reference in New Issue
Block a user