diff options
author | Brad King <brad.king@kitware.com> | 2024-03-06 00:58:41 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2024-03-12 14:46:42 (GMT) |
commit | 56e319ce4ad7367c87380128c44728c8474fef53 (patch) | |
tree | a59a5b8be46cdc558a9a4110cfb5804dfeeec564 | |
parent | 6671f17f65a2d4907f1b598dc2823209714f7ac2 (diff) | |
download | CMake-56e319ce4ad7367c87380128c44728c8474fef53.zip CMake-56e319ce4ad7367c87380128c44728c8474fef53.tar.gz CMake-56e319ce4ad7367c87380128c44728c8474fef53.tar.bz2 |
ctest: Fall back to CMake options for TLS server verification
Use `CMAKE_TLS_VERIFY` if `CTEST_TLS_VERIFY` is not set.
-rw-r--r-- | Help/variable/CTEST_TLS_VERIFY.rst | 3 | ||||
-rw-r--r-- | Modules/CTestTargets.cmake | 3 | ||||
-rw-r--r-- | Source/CTest/cmCTestSubmitCommand.cxx | 15 | ||||
-rw-r--r-- | Tests/RunCMake/CTestCommandLine/RunCMakeTest.cmake | 2 | ||||
-rw-r--r-- | Tests/RunCMake/ctest_submit/FailDrop-TLSVerify-OFF-stdout.txt | 2 | ||||
-rw-r--r-- | Tests/RunCMake/ctest_submit/RunCMakeTest.cmake | 2 |
6 files changed, 22 insertions, 5 deletions
diff --git a/Help/variable/CTEST_TLS_VERIFY.rst b/Help/variable/CTEST_TLS_VERIFY.rst index 22133bd..bce4969 100644 --- a/Help/variable/CTEST_TLS_VERIFY.rst +++ b/Help/variable/CTEST_TLS_VERIFY.rst @@ -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. diff --git a/Modules/CTestTargets.cmake b/Modules/CTestTargets.cmake index 2e11d64..3fcf702 100644 --- a/Modules/CTestTargets.cmake +++ b/Modules/CTestTargets.cmake @@ -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 diff --git a/Source/CTest/cmCTestSubmitCommand.cxx b/Source/CTest/cmCTestSubmitCommand.cxx index 616ad4a..ec5f702 100644 --- a/Source/CTest/cmCTestSubmitCommand.cxx +++ b/Source/CTest/cmCTestSubmitCommand.cxx @@ -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( diff --git a/Tests/RunCMake/CTestCommandLine/RunCMakeTest.cmake b/Tests/RunCMake/CTestCommandLine/RunCMakeTest.cmake index 27a6fab..c3e573a 100644 --- a/Tests/RunCMake/CTestCommandLine/RunCMakeTest.cmake +++ b/Tests/RunCMake/CTestCommandLine/RunCMakeTest.cmake @@ -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 diff --git a/Tests/RunCMake/ctest_submit/FailDrop-TLSVerify-OFF-stdout.txt b/Tests/RunCMake/ctest_submit/FailDrop-TLSVerify-OFF-stdout.txt index 9053f6c..4f5120e 100644 --- a/Tests/RunCMake/ctest_submit/FailDrop-TLSVerify-OFF-stdout.txt +++ b/Tests/RunCMake/ctest_submit/FailDrop-TLSVerify-OFF-stdout.txt @@ -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 diff --git a/Tests/RunCMake/ctest_submit/RunCMakeTest.cmake b/Tests/RunCMake/ctest_submit/RunCMakeTest.cmake index 5ac568f..46b0ba8 100644 --- a/Tests/RunCMake/ctest_submit/RunCMakeTest.cmake +++ b/Tests/RunCMake/ctest_submit/RunCMakeTest.cmake @@ -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() |