ctest: Fall back to CMake options for TLS server verification

Use `CMAKE_TLS_VERIFY` if `CTEST_TLS_VERIFY` is not set.
This commit is contained in:
Brad King 2024-03-05 19:58:41 -05:00
parent 6671f17f65
commit 56e319ce4a
6 changed files with 22 additions and 5 deletions

View File

@ -8,3 +8,6 @@ Specify the CTest ``TLSVerify`` setting in a :manual:`ctest(1)`
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.

View File

@ -21,6 +21,9 @@ mark_as_advanced(CMAKE_CTEST_COMMAND)
# configure files
block()
if(NOT DEFINED CTEST_TLS_VERIFY AND DEFINED CMAKE_TLS_VERIFY)
set(CTEST_TLS_VERIFY "${CMAKE_TLS_VERIFY}")
endif()
if(CTEST_NEW_FORMAT)
configure_file(
${CMAKE_ROOT}/Modules/DartConfiguration.tcl.in

View File

@ -57,8 +57,19 @@ cmCTestGenericHandler* cmCTestSubmitCommand::InitializeHandler()
this->CTest->SetCTestConfigurationFromCMakeVariable(
this->Makefile, "TLSVersion", "CTEST_TLS_VERSION", this->Quiet);
this->CTest->SetCTestConfigurationFromCMakeVariable(
this->Makefile, "TLSVerify", "CTEST_TLS_VERIFY", this->Quiet);
if (!this->CTest->SetCTestConfigurationFromCMakeVariable(
this->Makefile, "TLSVerify", "CTEST_TLS_VERIFY", this->Quiet)) {
if (cmValue tlsVerifyVar =
this->Makefile->GetDefinition("CMAKE_TLS_VERIFY")) {
cmCTestOptionalLog(
this->CTest, HANDLER_VERBOSE_OUTPUT,
"SetCTestConfiguration from CMAKE_TLS_VERIFY:TLSVerify:"
<< *tlsVerifyVar << std::endl,
this->Quiet);
this->CTest->SetCTestConfiguration("TLSVerify", *tlsVerifyVar,
this->Quiet);
}
}
this->CTest->SetCTestConfigurationFromCMakeVariable(
this->Makefile, "CurlOptions", "CTEST_CURL_OPTIONS", this->Quiet);
this->CTest->SetCTestConfigurationFromCMakeVariable(

View File

@ -498,7 +498,7 @@ function(run_FailDrop case)
endfunction()
run_FailDrop(TLSVersion-1.1 -DCTEST_TLS_VERSION=1.1)
run_FailDrop(TLSVerify-ON -DCTEST_TLS_VERIFY=ON)
run_FailDrop(TLSVerify-OFF -DCTEST_TLS_VERIFY=OFF)
run_FailDrop(TLSVerify-OFF -DCMAKE_TLS_VERIFY=OFF) # Test fallback to CMake variable.
run_cmake_command(EmptyDirCoverage-ctest
${CMAKE_CTEST_COMMAND} -C Debug -M Experimental -T Coverage

View File

@ -1,4 +1,4 @@
SetCTestConfigurationFromCMakeVariable:TLSVerify:CTEST_TLS_VERIFY
SetCTestConfiguration from CMAKE_TLS_VERIFY:TLSVerify:OFF
SetCTestConfiguration:TLSVerify:OFF
.*
Set CURLOPT_SSL_VERIFYPEER to off

View File

@ -61,6 +61,6 @@ block()
run_ctest(FailDrop-TLSVersion-1.1 -VV)
set(CASE_TEST_PREFIX_CODE "set(CTEST_TLS_VERIFY ON)")
run_ctest(FailDrop-TLSVerify-ON -VV)
set(CASE_TEST_PREFIX_CODE "set(CTEST_TLS_VERIFY OFF)")
set(CASE_TEST_PREFIX_CODE "set(CMAKE_TLS_VERIFY OFF)") # Test fallback to CMake variable.
run_ctest(FailDrop-TLSVerify-OFF -VV)
endblock()