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: #23608stage/master/nightly/2024/03/31^2
parent
c295df53c6
commit
7139944264
|
@ -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()
|
||||
|
|
Loading…
Reference in New Issue