Tests: Add test for file(DOWNLOAD) with TLS_VERIFY

Occasionally curl updates introduce errors in https verification.
Add an explicit test for this capability, activated by an undocumented
option that we can use in CI to specify a URL to test.

Co-authored-by: Brad King <brad.king@kitware.com>
Fixes: #24405
Issue: #24147
Issue: #24398
This commit is contained in:
scivision
2023-02-09 21:53:02 -05:00
committed by Brad King
parent 9b7d086220
commit 17b47da3d8
6 changed files with 28 additions and 1 deletions
+9 -1
View File
@@ -469,7 +469,15 @@ add_RunCMake_test(ctest_fixtures)
add_RunCMake_test(define_property)
add_RunCMake_test(file -DCYGWIN=${CYGWIN} -DMSYS=${MSYS})
add_RunCMake_test(file-CHMOD -DMSYS=${MSYS})
add_RunCMake_test(file-DOWNLOAD -DCMake_TEST_NO_NETWORK=${CMake_TEST_NO_NETWORK})
foreach(var
CMake_TEST_NO_NETWORK
CMake_TEST_TLS_VERIFY_URL
)
if(DEFINED ${var})
list(APPEND file-DOWNLOAD_ARGS -D${var}=${${var}})
endif()
endforeach()
add_RunCMake_test(file-DOWNLOAD)
add_RunCMake_test(file-RPATH -DCMAKE_SYSTEM_NAME=${CMAKE_SYSTEM_NAME})
add_RunCMake_test(find_file)
add_RunCMake_test(find_library -DCYGWIN=${CYGWIN} -DMSYS=${MSYS})
@@ -24,3 +24,8 @@ run_cmake(SHOW_PROGRESS)
if(NOT CMake_TEST_NO_NETWORK)
run_cmake(bad-hostname)
endif()
if(CMake_TEST_TLS_VERIFY_URL)
run_cmake(TLS_VERIFY-bad)
run_cmake_with_options(TLS_VERIFY-good -Durl=${CMake_TEST_TLS_VERIFY_URL})
endif()
@@ -0,0 +1 @@
-- (60;"SSL peer certificate or SSH remote key was not OK"|35;"SSL connect error")
@@ -0,0 +1,6 @@
file(DOWNLOAD https://expired.badssl.com TLS_VERIFY 1 STATUS status LOG log)
message(STATUS "${status}")
list(GET status 0 code)
if(NOT code MATCHES "^(35|60)$")
message("${log}")
endif()
@@ -0,0 +1 @@
-- 0;"No error"
@@ -0,0 +1,6 @@
file(DOWNLOAD ${url} TLS_VERIFY 1 STATUS status LOG log)
message(STATUS "${status}")
list(GET status 0 code)
if(NOT code EQUAL 0)
message("${log}")
endif()