From d6af54c4733a11c345322665fbea0fbe9b0fd2d4 Mon Sep 17 00:00:00 2001 From: Brad King Date: Thu, 17 Nov 2022 16:34:48 -0500 Subject: Tests: Factor out a RunCMake.file-DOWNLOAD test Move the `DOWNLOAD-*` cases over from the `RunCMake.file` test. --- Tests/RunCMake/CMakeLists.txt | 1 + Tests/RunCMake/file-DOWNLOAD/CMakeLists.txt | 3 +++ Tests/RunCMake/file-DOWNLOAD/RunCMakeTest.cmake | 10 ++++++++++ Tests/RunCMake/file-DOWNLOAD/hash-mismatch-result.txt | 1 + Tests/RunCMake/file-DOWNLOAD/hash-mismatch-stderr.txt | 11 +++++++++++ Tests/RunCMake/file-DOWNLOAD/hash-mismatch.cmake | 10 ++++++++++ Tests/RunCMake/file-DOWNLOAD/hash-mismatch.txt | 0 .../file-DOWNLOAD/httpheader-not-set-result.txt | 1 + .../file-DOWNLOAD/httpheader-not-set-stderr.txt | 4 ++++ Tests/RunCMake/file-DOWNLOAD/httpheader-not-set.cmake | 1 + Tests/RunCMake/file-DOWNLOAD/netrc-bad-result.txt | 1 + Tests/RunCMake/file-DOWNLOAD/netrc-bad-stderr.txt | 19 +++++++++++++++++++ Tests/RunCMake/file-DOWNLOAD/netrc-bad.cmake | 15 +++++++++++++++ Tests/RunCMake/file-DOWNLOAD/netrc-bad.txt | 0 Tests/RunCMake/file-DOWNLOAD/no-save-hash-result.txt | 1 + Tests/RunCMake/file-DOWNLOAD/no-save-hash-stderr.txt | 4 ++++ Tests/RunCMake/file-DOWNLOAD/no-save-hash.cmake | 8 ++++++++ Tests/RunCMake/file-DOWNLOAD/no-save-hash.txt | 0 Tests/RunCMake/file-DOWNLOAD/pass-not-set-result.txt | 1 + Tests/RunCMake/file-DOWNLOAD/pass-not-set-stderr.txt | 4 ++++ Tests/RunCMake/file-DOWNLOAD/pass-not-set.cmake | 1 + .../file-DOWNLOAD/tls-cainfo-not-set-result.txt | 1 + .../file-DOWNLOAD/tls-cainfo-not-set-stderr.txt | 4 ++++ Tests/RunCMake/file-DOWNLOAD/tls-cainfo-not-set.cmake | 1 + .../file-DOWNLOAD/tls-verify-not-set-result.txt | 1 + .../file-DOWNLOAD/tls-verify-not-set-stderr.txt | 4 ++++ Tests/RunCMake/file-DOWNLOAD/tls-verify-not-set.cmake | 1 + .../RunCMake/file-DOWNLOAD/unused-argument-result.txt | 0 .../RunCMake/file-DOWNLOAD/unused-argument-stderr.txt | 5 +++++ Tests/RunCMake/file-DOWNLOAD/unused-argument.cmake | 8 ++++++++ Tests/RunCMake/file-DOWNLOAD/unused-argument.txt | 0 Tests/RunCMake/file/DOWNLOAD-hash-mismatch-result.txt | 1 - Tests/RunCMake/file/DOWNLOAD-hash-mismatch-stderr.txt | 11 ----------- Tests/RunCMake/file/DOWNLOAD-hash-mismatch.cmake | 10 ---------- Tests/RunCMake/file/DOWNLOAD-hash-mismatch.txt | 0 .../file/DOWNLOAD-httpheader-not-set-result.txt | 1 - .../file/DOWNLOAD-httpheader-not-set-stderr.txt | 4 ---- Tests/RunCMake/file/DOWNLOAD-httpheader-not-set.cmake | 1 - Tests/RunCMake/file/DOWNLOAD-netrc-bad-result.txt | 1 - Tests/RunCMake/file/DOWNLOAD-netrc-bad-stderr.txt | 19 ------------------- Tests/RunCMake/file/DOWNLOAD-netrc-bad.cmake | 15 --------------- Tests/RunCMake/file/DOWNLOAD-netrc-bad.txt | 0 Tests/RunCMake/file/DOWNLOAD-no-save-hash-result.txt | 1 - Tests/RunCMake/file/DOWNLOAD-no-save-hash-stderr.txt | 4 ---- Tests/RunCMake/file/DOWNLOAD-no-save-hash.cmake | 8 -------- Tests/RunCMake/file/DOWNLOAD-no-save-hash.txt | 0 Tests/RunCMake/file/DOWNLOAD-pass-not-set-result.txt | 1 - Tests/RunCMake/file/DOWNLOAD-pass-not-set-stderr.txt | 4 ---- Tests/RunCMake/file/DOWNLOAD-pass-not-set.cmake | 1 - .../file/DOWNLOAD-tls-cainfo-not-set-result.txt | 1 - .../file/DOWNLOAD-tls-cainfo-not-set-stderr.txt | 4 ---- Tests/RunCMake/file/DOWNLOAD-tls-cainfo-not-set.cmake | 1 - .../file/DOWNLOAD-tls-verify-not-set-result.txt | 1 - .../file/DOWNLOAD-tls-verify-not-set-stderr.txt | 4 ---- Tests/RunCMake/file/DOWNLOAD-tls-verify-not-set.cmake | 1 - .../RunCMake/file/DOWNLOAD-unused-argument-result.txt | 0 .../RunCMake/file/DOWNLOAD-unused-argument-stderr.txt | 5 ----- Tests/RunCMake/file/DOWNLOAD-unused-argument.cmake | 8 -------- Tests/RunCMake/file/DOWNLOAD-unused-argument.txt | 0 Tests/RunCMake/file/RunCMakeTest.cmake | 8 -------- 60 files changed, 121 insertions(+), 115 deletions(-) create mode 100644 Tests/RunCMake/file-DOWNLOAD/CMakeLists.txt create mode 100644 Tests/RunCMake/file-DOWNLOAD/RunCMakeTest.cmake create mode 100644 Tests/RunCMake/file-DOWNLOAD/hash-mismatch-result.txt create mode 100644 Tests/RunCMake/file-DOWNLOAD/hash-mismatch-stderr.txt create mode 100644 Tests/RunCMake/file-DOWNLOAD/hash-mismatch.cmake create mode 100644 Tests/RunCMake/file-DOWNLOAD/hash-mismatch.txt create mode 100644 Tests/RunCMake/file-DOWNLOAD/httpheader-not-set-result.txt create mode 100644 Tests/RunCMake/file-DOWNLOAD/httpheader-not-set-stderr.txt create mode 100644 Tests/RunCMake/file-DOWNLOAD/httpheader-not-set.cmake create mode 100644 Tests/RunCMake/file-DOWNLOAD/netrc-bad-result.txt create mode 100644 Tests/RunCMake/file-DOWNLOAD/netrc-bad-stderr.txt create mode 100644 Tests/RunCMake/file-DOWNLOAD/netrc-bad.cmake create mode 100644 Tests/RunCMake/file-DOWNLOAD/netrc-bad.txt create mode 100644 Tests/RunCMake/file-DOWNLOAD/no-save-hash-result.txt create mode 100644 Tests/RunCMake/file-DOWNLOAD/no-save-hash-stderr.txt create mode 100644 Tests/RunCMake/file-DOWNLOAD/no-save-hash.cmake create mode 100644 Tests/RunCMake/file-DOWNLOAD/no-save-hash.txt create mode 100644 Tests/RunCMake/file-DOWNLOAD/pass-not-set-result.txt create mode 100644 Tests/RunCMake/file-DOWNLOAD/pass-not-set-stderr.txt create mode 100644 Tests/RunCMake/file-DOWNLOAD/pass-not-set.cmake create mode 100644 Tests/RunCMake/file-DOWNLOAD/tls-cainfo-not-set-result.txt create mode 100644 Tests/RunCMake/file-DOWNLOAD/tls-cainfo-not-set-stderr.txt create mode 100644 Tests/RunCMake/file-DOWNLOAD/tls-cainfo-not-set.cmake create mode 100644 Tests/RunCMake/file-DOWNLOAD/tls-verify-not-set-result.txt create mode 100644 Tests/RunCMake/file-DOWNLOAD/tls-verify-not-set-stderr.txt create mode 100644 Tests/RunCMake/file-DOWNLOAD/tls-verify-not-set.cmake create mode 100644 Tests/RunCMake/file-DOWNLOAD/unused-argument-result.txt create mode 100644 Tests/RunCMake/file-DOWNLOAD/unused-argument-stderr.txt create mode 100644 Tests/RunCMake/file-DOWNLOAD/unused-argument.cmake create mode 100644 Tests/RunCMake/file-DOWNLOAD/unused-argument.txt delete mode 100644 Tests/RunCMake/file/DOWNLOAD-hash-mismatch-result.txt delete mode 100644 Tests/RunCMake/file/DOWNLOAD-hash-mismatch-stderr.txt delete mode 100644 Tests/RunCMake/file/DOWNLOAD-hash-mismatch.cmake delete mode 100644 Tests/RunCMake/file/DOWNLOAD-hash-mismatch.txt delete mode 100644 Tests/RunCMake/file/DOWNLOAD-httpheader-not-set-result.txt delete mode 100644 Tests/RunCMake/file/DOWNLOAD-httpheader-not-set-stderr.txt delete mode 100644 Tests/RunCMake/file/DOWNLOAD-httpheader-not-set.cmake delete mode 100644 Tests/RunCMake/file/DOWNLOAD-netrc-bad-result.txt delete mode 100644 Tests/RunCMake/file/DOWNLOAD-netrc-bad-stderr.txt delete mode 100644 Tests/RunCMake/file/DOWNLOAD-netrc-bad.cmake delete mode 100644 Tests/RunCMake/file/DOWNLOAD-netrc-bad.txt delete mode 100644 Tests/RunCMake/file/DOWNLOAD-no-save-hash-result.txt delete mode 100644 Tests/RunCMake/file/DOWNLOAD-no-save-hash-stderr.txt delete mode 100644 Tests/RunCMake/file/DOWNLOAD-no-save-hash.cmake delete mode 100644 Tests/RunCMake/file/DOWNLOAD-no-save-hash.txt delete mode 100644 Tests/RunCMake/file/DOWNLOAD-pass-not-set-result.txt delete mode 100644 Tests/RunCMake/file/DOWNLOAD-pass-not-set-stderr.txt delete mode 100644 Tests/RunCMake/file/DOWNLOAD-pass-not-set.cmake delete mode 100644 Tests/RunCMake/file/DOWNLOAD-tls-cainfo-not-set-result.txt delete mode 100644 Tests/RunCMake/file/DOWNLOAD-tls-cainfo-not-set-stderr.txt delete mode 100644 Tests/RunCMake/file/DOWNLOAD-tls-cainfo-not-set.cmake delete mode 100644 Tests/RunCMake/file/DOWNLOAD-tls-verify-not-set-result.txt delete mode 100644 Tests/RunCMake/file/DOWNLOAD-tls-verify-not-set-stderr.txt delete mode 100644 Tests/RunCMake/file/DOWNLOAD-tls-verify-not-set.cmake delete mode 100644 Tests/RunCMake/file/DOWNLOAD-unused-argument-result.txt delete mode 100644 Tests/RunCMake/file/DOWNLOAD-unused-argument-stderr.txt delete mode 100644 Tests/RunCMake/file/DOWNLOAD-unused-argument.cmake delete mode 100644 Tests/RunCMake/file/DOWNLOAD-unused-argument.txt diff --git a/Tests/RunCMake/CMakeLists.txt b/Tests/RunCMake/CMakeLists.txt index 1174d0d..4e0783d 100644 --- a/Tests/RunCMake/CMakeLists.txt +++ b/Tests/RunCMake/CMakeLists.txt @@ -466,6 +466,7 @@ 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) 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}) diff --git a/Tests/RunCMake/file-DOWNLOAD/CMakeLists.txt b/Tests/RunCMake/file-DOWNLOAD/CMakeLists.txt new file mode 100644 index 0000000..9a66cde --- /dev/null +++ b/Tests/RunCMake/file-DOWNLOAD/CMakeLists.txt @@ -0,0 +1,3 @@ +cmake_minimum_required(VERSION 3.13) +project(${RunCMake_TEST} NONE) +include(${RunCMake_TEST}.cmake) diff --git a/Tests/RunCMake/file-DOWNLOAD/RunCMakeTest.cmake b/Tests/RunCMake/file-DOWNLOAD/RunCMakeTest.cmake new file mode 100644 index 0000000..c800521 --- /dev/null +++ b/Tests/RunCMake/file-DOWNLOAD/RunCMakeTest.cmake @@ -0,0 +1,10 @@ +include(RunCMake) + +run_cmake(hash-mismatch) +run_cmake(unused-argument) +run_cmake(httpheader-not-set) +run_cmake(netrc-bad) +run_cmake(tls-cainfo-not-set) +run_cmake(tls-verify-not-set) +run_cmake(pass-not-set) +run_cmake(no-save-hash) diff --git a/Tests/RunCMake/file-DOWNLOAD/hash-mismatch-result.txt b/Tests/RunCMake/file-DOWNLOAD/hash-mismatch-result.txt new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/Tests/RunCMake/file-DOWNLOAD/hash-mismatch-result.txt @@ -0,0 +1 @@ +1 diff --git a/Tests/RunCMake/file-DOWNLOAD/hash-mismatch-stderr.txt b/Tests/RunCMake/file-DOWNLOAD/hash-mismatch-stderr.txt new file mode 100644 index 0000000..80112bf --- /dev/null +++ b/Tests/RunCMake/file-DOWNLOAD/hash-mismatch-stderr.txt @@ -0,0 +1,11 @@ +^CMake Error at hash-mismatch.cmake:[0-9]+ \(file\): + file DOWNLOAD HASH mismatch + + for file: \[.*/Tests/RunCMake/file-DOWNLOAD/hash-mismatch-build/hash-mismatch.txt\] + expected hash: \[0123456789abcdef0123456789abcdef01234567\] + actual hash: \[da39a3ee5e6b4b0d3255bfef95601890afd80709\] + +Call Stack \(most recent call first\): + CMakeLists.txt:[0-9]+ \(include\) ++ +status='1;HASH mismatch: expected: 0123456789abcdef0123456789abcdef01234567 actual: da39a3ee5e6b4b0d3255bfef95601890afd80709'$ diff --git a/Tests/RunCMake/file-DOWNLOAD/hash-mismatch.cmake b/Tests/RunCMake/file-DOWNLOAD/hash-mismatch.cmake new file mode 100644 index 0000000..6b51d4e --- /dev/null +++ b/Tests/RunCMake/file-DOWNLOAD/hash-mismatch.cmake @@ -0,0 +1,10 @@ +if(NOT "${CMAKE_CURRENT_SOURCE_DIR}" MATCHES "^/") + set(slash /) +endif() +file(DOWNLOAD + "file://${slash}${CMAKE_CURRENT_SOURCE_DIR}/hash-mismatch.txt" + ${CMAKE_CURRENT_BINARY_DIR}/hash-mismatch.txt + EXPECTED_HASH SHA1=0123456789abcdef0123456789abcdef01234567 + STATUS status + ) +message("status='${status}'") diff --git a/Tests/RunCMake/file-DOWNLOAD/hash-mismatch.txt b/Tests/RunCMake/file-DOWNLOAD/hash-mismatch.txt new file mode 100644 index 0000000..e69de29 diff --git a/Tests/RunCMake/file-DOWNLOAD/httpheader-not-set-result.txt b/Tests/RunCMake/file-DOWNLOAD/httpheader-not-set-result.txt new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/Tests/RunCMake/file-DOWNLOAD/httpheader-not-set-result.txt @@ -0,0 +1 @@ +1 diff --git a/Tests/RunCMake/file-DOWNLOAD/httpheader-not-set-stderr.txt b/Tests/RunCMake/file-DOWNLOAD/httpheader-not-set-stderr.txt new file mode 100644 index 0000000..3ac5082 --- /dev/null +++ b/Tests/RunCMake/file-DOWNLOAD/httpheader-not-set-stderr.txt @@ -0,0 +1,4 @@ +^CMake Error at httpheader-not-set.cmake:[0-9]+ \(file\): + file DOWNLOAD missing string for HTTPHEADER. +Call Stack \(most recent call first\): + CMakeLists.txt:[0-9]+ \(include\)$ diff --git a/Tests/RunCMake/file-DOWNLOAD/httpheader-not-set.cmake b/Tests/RunCMake/file-DOWNLOAD/httpheader-not-set.cmake new file mode 100644 index 0000000..6efc958 --- /dev/null +++ b/Tests/RunCMake/file-DOWNLOAD/httpheader-not-set.cmake @@ -0,0 +1 @@ +file(DOWNLOAD "" "" HTTPHEADER "Content-Type: application/x-compressed-tar" HTTPHEADER) diff --git a/Tests/RunCMake/file-DOWNLOAD/netrc-bad-result.txt b/Tests/RunCMake/file-DOWNLOAD/netrc-bad-result.txt new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/Tests/RunCMake/file-DOWNLOAD/netrc-bad-result.txt @@ -0,0 +1 @@ +1 diff --git a/Tests/RunCMake/file-DOWNLOAD/netrc-bad-stderr.txt b/Tests/RunCMake/file-DOWNLOAD/netrc-bad-stderr.txt new file mode 100644 index 0000000..61d7c99 --- /dev/null +++ b/Tests/RunCMake/file-DOWNLOAD/netrc-bad-stderr.txt @@ -0,0 +1,19 @@ +^CMake Error at netrc-bad\.cmake:[0-9]+ \(file\): + file DOWNLOAD missing level value for NETRC\. +Call Stack \(most recent call first\): + CMakeLists\.txt:[0-9]+ \(include\) ++ +CMake Error at netrc-bad\.cmake:[0-9]+ \(file\): + file DOWNLOAD missing file value for NETRC_FILE\. +Call Stack \(most recent call first\): + CMakeLists\.txt:[0-9]+ \(include\) ++ +CMake Error at netrc-bad\.cmake:[0-9]+ \(file\): + file NETRC accepts OPTIONAL, IGNORED or REQUIRED but got: INVALID +Call Stack \(most recent call first\): + CMakeLists\.txt:[0-9]+ \(include\) ++ +CMake Error at netrc-bad\.cmake:[0-9]+ \(file\): + file NETRC accepts OPTIONAL, IGNORED or REQUIRED but got: FALSE +Call Stack \(most recent call first\): + CMakeLists\.txt:[0-9]+ \(include\)$ diff --git a/Tests/RunCMake/file-DOWNLOAD/netrc-bad.cmake b/Tests/RunCMake/file-DOWNLOAD/netrc-bad.cmake new file mode 100644 index 0000000..c62238a --- /dev/null +++ b/Tests/RunCMake/file-DOWNLOAD/netrc-bad.cmake @@ -0,0 +1,15 @@ +if(NOT "${CMAKE_CURRENT_SOURCE_DIR}" MATCHES "^/") + set(slash /) +endif() +file(DOWNLOAD "" "" NETRC) +file(DOWNLOAD "" "" NETRC_FILE) +set(CMAKE_NETRC FALSE) +file(DOWNLOAD + "file://${slash}${CMAKE_CURRENT_SOURCE_DIR}/netrc-bad.txt" + "${CMAKE_CURRENT_BINARY_DIR}/netrc-bad.txt" + NETRC INVALID + ) +file(DOWNLOAD + "file://${slash}${CMAKE_CURRENT_SOURCE_DIR}/netrc-bad.txt" + "${CMAKE_CURRENT_BINARY_DIR}/netrc-bad.txt" + ) diff --git a/Tests/RunCMake/file-DOWNLOAD/netrc-bad.txt b/Tests/RunCMake/file-DOWNLOAD/netrc-bad.txt new file mode 100644 index 0000000..e69de29 diff --git a/Tests/RunCMake/file-DOWNLOAD/no-save-hash-result.txt b/Tests/RunCMake/file-DOWNLOAD/no-save-hash-result.txt new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/Tests/RunCMake/file-DOWNLOAD/no-save-hash-result.txt @@ -0,0 +1 @@ +1 diff --git a/Tests/RunCMake/file-DOWNLOAD/no-save-hash-stderr.txt b/Tests/RunCMake/file-DOWNLOAD/no-save-hash-stderr.txt new file mode 100644 index 0000000..9e38cc3 --- /dev/null +++ b/Tests/RunCMake/file-DOWNLOAD/no-save-hash-stderr.txt @@ -0,0 +1,4 @@ +^CMake Error at no-save-hash\.cmake:[0-9]+ \(file\): + file DOWNLOAD cannot calculate hash if file is not saved\. +Call Stack \(most recent call first\): + CMakeLists\.txt:[0-9]+ \(include\)$ diff --git a/Tests/RunCMake/file-DOWNLOAD/no-save-hash.cmake b/Tests/RunCMake/file-DOWNLOAD/no-save-hash.cmake new file mode 100644 index 0000000..3a001f3 --- /dev/null +++ b/Tests/RunCMake/file-DOWNLOAD/no-save-hash.cmake @@ -0,0 +1,8 @@ +if(NOT "${CMAKE_CURRENT_SOURCE_DIR}" MATCHES "^/") + set(slash /) +endif() +file(DOWNLOAD + "file://${slash}${CMAKE_CURRENT_SOURCE_DIR}/no-save-md5.txt" + EXPECTED_HASH MD5=55555555555555555555555555555555 + STATUS status + ) diff --git a/Tests/RunCMake/file-DOWNLOAD/no-save-hash.txt b/Tests/RunCMake/file-DOWNLOAD/no-save-hash.txt new file mode 100644 index 0000000..e69de29 diff --git a/Tests/RunCMake/file-DOWNLOAD/pass-not-set-result.txt b/Tests/RunCMake/file-DOWNLOAD/pass-not-set-result.txt new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/Tests/RunCMake/file-DOWNLOAD/pass-not-set-result.txt @@ -0,0 +1 @@ +1 diff --git a/Tests/RunCMake/file-DOWNLOAD/pass-not-set-stderr.txt b/Tests/RunCMake/file-DOWNLOAD/pass-not-set-stderr.txt new file mode 100644 index 0000000..23997c5 --- /dev/null +++ b/Tests/RunCMake/file-DOWNLOAD/pass-not-set-stderr.txt @@ -0,0 +1,4 @@ +^CMake Error at pass-not-set.cmake:[0-9]+ \(file\): + file DOWNLOAD missing string for USERPWD. +Call Stack \(most recent call first\): + CMakeLists.txt:[0-9]+ \(include\)$ diff --git a/Tests/RunCMake/file-DOWNLOAD/pass-not-set.cmake b/Tests/RunCMake/file-DOWNLOAD/pass-not-set.cmake new file mode 100644 index 0000000..61eff6d --- /dev/null +++ b/Tests/RunCMake/file-DOWNLOAD/pass-not-set.cmake @@ -0,0 +1 @@ +file(DOWNLOAD "" "" USERPWD) diff --git a/Tests/RunCMake/file-DOWNLOAD/tls-cainfo-not-set-result.txt b/Tests/RunCMake/file-DOWNLOAD/tls-cainfo-not-set-result.txt new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/Tests/RunCMake/file-DOWNLOAD/tls-cainfo-not-set-result.txt @@ -0,0 +1 @@ +1 diff --git a/Tests/RunCMake/file-DOWNLOAD/tls-cainfo-not-set-stderr.txt b/Tests/RunCMake/file-DOWNLOAD/tls-cainfo-not-set-stderr.txt new file mode 100644 index 0000000..d9fa7b7 --- /dev/null +++ b/Tests/RunCMake/file-DOWNLOAD/tls-cainfo-not-set-stderr.txt @@ -0,0 +1,4 @@ +^CMake Error at tls-cainfo-not-set.cmake:[0-9]+ \(file\): + file DOWNLOAD missing file value for TLS_CAINFO. +Call Stack \(most recent call first\): + CMakeLists.txt:[0-9]+ \(include\)$ diff --git a/Tests/RunCMake/file-DOWNLOAD/tls-cainfo-not-set.cmake b/Tests/RunCMake/file-DOWNLOAD/tls-cainfo-not-set.cmake new file mode 100644 index 0000000..b476425 --- /dev/null +++ b/Tests/RunCMake/file-DOWNLOAD/tls-cainfo-not-set.cmake @@ -0,0 +1 @@ +file(DOWNLOAD "" "" TLS_CAINFO) diff --git a/Tests/RunCMake/file-DOWNLOAD/tls-verify-not-set-result.txt b/Tests/RunCMake/file-DOWNLOAD/tls-verify-not-set-result.txt new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/Tests/RunCMake/file-DOWNLOAD/tls-verify-not-set-result.txt @@ -0,0 +1 @@ +1 diff --git a/Tests/RunCMake/file-DOWNLOAD/tls-verify-not-set-stderr.txt b/Tests/RunCMake/file-DOWNLOAD/tls-verify-not-set-stderr.txt new file mode 100644 index 0000000..c048ea9 --- /dev/null +++ b/Tests/RunCMake/file-DOWNLOAD/tls-verify-not-set-stderr.txt @@ -0,0 +1,4 @@ +^CMake Error at tls-verify-not-set.cmake:[0-9]+ \(file\): + file DOWNLOAD missing bool value for TLS_VERIFY. +Call Stack \(most recent call first\): + CMakeLists.txt:[0-9]+ \(include\)$ diff --git a/Tests/RunCMake/file-DOWNLOAD/tls-verify-not-set.cmake b/Tests/RunCMake/file-DOWNLOAD/tls-verify-not-set.cmake new file mode 100644 index 0000000..919368c --- /dev/null +++ b/Tests/RunCMake/file-DOWNLOAD/tls-verify-not-set.cmake @@ -0,0 +1 @@ +file(DOWNLOAD "" "" TLS_VERIFY) diff --git a/Tests/RunCMake/file-DOWNLOAD/unused-argument-result.txt b/Tests/RunCMake/file-DOWNLOAD/unused-argument-result.txt new file mode 100644 index 0000000..e69de29 diff --git a/Tests/RunCMake/file-DOWNLOAD/unused-argument-stderr.txt b/Tests/RunCMake/file-DOWNLOAD/unused-argument-stderr.txt new file mode 100644 index 0000000..d5fb3a6 --- /dev/null +++ b/Tests/RunCMake/file-DOWNLOAD/unused-argument-stderr.txt @@ -0,0 +1,5 @@ +^CMake Warning \(dev\) at unused-argument.cmake:[0-9]+ \(file\): + Unexpected argument: JUNK +Call Stack \(most recent call first\): + CMakeLists.txt:[0-9]+ \(include\) +This warning is for project developers. Use -Wno-dev to suppress it.$ diff --git a/Tests/RunCMake/file-DOWNLOAD/unused-argument.cmake b/Tests/RunCMake/file-DOWNLOAD/unused-argument.cmake new file mode 100644 index 0000000..b97f1de --- /dev/null +++ b/Tests/RunCMake/file-DOWNLOAD/unused-argument.cmake @@ -0,0 +1,8 @@ +if(NOT "${CMAKE_CURRENT_SOURCE_DIR}" MATCHES "^/") + set(slash /) +endif() +file(DOWNLOAD + "file://${slash}${CMAKE_CURRENT_SOURCE_DIR}/unused-argument.txt" + "${CMAKE_CURRENT_BINARY_DIR}/unused-argument.txt" + JUNK + ) diff --git a/Tests/RunCMake/file-DOWNLOAD/unused-argument.txt b/Tests/RunCMake/file-DOWNLOAD/unused-argument.txt new file mode 100644 index 0000000..e69de29 diff --git a/Tests/RunCMake/file/DOWNLOAD-hash-mismatch-result.txt b/Tests/RunCMake/file/DOWNLOAD-hash-mismatch-result.txt deleted file mode 100644 index d00491f..0000000 --- a/Tests/RunCMake/file/DOWNLOAD-hash-mismatch-result.txt +++ /dev/null @@ -1 +0,0 @@ -1 diff --git a/Tests/RunCMake/file/DOWNLOAD-hash-mismatch-stderr.txt b/Tests/RunCMake/file/DOWNLOAD-hash-mismatch-stderr.txt deleted file mode 100644 index 7a356c1..0000000 --- a/Tests/RunCMake/file/DOWNLOAD-hash-mismatch-stderr.txt +++ /dev/null @@ -1,11 +0,0 @@ -^CMake Error at DOWNLOAD-hash-mismatch.cmake:[0-9]+ \(file\): - file DOWNLOAD HASH mismatch - - for file: \[.*/Tests/RunCMake/file/DOWNLOAD-hash-mismatch-build/hash-mismatch.txt\] - expected hash: \[0123456789abcdef0123456789abcdef01234567\] - actual hash: \[da39a3ee5e6b4b0d3255bfef95601890afd80709\] - -Call Stack \(most recent call first\): - CMakeLists.txt:[0-9]+ \(include\) -+ -status='1;HASH mismatch: expected: 0123456789abcdef0123456789abcdef01234567 actual: da39a3ee5e6b4b0d3255bfef95601890afd80709'$ diff --git a/Tests/RunCMake/file/DOWNLOAD-hash-mismatch.cmake b/Tests/RunCMake/file/DOWNLOAD-hash-mismatch.cmake deleted file mode 100644 index a91b217..0000000 --- a/Tests/RunCMake/file/DOWNLOAD-hash-mismatch.cmake +++ /dev/null @@ -1,10 +0,0 @@ -if(NOT "${CMAKE_CURRENT_SOURCE_DIR}" MATCHES "^/") - set(slash /) -endif() -file(DOWNLOAD - "file://${slash}${CMAKE_CURRENT_SOURCE_DIR}/DOWNLOAD-hash-mismatch.txt" - ${CMAKE_CURRENT_BINARY_DIR}/hash-mismatch.txt - EXPECTED_HASH SHA1=0123456789abcdef0123456789abcdef01234567 - STATUS status - ) -message("status='${status}'") diff --git a/Tests/RunCMake/file/DOWNLOAD-hash-mismatch.txt b/Tests/RunCMake/file/DOWNLOAD-hash-mismatch.txt deleted file mode 100644 index e69de29..0000000 diff --git a/Tests/RunCMake/file/DOWNLOAD-httpheader-not-set-result.txt b/Tests/RunCMake/file/DOWNLOAD-httpheader-not-set-result.txt deleted file mode 100644 index d00491f..0000000 --- a/Tests/RunCMake/file/DOWNLOAD-httpheader-not-set-result.txt +++ /dev/null @@ -1 +0,0 @@ -1 diff --git a/Tests/RunCMake/file/DOWNLOAD-httpheader-not-set-stderr.txt b/Tests/RunCMake/file/DOWNLOAD-httpheader-not-set-stderr.txt deleted file mode 100644 index 247923b..0000000 --- a/Tests/RunCMake/file/DOWNLOAD-httpheader-not-set-stderr.txt +++ /dev/null @@ -1,4 +0,0 @@ -^CMake Error at DOWNLOAD-httpheader-not-set.cmake:[0-9]+ \(file\): - file DOWNLOAD missing string for HTTPHEADER. -Call Stack \(most recent call first\): - CMakeLists.txt:[0-9]+ \(include\)$ diff --git a/Tests/RunCMake/file/DOWNLOAD-httpheader-not-set.cmake b/Tests/RunCMake/file/DOWNLOAD-httpheader-not-set.cmake deleted file mode 100644 index 6efc958..0000000 --- a/Tests/RunCMake/file/DOWNLOAD-httpheader-not-set.cmake +++ /dev/null @@ -1 +0,0 @@ -file(DOWNLOAD "" "" HTTPHEADER "Content-Type: application/x-compressed-tar" HTTPHEADER) diff --git a/Tests/RunCMake/file/DOWNLOAD-netrc-bad-result.txt b/Tests/RunCMake/file/DOWNLOAD-netrc-bad-result.txt deleted file mode 100644 index d00491f..0000000 --- a/Tests/RunCMake/file/DOWNLOAD-netrc-bad-result.txt +++ /dev/null @@ -1 +0,0 @@ -1 diff --git a/Tests/RunCMake/file/DOWNLOAD-netrc-bad-stderr.txt b/Tests/RunCMake/file/DOWNLOAD-netrc-bad-stderr.txt deleted file mode 100644 index 96ce62a..0000000 --- a/Tests/RunCMake/file/DOWNLOAD-netrc-bad-stderr.txt +++ /dev/null @@ -1,19 +0,0 @@ -^CMake Error at DOWNLOAD-netrc-bad\.cmake:[0-9]+ \(file\): - file DOWNLOAD missing level value for NETRC\. -Call Stack \(most recent call first\): - CMakeLists\.txt:[0-9]+ \(include\) -+ -CMake Error at DOWNLOAD-netrc-bad\.cmake:[0-9]+ \(file\): - file DOWNLOAD missing file value for NETRC_FILE\. -Call Stack \(most recent call first\): - CMakeLists\.txt:[0-9]+ \(include\) -+ -CMake Error at DOWNLOAD-netrc-bad\.cmake:[0-9]+ \(file\): - file NETRC accepts OPTIONAL, IGNORED or REQUIRED but got: INVALID -Call Stack \(most recent call first\): - CMakeLists\.txt:[0-9]+ \(include\) -+ -CMake Error at DOWNLOAD-netrc-bad\.cmake:[0-9]+ \(file\): - file NETRC accepts OPTIONAL, IGNORED or REQUIRED but got: FALSE -Call Stack \(most recent call first\): - CMakeLists\.txt:[0-9]+ \(include\)$ diff --git a/Tests/RunCMake/file/DOWNLOAD-netrc-bad.cmake b/Tests/RunCMake/file/DOWNLOAD-netrc-bad.cmake deleted file mode 100644 index 6a62df9..0000000 --- a/Tests/RunCMake/file/DOWNLOAD-netrc-bad.cmake +++ /dev/null @@ -1,15 +0,0 @@ -if(NOT "${CMAKE_CURRENT_SOURCE_DIR}" MATCHES "^/") - set(slash /) -endif() -file(DOWNLOAD "" "" NETRC) -file(DOWNLOAD "" "" NETRC_FILE) -set(CMAKE_NETRC FALSE) -file(DOWNLOAD - "file://${slash}${CMAKE_CURRENT_SOURCE_DIR}/DOWNLOAD-netrc-bad.txt" - "${CMAKE_CURRENT_BINARY_DIR}/netrc-bad.txt" - NETRC INVALID - ) -file(DOWNLOAD - "file://${slash}${CMAKE_CURRENT_SOURCE_DIR}/DOWNLOAD-netrc-bad.txt" - "${CMAKE_CURRENT_BINARY_DIR}/netrc-bad.txt" - ) diff --git a/Tests/RunCMake/file/DOWNLOAD-netrc-bad.txt b/Tests/RunCMake/file/DOWNLOAD-netrc-bad.txt deleted file mode 100644 index e69de29..0000000 diff --git a/Tests/RunCMake/file/DOWNLOAD-no-save-hash-result.txt b/Tests/RunCMake/file/DOWNLOAD-no-save-hash-result.txt deleted file mode 100644 index d00491f..0000000 --- a/Tests/RunCMake/file/DOWNLOAD-no-save-hash-result.txt +++ /dev/null @@ -1 +0,0 @@ -1 diff --git a/Tests/RunCMake/file/DOWNLOAD-no-save-hash-stderr.txt b/Tests/RunCMake/file/DOWNLOAD-no-save-hash-stderr.txt deleted file mode 100644 index b0f0d19..0000000 --- a/Tests/RunCMake/file/DOWNLOAD-no-save-hash-stderr.txt +++ /dev/null @@ -1,4 +0,0 @@ -^CMake Error at DOWNLOAD-no-save-hash\.cmake:[0-9]+ \(file\): - file DOWNLOAD cannot calculate hash if file is not saved\. -Call Stack \(most recent call first\): - CMakeLists\.txt:[0-9]+ \(include\)$ diff --git a/Tests/RunCMake/file/DOWNLOAD-no-save-hash.cmake b/Tests/RunCMake/file/DOWNLOAD-no-save-hash.cmake deleted file mode 100644 index ce959a7..0000000 --- a/Tests/RunCMake/file/DOWNLOAD-no-save-hash.cmake +++ /dev/null @@ -1,8 +0,0 @@ -if(NOT "${CMAKE_CURRENT_SOURCE_DIR}" MATCHES "^/") - set(slash /) -endif() -file(DOWNLOAD - "file://${slash}${CMAKE_CURRENT_SOURCE_DIR}/DOWNLOAD-no-save-md5.txt" - EXPECTED_HASH MD5=55555555555555555555555555555555 - STATUS status - ) diff --git a/Tests/RunCMake/file/DOWNLOAD-no-save-hash.txt b/Tests/RunCMake/file/DOWNLOAD-no-save-hash.txt deleted file mode 100644 index e69de29..0000000 diff --git a/Tests/RunCMake/file/DOWNLOAD-pass-not-set-result.txt b/Tests/RunCMake/file/DOWNLOAD-pass-not-set-result.txt deleted file mode 100644 index d00491f..0000000 --- a/Tests/RunCMake/file/DOWNLOAD-pass-not-set-result.txt +++ /dev/null @@ -1 +0,0 @@ -1 diff --git a/Tests/RunCMake/file/DOWNLOAD-pass-not-set-stderr.txt b/Tests/RunCMake/file/DOWNLOAD-pass-not-set-stderr.txt deleted file mode 100644 index 2fa2731..0000000 --- a/Tests/RunCMake/file/DOWNLOAD-pass-not-set-stderr.txt +++ /dev/null @@ -1,4 +0,0 @@ -^CMake Error at DOWNLOAD-pass-not-set.cmake:[0-9]+ \(file\): - file DOWNLOAD missing string for USERPWD. -Call Stack \(most recent call first\): - CMakeLists.txt:[0-9]+ \(include\)$ diff --git a/Tests/RunCMake/file/DOWNLOAD-pass-not-set.cmake b/Tests/RunCMake/file/DOWNLOAD-pass-not-set.cmake deleted file mode 100644 index 61eff6d..0000000 --- a/Tests/RunCMake/file/DOWNLOAD-pass-not-set.cmake +++ /dev/null @@ -1 +0,0 @@ -file(DOWNLOAD "" "" USERPWD) diff --git a/Tests/RunCMake/file/DOWNLOAD-tls-cainfo-not-set-result.txt b/Tests/RunCMake/file/DOWNLOAD-tls-cainfo-not-set-result.txt deleted file mode 100644 index d00491f..0000000 --- a/Tests/RunCMake/file/DOWNLOAD-tls-cainfo-not-set-result.txt +++ /dev/null @@ -1 +0,0 @@ -1 diff --git a/Tests/RunCMake/file/DOWNLOAD-tls-cainfo-not-set-stderr.txt b/Tests/RunCMake/file/DOWNLOAD-tls-cainfo-not-set-stderr.txt deleted file mode 100644 index 1552baa..0000000 --- a/Tests/RunCMake/file/DOWNLOAD-tls-cainfo-not-set-stderr.txt +++ /dev/null @@ -1,4 +0,0 @@ -^CMake Error at DOWNLOAD-tls-cainfo-not-set.cmake:[0-9]+ \(file\): - file DOWNLOAD missing file value for TLS_CAINFO. -Call Stack \(most recent call first\): - CMakeLists.txt:[0-9]+ \(include\)$ diff --git a/Tests/RunCMake/file/DOWNLOAD-tls-cainfo-not-set.cmake b/Tests/RunCMake/file/DOWNLOAD-tls-cainfo-not-set.cmake deleted file mode 100644 index b476425..0000000 --- a/Tests/RunCMake/file/DOWNLOAD-tls-cainfo-not-set.cmake +++ /dev/null @@ -1 +0,0 @@ -file(DOWNLOAD "" "" TLS_CAINFO) diff --git a/Tests/RunCMake/file/DOWNLOAD-tls-verify-not-set-result.txt b/Tests/RunCMake/file/DOWNLOAD-tls-verify-not-set-result.txt deleted file mode 100644 index d00491f..0000000 --- a/Tests/RunCMake/file/DOWNLOAD-tls-verify-not-set-result.txt +++ /dev/null @@ -1 +0,0 @@ -1 diff --git a/Tests/RunCMake/file/DOWNLOAD-tls-verify-not-set-stderr.txt b/Tests/RunCMake/file/DOWNLOAD-tls-verify-not-set-stderr.txt deleted file mode 100644 index 2f46c0c..0000000 --- a/Tests/RunCMake/file/DOWNLOAD-tls-verify-not-set-stderr.txt +++ /dev/null @@ -1,4 +0,0 @@ -^CMake Error at DOWNLOAD-tls-verify-not-set.cmake:[0-9]+ \(file\): - file DOWNLOAD missing bool value for TLS_VERIFY. -Call Stack \(most recent call first\): - CMakeLists.txt:[0-9]+ \(include\)$ diff --git a/Tests/RunCMake/file/DOWNLOAD-tls-verify-not-set.cmake b/Tests/RunCMake/file/DOWNLOAD-tls-verify-not-set.cmake deleted file mode 100644 index 919368c..0000000 --- a/Tests/RunCMake/file/DOWNLOAD-tls-verify-not-set.cmake +++ /dev/null @@ -1 +0,0 @@ -file(DOWNLOAD "" "" TLS_VERIFY) diff --git a/Tests/RunCMake/file/DOWNLOAD-unused-argument-result.txt b/Tests/RunCMake/file/DOWNLOAD-unused-argument-result.txt deleted file mode 100644 index e69de29..0000000 diff --git a/Tests/RunCMake/file/DOWNLOAD-unused-argument-stderr.txt b/Tests/RunCMake/file/DOWNLOAD-unused-argument-stderr.txt deleted file mode 100644 index 82a78c9..0000000 --- a/Tests/RunCMake/file/DOWNLOAD-unused-argument-stderr.txt +++ /dev/null @@ -1,5 +0,0 @@ -^CMake Warning \(dev\) at DOWNLOAD-unused-argument.cmake:[0-9]+ \(file\): - Unexpected argument: JUNK -Call Stack \(most recent call first\): - CMakeLists.txt:[0-9]+ \(include\) -This warning is for project developers. Use -Wno-dev to suppress it.$ diff --git a/Tests/RunCMake/file/DOWNLOAD-unused-argument.cmake b/Tests/RunCMake/file/DOWNLOAD-unused-argument.cmake deleted file mode 100644 index 2fa5482..0000000 --- a/Tests/RunCMake/file/DOWNLOAD-unused-argument.cmake +++ /dev/null @@ -1,8 +0,0 @@ -if(NOT "${CMAKE_CURRENT_SOURCE_DIR}" MATCHES "^/") - set(slash /) -endif() -file(DOWNLOAD - "file://${slash}${CMAKE_CURRENT_SOURCE_DIR}/DOWNLOAD-unused-argument.txt" - "${CMAKE_CURRENT_BINARY_DIR}/unused-argument.txt" - JUNK - ) diff --git a/Tests/RunCMake/file/DOWNLOAD-unused-argument.txt b/Tests/RunCMake/file/DOWNLOAD-unused-argument.txt deleted file mode 100644 index e69de29..0000000 diff --git a/Tests/RunCMake/file/RunCMakeTest.cmake b/Tests/RunCMake/file/RunCMakeTest.cmake index 4ad00ff..fcfb1d2 100644 --- a/Tests/RunCMake/file/RunCMakeTest.cmake +++ b/Tests/RunCMake/file/RunCMakeTest.cmake @@ -4,14 +4,6 @@ run_cmake(CREATE_LINK) run_cmake(CREATE_LINK-COPY_ON_ERROR) run_cmake(CREATE_LINK-noarg) run_cmake(CREATE_LINK-noexist) -run_cmake(DOWNLOAD-hash-mismatch) -run_cmake(DOWNLOAD-unused-argument) -run_cmake(DOWNLOAD-httpheader-not-set) -run_cmake(DOWNLOAD-netrc-bad) -run_cmake(DOWNLOAD-tls-cainfo-not-set) -run_cmake(DOWNLOAD-tls-verify-not-set) -run_cmake(DOWNLOAD-pass-not-set) -run_cmake(DOWNLOAD-no-save-hash) run_cmake(TOUCH) run_cmake(TOUCH-error-in-source-directory) run_cmake(TOUCH-error-missing-directory) -- cgit v0.12 From 9dda7c276cb2b46f422c1b36e9d4c5aa09c2ff35 Mon Sep 17 00:00:00 2001 From: Brad King Date: Thu, 17 Nov 2022 17:38:31 -0500 Subject: Tests: Factor out common helper in RunCMake.file-DOWNLOAD cases --- Tests/RunCMake/file-DOWNLOAD/common.cmake | 15 +++++++++++++++ Tests/RunCMake/file-DOWNLOAD/hash-mismatch-stderr.txt | 6 +++--- Tests/RunCMake/file-DOWNLOAD/hash-mismatch.cmake | 10 ++++------ Tests/RunCMake/file-DOWNLOAD/hash-mismatch.txt | 0 Tests/RunCMake/file-DOWNLOAD/input.png | Bin 0 -> 194 bytes Tests/RunCMake/file-DOWNLOAD/no-save-hash-stderr.txt | 3 ++- Tests/RunCMake/file-DOWNLOAD/no-save-hash.cmake | 13 +++++-------- Tests/RunCMake/file-DOWNLOAD/unused-argument-stderr.txt | 3 ++- Tests/RunCMake/file-DOWNLOAD/unused-argument.cmake | 11 +++-------- Tests/RunCMake/file-DOWNLOAD/unused-argument.txt | 0 10 files changed, 34 insertions(+), 27 deletions(-) create mode 100644 Tests/RunCMake/file-DOWNLOAD/common.cmake delete mode 100644 Tests/RunCMake/file-DOWNLOAD/hash-mismatch.txt create mode 100644 Tests/RunCMake/file-DOWNLOAD/input.png delete mode 100644 Tests/RunCMake/file-DOWNLOAD/unused-argument.txt diff --git a/Tests/RunCMake/file-DOWNLOAD/common.cmake b/Tests/RunCMake/file-DOWNLOAD/common.cmake new file mode 100644 index 0000000..6aa2fe6 --- /dev/null +++ b/Tests/RunCMake/file-DOWNLOAD/common.cmake @@ -0,0 +1,15 @@ +if(NOT "${CMAKE_CURRENT_SOURCE_DIR}" MATCHES "^/") + set(slash /) +endif() +set(url "file://${slash}${CMAKE_CURRENT_SOURCE_DIR}/input.png") +set(file ${CMAKE_CURRENT_BINARY_DIR}/output.png) + +function(file_download) + file(DOWNLOAD "${url}" + ${file} # leave unquoted + TIMEOUT 30 + STATUS status + ${ARGN} + ) + message(STATUS "status='${status}'") +endfunction() diff --git a/Tests/RunCMake/file-DOWNLOAD/hash-mismatch-stderr.txt b/Tests/RunCMake/file-DOWNLOAD/hash-mismatch-stderr.txt index 80112bf..6682794 100644 --- a/Tests/RunCMake/file-DOWNLOAD/hash-mismatch-stderr.txt +++ b/Tests/RunCMake/file-DOWNLOAD/hash-mismatch-stderr.txt @@ -1,11 +1,11 @@ ^CMake Error at hash-mismatch.cmake:[0-9]+ \(file\): file DOWNLOAD HASH mismatch - for file: \[.*/Tests/RunCMake/file-DOWNLOAD/hash-mismatch-build/hash-mismatch.txt\] + for file: \[.*/Tests/RunCMake/file-DOWNLOAD/hash-mismatch-build/output.png\] expected hash: \[0123456789abcdef0123456789abcdef01234567\] - actual hash: \[da39a3ee5e6b4b0d3255bfef95601890afd80709\] + actual hash: \[67eee17f79d9ac557284fc0b8ad19f25723fb578\] Call Stack \(most recent call first\): CMakeLists.txt:[0-9]+ \(include\) + -status='1;HASH mismatch: expected: 0123456789abcdef0123456789abcdef01234567 actual: da39a3ee5e6b4b0d3255bfef95601890afd80709'$ +status='1;HASH mismatch: expected: 0123456789abcdef0123456789abcdef01234567 actual: 67eee17f79d9ac557284fc0b8ad19f25723fb578'$ diff --git a/Tests/RunCMake/file-DOWNLOAD/hash-mismatch.cmake b/Tests/RunCMake/file-DOWNLOAD/hash-mismatch.cmake index 6b51d4e..e3f91e3 100644 --- a/Tests/RunCMake/file-DOWNLOAD/hash-mismatch.cmake +++ b/Tests/RunCMake/file-DOWNLOAD/hash-mismatch.cmake @@ -1,10 +1,8 @@ -if(NOT "${CMAKE_CURRENT_SOURCE_DIR}" MATCHES "^/") - set(slash /) -endif() -file(DOWNLOAD - "file://${slash}${CMAKE_CURRENT_SOURCE_DIR}/hash-mismatch.txt" - ${CMAKE_CURRENT_BINARY_DIR}/hash-mismatch.txt +include(common.cmake) + +file(DOWNLOAD ${url} ${file} EXPECTED_HASH SHA1=0123456789abcdef0123456789abcdef01234567 + TIMEOUT 30 STATUS status ) message("status='${status}'") diff --git a/Tests/RunCMake/file-DOWNLOAD/hash-mismatch.txt b/Tests/RunCMake/file-DOWNLOAD/hash-mismatch.txt deleted file mode 100644 index e69de29..0000000 diff --git a/Tests/RunCMake/file-DOWNLOAD/input.png b/Tests/RunCMake/file-DOWNLOAD/input.png new file mode 100644 index 0000000..9ab565a Binary files /dev/null and b/Tests/RunCMake/file-DOWNLOAD/input.png differ diff --git a/Tests/RunCMake/file-DOWNLOAD/no-save-hash-stderr.txt b/Tests/RunCMake/file-DOWNLOAD/no-save-hash-stderr.txt index 9e38cc3..8f2f885 100644 --- a/Tests/RunCMake/file-DOWNLOAD/no-save-hash-stderr.txt +++ b/Tests/RunCMake/file-DOWNLOAD/no-save-hash-stderr.txt @@ -1,4 +1,5 @@ -^CMake Error at no-save-hash\.cmake:[0-9]+ \(file\): +^CMake Error at common\.cmake:[0-9]+ \(file\): file DOWNLOAD cannot calculate hash if file is not saved\. Call Stack \(most recent call first\): + no-save-hash.cmake:[0-9]+ \(file_download\) CMakeLists\.txt:[0-9]+ \(include\)$ diff --git a/Tests/RunCMake/file-DOWNLOAD/no-save-hash.cmake b/Tests/RunCMake/file-DOWNLOAD/no-save-hash.cmake index 3a001f3..7fdc397 100644 --- a/Tests/RunCMake/file-DOWNLOAD/no-save-hash.cmake +++ b/Tests/RunCMake/file-DOWNLOAD/no-save-hash.cmake @@ -1,8 +1,5 @@ -if(NOT "${CMAKE_CURRENT_SOURCE_DIR}" MATCHES "^/") - set(slash /) -endif() -file(DOWNLOAD - "file://${slash}${CMAKE_CURRENT_SOURCE_DIR}/no-save-md5.txt" - EXPECTED_HASH MD5=55555555555555555555555555555555 - STATUS status - ) +include(common.cmake) + +# Test downloading without saving to a file. +set(file "") +file_download(EXPECTED_HASH MD5=55555555555555555555555555555555) diff --git a/Tests/RunCMake/file-DOWNLOAD/unused-argument-stderr.txt b/Tests/RunCMake/file-DOWNLOAD/unused-argument-stderr.txt index d5fb3a6..f7cfc4f 100644 --- a/Tests/RunCMake/file-DOWNLOAD/unused-argument-stderr.txt +++ b/Tests/RunCMake/file-DOWNLOAD/unused-argument-stderr.txt @@ -1,5 +1,6 @@ -^CMake Warning \(dev\) at unused-argument.cmake:[0-9]+ \(file\): +^CMake Warning \(dev\) at common.cmake:[0-9]+ \(file\): Unexpected argument: JUNK Call Stack \(most recent call first\): + unused-argument.cmake:[0-9]+ \(file_download\) CMakeLists.txt:[0-9]+ \(include\) This warning is for project developers. Use -Wno-dev to suppress it.$ diff --git a/Tests/RunCMake/file-DOWNLOAD/unused-argument.cmake b/Tests/RunCMake/file-DOWNLOAD/unused-argument.cmake index b97f1de..6f7f597 100644 --- a/Tests/RunCMake/file-DOWNLOAD/unused-argument.cmake +++ b/Tests/RunCMake/file-DOWNLOAD/unused-argument.cmake @@ -1,8 +1,3 @@ -if(NOT "${CMAKE_CURRENT_SOURCE_DIR}" MATCHES "^/") - set(slash /) -endif() -file(DOWNLOAD - "file://${slash}${CMAKE_CURRENT_SOURCE_DIR}/unused-argument.txt" - "${CMAKE_CURRENT_BINARY_DIR}/unused-argument.txt" - JUNK - ) +include(common.cmake) + +file_download(JUNK) diff --git a/Tests/RunCMake/file-DOWNLOAD/unused-argument.txt b/Tests/RunCMake/file-DOWNLOAD/unused-argument.txt deleted file mode 100644 index e69de29..0000000 -- cgit v0.12 From 52b9c7b958a9e184ccfa023ad85cf8fde4308afd Mon Sep 17 00:00:00 2001 From: Brad King Date: Thu, 17 Nov 2022 16:59:08 -0500 Subject: Tests: Move CMake.FileDownload cases into RunCMake.file-DOWNLOAD The RunCMake infrastructure is more well-suited to check the results of each case. It can also report more precisely what went wrong when a case fails. --- Tests/CMakeTests/CMakeLists.txt | 10 - Tests/CMakeTests/FileDownloadBadHashTest.cmake.in | 13 -- Tests/CMakeTests/FileDownloadInput.png | Bin 194 -> 0 bytes Tests/CMakeTests/FileDownloadTest.cmake.in | 229 --------------------- Tests/CMakeTests/FileUploadInput.png | Bin 0 -> 194 bytes Tests/CMakeTests/FileUploadTest.cmake.in | 2 +- .../file-DOWNLOAD/EXPECTED_HASH-stdout.txt | 8 + Tests/RunCMake/file-DOWNLOAD/EXPECTED_HASH.cmake | 13 ++ Tests/RunCMake/file-DOWNLOAD/RunCMakeTest.cmake | 13 ++ .../file-DOWNLOAD/SHOW_PROGRESS-stdout.txt | 2 + Tests/RunCMake/file-DOWNLOAD/SHOW_PROGRESS.cmake | 3 + .../RunCMake/file-DOWNLOAD/bad-hostname-stdout.txt | 1 + Tests/RunCMake/file-DOWNLOAD/bad-hostname.cmake | 9 + Tests/RunCMake/file-DOWNLOAD/basic-stdout.txt | 1 + Tests/RunCMake/file-DOWNLOAD/basic.cmake | 3 + .../file-DOWNLOAD/file-without-path-stdout.txt | 1 + .../RunCMake/file-DOWNLOAD/file-without-path.cmake | 10 + Tests/RunCMake/file-DOWNLOAD/no-file-arg.cmake | 11 + Tests/RunCMake/file-DOWNLOAD/no-file-stdout.txt | 1 + Tests/RunCMake/file-DOWNLOAD/no-file.cmake | 11 + Tests/RunCMake/file-DOWNLOAD/range-stdout.txt | 4 + Tests/RunCMake/file-DOWNLOAD/range.cmake | 15 ++ 22 files changed, 107 insertions(+), 253 deletions(-) delete mode 100644 Tests/CMakeTests/FileDownloadBadHashTest.cmake.in delete mode 100644 Tests/CMakeTests/FileDownloadInput.png delete mode 100644 Tests/CMakeTests/FileDownloadTest.cmake.in create mode 100644 Tests/CMakeTests/FileUploadInput.png create mode 100644 Tests/RunCMake/file-DOWNLOAD/EXPECTED_HASH-stdout.txt create mode 100644 Tests/RunCMake/file-DOWNLOAD/EXPECTED_HASH.cmake create mode 100644 Tests/RunCMake/file-DOWNLOAD/SHOW_PROGRESS-stdout.txt create mode 100644 Tests/RunCMake/file-DOWNLOAD/SHOW_PROGRESS.cmake create mode 100644 Tests/RunCMake/file-DOWNLOAD/bad-hostname-stdout.txt create mode 100644 Tests/RunCMake/file-DOWNLOAD/bad-hostname.cmake create mode 100644 Tests/RunCMake/file-DOWNLOAD/basic-stdout.txt create mode 100644 Tests/RunCMake/file-DOWNLOAD/basic.cmake create mode 100644 Tests/RunCMake/file-DOWNLOAD/file-without-path-stdout.txt create mode 100644 Tests/RunCMake/file-DOWNLOAD/file-without-path.cmake create mode 100644 Tests/RunCMake/file-DOWNLOAD/no-file-arg.cmake create mode 100644 Tests/RunCMake/file-DOWNLOAD/no-file-stdout.txt create mode 100644 Tests/RunCMake/file-DOWNLOAD/no-file.cmake create mode 100644 Tests/RunCMake/file-DOWNLOAD/range-stdout.txt create mode 100644 Tests/RunCMake/file-DOWNLOAD/range.cmake diff --git a/Tests/CMakeTests/CMakeLists.txt b/Tests/CMakeTests/CMakeLists.txt index bd2dd7e..16e631b 100644 --- a/Tests/CMakeTests/CMakeLists.txt +++ b/Tests/CMakeTests/CMakeLists.txt @@ -32,16 +32,6 @@ AddCMakeTest(ProcessorCount "-DKWSYS_TEST_EXE=$") AddCMakeTest(PushCheckState "") AddCMakeTest(While "") -AddCMakeTest(FileDownload "") -set_tests_properties(CMake.FileDownload PROPERTIES - PASS_REGULAR_EXPRESSION "file already exists with expected MD5 sum" - FAIL_REGULAR_EXPRESSION "Unexpected status|incorrectly interpreted" - ) -AddCMakeTest(FileDownloadBadHash "") -set_property(TEST CMake.FileDownloadBadHash PROPERTY - WILL_FAIL TRUE - ) - AddCMakeTest(FileUpload "") set(EndStuff_PreArgs diff --git a/Tests/CMakeTests/FileDownloadBadHashTest.cmake.in b/Tests/CMakeTests/FileDownloadBadHashTest.cmake.in deleted file mode 100644 index 64b45ed..0000000 --- a/Tests/CMakeTests/FileDownloadBadHashTest.cmake.in +++ /dev/null @@ -1,13 +0,0 @@ -if(NOT "@CMAKE_CURRENT_SOURCE_DIR@" MATCHES "^/") - set(slash /) -endif() -set(url "file://${slash}@CMAKE_CURRENT_SOURCE_DIR@/FileDownloadInput.png") -set(dir "@CMAKE_CURRENT_BINARY_DIR@/downloads") - -file(DOWNLOAD - ${url} - ${dir}/file3.png - TIMEOUT 2 - STATUS status - EXPECTED_HASH SHA1=5555555555555555555555555555555555555555 - ) diff --git a/Tests/CMakeTests/FileDownloadInput.png b/Tests/CMakeTests/FileDownloadInput.png deleted file mode 100644 index 9ab565a..0000000 Binary files a/Tests/CMakeTests/FileDownloadInput.png and /dev/null differ diff --git a/Tests/CMakeTests/FileDownloadTest.cmake.in b/Tests/CMakeTests/FileDownloadTest.cmake.in deleted file mode 100644 index 255909d..0000000 --- a/Tests/CMakeTests/FileDownloadTest.cmake.in +++ /dev/null @@ -1,229 +0,0 @@ -# We do not contact any real URLs, but do try a bogus one. -# Remove any proxy configuration that may change behavior. -unset(ENV{http_proxy}) -unset(ENV{https_proxy}) - -set(timeout 4) - -if(NOT "@CMAKE_CURRENT_SOURCE_DIR@" MATCHES "^/") - set(slash /) -endif() -set(url "file://${slash}@CMAKE_CURRENT_SOURCE_DIR@/FileDownloadInput.png") -set(dir "@CMAKE_CURRENT_BINARY_DIR@/downloads") - -# Beware Windows asynchronous file/directory removal, rename and then -# remove the renamed dir so we can be certain the dir isn't there when -# we get to the file() commands below -if(EXISTS "${dir}") - file(RENAME ${dir} "${dir}_beingRemoved") - file(REMOVE_RECURSE "${dir}_beingRemoved") -endif() - -function(__reportIfWrongStatus statusPair expectedStatusCode) - list(GET statusPair 0 statusCode) - if(NOT statusCode EQUAL expectedStatusCode) - message(SEND_ERROR - "Unexpected status: ${statusCode}, expected: ${expectedStatusCode}") - endif() -endfunction() - -message(STATUS "FileDownload:1") -file(DOWNLOAD - ${url} - ${dir}/file1.png - TIMEOUT ${timeout} - STATUS status - ) -__reportIfWrongStatus("${status}" 0) - -message(STATUS "FileDownload:2") -file(DOWNLOAD - ${url} - ${dir}/file2.png - TIMEOUT ${timeout} - STATUS status - SHOW_PROGRESS - ) -__reportIfWrongStatus("${status}" 0) - -# Two calls in a row, exactly the same arguments. -# Since downloaded file should exist already for 2nd call, -# the 2nd call will short-circuit and return early... -# -if(EXISTS ${dir}/file3.png) - file(REMOVE ${dir}/file3.png) -endif() - -message(STATUS "FileDownload:3") -file(DOWNLOAD - ${url} - ${dir}/file3.png - TIMEOUT ${timeout} - STATUS status - EXPECTED_MD5 dbd330d52f4dbd60115d4191904ded92 - ) -__reportIfWrongStatus("${status}" 0) - -message(STATUS "FileDownload:4") -file(DOWNLOAD - ${url} - ${dir}/file3.png - TIMEOUT ${timeout} - STATUS status - EXPECTED_HASH SHA1=67eee17f79d9ac557284fc0b8ad19f25723fb578 - ) -__reportIfWrongStatus("${status}" 0) - -message(STATUS "FileDownload:5") -file(DOWNLOAD - ${url} - ${dir}/file3.png - TIMEOUT ${timeout} - STATUS status - EXPECTED_HASH SHA224=ba283726bbb602776818b463943189afd91836cb7ee5dd6e2c7b5ae4 - ) -__reportIfWrongStatus("${status}" 0) - -message(STATUS "FileDownload:6") -file(DOWNLOAD - ${url} - ${dir}/file3.png - TIMEOUT ${timeout} - STATUS status - EXPECTED_HASH SHA256=cf3334b1275071e1da6e8c396ccb72cf1b2388d8c937526f3af26230affb9423 - ) -__reportIfWrongStatus("${status}" 0) - -message(STATUS "FileDownload:7") -file(DOWNLOAD - ${url} - ${dir}/file3.png - TIMEOUT ${timeout} - STATUS status - EXPECTED_HASH SHA384=43a5d13978d97c660db44481aee0604cb4ff6ca0775cd5c2cd68cd8000e107e507c4caf6c228941231041e282ffb8950 - ) -__reportIfWrongStatus("${status}" 0) - -message(STATUS "FileDownload:8") -file(DOWNLOAD - ${url} - ${dir}/file3.png - TIMEOUT ${timeout} - STATUS status - EXPECTED_HASH SHA512=6984e0909a1018030ccaa418e3be1654223cdccff0fe6adc745f9aea7e377f178be53b9fc7d54a6f81c2b62ef9ddcd38ba1978fedf4c5e7139baaf355eefad5b - ) -__reportIfWrongStatus("${status}" 0) - -message(STATUS "FileDownload:9") -file(DOWNLOAD - ${url} - ${dir}/file3.png - TIMEOUT ${timeout} - STATUS status - EXPECTED_HASH MD5=dbd330d52f4dbd60115d4191904ded92 - ) -__reportIfWrongStatus("${status}" 0) - -message(STATUS "FileDownload:10") -file(DOWNLOAD - ${url} - ${dir}/file3.png - TIMEOUT ${timeout} - STATUS status - EXPECTED_MD5 dbd330d52f4dbd60115d4191904ded92 - ) -__reportIfWrongStatus("${status}" 0) -# Print status because we check its message too -message(STATUS "${status}") - -# do not use proxy for lookup of invalid site (DNS failure by proxy looks -# different than DNS failure without proxy) -set(ENV{no_proxy} "$ENV{no_proxy},badhostname.invalid") -message(STATUS "FileDownload:11") -file(DOWNLOAD - badhostname.invalid - ${dir}/file11.png - TIMEOUT 30 - STATUS status - ) -message(STATUS "${status}") -__reportIfWrongStatus("${status}" 6) # 6 corresponds to an unresolvable host name - -message(STATUS "FileDownload:12") -set(absFile "@CMAKE_CURRENT_BINARY_DIR@/file12.png") -if(EXISTS "${absFile}") - file(RENAME ${absFile} "${absFile}_beingRemoved") - file(REMOVE "${absFile}_beingRemoved") -endif() -file(DOWNLOAD - ${url} - file12.png - TIMEOUT ${timeout} - EXPECTED_MD5 dbd330d52f4dbd60115d4191904ded92 - STATUS status - ) -__reportIfWrongStatus("${status}" 0) -if(NOT EXISTS file12.png) - message(SEND_ERROR "file12.png not downloaded: ${status}") -endif() - -message(STATUS "FileDownload:13") -file(DOWNLOAD - ${url} - TIMEOUT ${timeout} - STATUS status - ) -__reportIfWrongStatus("${status}" 0) -if(EXISTS TIMEOUT) - file(REMOVE TIMEOUT) - message(SEND_ERROR "TIMEOUT argument was incorrectly interpreted as a filename") -endif() -message(STATUS "${status}") - -message(STATUS "FileDownload:14") -file(DOWNLOAD - ${url} - ${dir}/file14.bin - TIMEOUT ${timeout} - STATUS status - RANGE_START 0 - EXPECTED_MD5 dbd330d52f4dbd60115d4191904ded92 - ) -__reportIfWrongStatus("${status}" 0) - -message(STATUS "FileDownload:15") -file(DOWNLOAD - ${url} - ${dir}/file15.bin - TIMEOUT ${timeout} - STATUS status - RANGE_END 50 - EXPECTED_MD5 8592e5665b839b5d23825dc84c135b61 - ) -__reportIfWrongStatus("${status}" 0) - -message(STATUS "FileDownload:16") -file(DOWNLOAD - ${url} - ${dir}/file16.bin - TIMEOUT ${timeout} - STATUS status - RANGE_START 10 - RANGE_END 50 - EXPECTED_MD5 36cd52681e6c6c8fef85fcd9e86fc30d - ) -__reportIfWrongStatus("${status}" 0) - -message(STATUS "FileDownload:17") -file(DOWNLOAD - ${url} - ${dir}/file17.bin - TIMEOUT ${timeout} - STATUS status - RANGE_START 0 - RANGE_END 50 - RANGE_START 60 - RANGE_END 100 - EXPECTED_MD5 c5c9e74e82d493dd901eecccd659cebc - ) -__reportIfWrongStatus("${status}" 0) diff --git a/Tests/CMakeTests/FileUploadInput.png b/Tests/CMakeTests/FileUploadInput.png new file mode 100644 index 0000000..9ab565a Binary files /dev/null and b/Tests/CMakeTests/FileUploadInput.png differ diff --git a/Tests/CMakeTests/FileUploadTest.cmake.in b/Tests/CMakeTests/FileUploadTest.cmake.in index 0e6f080..7725041 100644 --- a/Tests/CMakeTests/FileUploadTest.cmake.in +++ b/Tests/CMakeTests/FileUploadTest.cmake.in @@ -9,7 +9,7 @@ endif() file(MAKE_DIRECTORY "@CMAKE_CURRENT_BINARY_DIR@/uploads") -set(filename "@CMAKE_CURRENT_SOURCE_DIR@/FileDownloadInput.png") +set(filename "@CMAKE_CURRENT_SOURCE_DIR@/FileUploadInput.png") if(NOT "@CMAKE_CURRENT_BINARY_DIR@" MATCHES "^/") set(slash /) endif() diff --git a/Tests/RunCMake/file-DOWNLOAD/EXPECTED_HASH-stdout.txt b/Tests/RunCMake/file-DOWNLOAD/EXPECTED_HASH-stdout.txt new file mode 100644 index 0000000..bd1727a --- /dev/null +++ b/Tests/RunCMake/file-DOWNLOAD/EXPECTED_HASH-stdout.txt @@ -0,0 +1,8 @@ +-- status='0;"No error"' +-- status='0;"skipping download as file already exists with expected MD5 sum"' +-- status='0;"skipping download as file already exists with expected MD5 hash"' +-- status='0;"skipping download as file already exists with expected SHA1 hash"' +-- status='0;"skipping download as file already exists with expected SHA224 hash"' +-- status='0;"skipping download as file already exists with expected SHA256 hash"' +-- status='0;"skipping download as file already exists with expected SHA384 hash"' +-- status='0;"skipping download as file already exists with expected SHA512 hash"' diff --git a/Tests/RunCMake/file-DOWNLOAD/EXPECTED_HASH.cmake b/Tests/RunCMake/file-DOWNLOAD/EXPECTED_HASH.cmake new file mode 100644 index 0000000..dc7f8ff --- /dev/null +++ b/Tests/RunCMake/file-DOWNLOAD/EXPECTED_HASH.cmake @@ -0,0 +1,13 @@ +include(common.cmake) + +# Actually download the file and verify its hash. +file_download(EXPECTED_MD5 dbd330d52f4dbd60115d4191904ded92) + +# Verify that the local file already exists with expected hash. +file_download(EXPECTED_MD5 dbd330d52f4dbd60115d4191904ded92) +file_download(EXPECTED_HASH MD5=dbd330d52f4dbd60115d4191904ded92) +file_download(EXPECTED_HASH SHA1=67eee17f79d9ac557284fc0b8ad19f25723fb578) +file_download(EXPECTED_HASH SHA224=ba283726bbb602776818b463943189afd91836cb7ee5dd6e2c7b5ae4) +file_download(EXPECTED_HASH SHA256=cf3334b1275071e1da6e8c396ccb72cf1b2388d8c937526f3af26230affb9423) +file_download(EXPECTED_HASH SHA384=43a5d13978d97c660db44481aee0604cb4ff6ca0775cd5c2cd68cd8000e107e507c4caf6c228941231041e282ffb8950) +file_download(EXPECTED_HASH SHA512=6984e0909a1018030ccaa418e3be1654223cdccff0fe6adc745f9aea7e377f178be53b9fc7d54a6f81c2b62ef9ddcd38ba1978fedf4c5e7139baaf355eefad5b) diff --git a/Tests/RunCMake/file-DOWNLOAD/RunCMakeTest.cmake b/Tests/RunCMake/file-DOWNLOAD/RunCMakeTest.cmake index c800521..01da3fc 100644 --- a/Tests/RunCMake/file-DOWNLOAD/RunCMakeTest.cmake +++ b/Tests/RunCMake/file-DOWNLOAD/RunCMakeTest.cmake @@ -1,5 +1,10 @@ include(RunCMake) +# We do not contact any real URLs, but do try a bogus one. +# Remove any proxy configuration that may change behavior. +unset(ENV{http_proxy}) +unset(ENV{https_proxy}) + run_cmake(hash-mismatch) run_cmake(unused-argument) run_cmake(httpheader-not-set) @@ -8,3 +13,11 @@ run_cmake(tls-cainfo-not-set) run_cmake(tls-verify-not-set) run_cmake(pass-not-set) run_cmake(no-save-hash) + +run_cmake(bad-hostname) +run_cmake(basic) +run_cmake(EXPECTED_HASH) +run_cmake(file-without-path) +run_cmake(no-file) +run_cmake(range) +run_cmake(SHOW_PROGRESS) diff --git a/Tests/RunCMake/file-DOWNLOAD/SHOW_PROGRESS-stdout.txt b/Tests/RunCMake/file-DOWNLOAD/SHOW_PROGRESS-stdout.txt new file mode 100644 index 0000000..e0a4982 --- /dev/null +++ b/Tests/RunCMake/file-DOWNLOAD/SHOW_PROGRESS-stdout.txt @@ -0,0 +1,2 @@ +-- \[download 100% complete\] +-- status='0;"No error"' diff --git a/Tests/RunCMake/file-DOWNLOAD/SHOW_PROGRESS.cmake b/Tests/RunCMake/file-DOWNLOAD/SHOW_PROGRESS.cmake new file mode 100644 index 0000000..ccabced --- /dev/null +++ b/Tests/RunCMake/file-DOWNLOAD/SHOW_PROGRESS.cmake @@ -0,0 +1,3 @@ +include(common.cmake) + +file_download(SHOW_PROGRESS) diff --git a/Tests/RunCMake/file-DOWNLOAD/bad-hostname-stdout.txt b/Tests/RunCMake/file-DOWNLOAD/bad-hostname-stdout.txt new file mode 100644 index 0000000..12278e0 --- /dev/null +++ b/Tests/RunCMake/file-DOWNLOAD/bad-hostname-stdout.txt @@ -0,0 +1 @@ +-- status='6;"Couldn't resolve host name"' diff --git a/Tests/RunCMake/file-DOWNLOAD/bad-hostname.cmake b/Tests/RunCMake/file-DOWNLOAD/bad-hostname.cmake new file mode 100644 index 0000000..d3b7a28 --- /dev/null +++ b/Tests/RunCMake/file-DOWNLOAD/bad-hostname.cmake @@ -0,0 +1,9 @@ +include(common.cmake) + +# Do not use any proxy for lookup of an invalid site. +# DNS failure by proxy looks different than DNS failure without proxy. +set(ENV{no_proxy} "$ENV{no_proxy},badhostname.invalid") + +set(url "badhostname.invalid") + +file_download() diff --git a/Tests/RunCMake/file-DOWNLOAD/basic-stdout.txt b/Tests/RunCMake/file-DOWNLOAD/basic-stdout.txt new file mode 100644 index 0000000..701e995 --- /dev/null +++ b/Tests/RunCMake/file-DOWNLOAD/basic-stdout.txt @@ -0,0 +1 @@ +-- status='0;"No error"' diff --git a/Tests/RunCMake/file-DOWNLOAD/basic.cmake b/Tests/RunCMake/file-DOWNLOAD/basic.cmake new file mode 100644 index 0000000..1fd931c --- /dev/null +++ b/Tests/RunCMake/file-DOWNLOAD/basic.cmake @@ -0,0 +1,3 @@ +include(common.cmake) + +file_download() diff --git a/Tests/RunCMake/file-DOWNLOAD/file-without-path-stdout.txt b/Tests/RunCMake/file-DOWNLOAD/file-without-path-stdout.txt new file mode 100644 index 0000000..701e995 --- /dev/null +++ b/Tests/RunCMake/file-DOWNLOAD/file-without-path-stdout.txt @@ -0,0 +1 @@ +-- status='0;"No error"' diff --git a/Tests/RunCMake/file-DOWNLOAD/file-without-path.cmake b/Tests/RunCMake/file-DOWNLOAD/file-without-path.cmake new file mode 100644 index 0000000..a628423 --- /dev/null +++ b/Tests/RunCMake/file-DOWNLOAD/file-without-path.cmake @@ -0,0 +1,10 @@ +include(common.cmake) + +set(file_orig "${file}") +cmake_path(GET file_orig FILENAME file) + +file_download() + +if(NOT EXISTS "${file_orig}") + message(FATAL_ERROR "file not downloaded to expected path:\n ${file_orig}") +endif() diff --git a/Tests/RunCMake/file-DOWNLOAD/no-file-arg.cmake b/Tests/RunCMake/file-DOWNLOAD/no-file-arg.cmake new file mode 100644 index 0000000..6520940 --- /dev/null +++ b/Tests/RunCMake/file-DOWNLOAD/no-file-arg.cmake @@ -0,0 +1,11 @@ +include(common.cmake) + +set(file "") + +file_download() + +set(file "${CMAKE_CURRENT_BINARY_DIR}/input.png") + +if(NOT EXISTS "${file}") + message(FATAL_ERROR "file not downloaded to expected path:\n ${file}") +endif() diff --git a/Tests/RunCMake/file-DOWNLOAD/no-file-stdout.txt b/Tests/RunCMake/file-DOWNLOAD/no-file-stdout.txt new file mode 100644 index 0000000..701e995 --- /dev/null +++ b/Tests/RunCMake/file-DOWNLOAD/no-file-stdout.txt @@ -0,0 +1 @@ +-- status='0;"No error"' diff --git a/Tests/RunCMake/file-DOWNLOAD/no-file.cmake b/Tests/RunCMake/file-DOWNLOAD/no-file.cmake new file mode 100644 index 0000000..dc234b2 --- /dev/null +++ b/Tests/RunCMake/file-DOWNLOAD/no-file.cmake @@ -0,0 +1,11 @@ +include(common.cmake) + +# Test downloading without saving to a file. +set(file "") +file_download() + +foreach(name input.png output.png TIMEOUT) + if(EXISTS "${CMAKE_CURRENT_BINARY_DIR}/${name}") + message(FATAL_ERROR "file incorrectly saved to:\n ${CMAKE_CURRENT_BINARY_DIR}/${name}") + endif() +endforeach() diff --git a/Tests/RunCMake/file-DOWNLOAD/range-stdout.txt b/Tests/RunCMake/file-DOWNLOAD/range-stdout.txt new file mode 100644 index 0000000..e2ed7aa --- /dev/null +++ b/Tests/RunCMake/file-DOWNLOAD/range-stdout.txt @@ -0,0 +1,4 @@ +-- status='0;"No error"' +-- status='0;"No error"' +-- status='0;"No error"' +-- status='0;"No error"' diff --git a/Tests/RunCMake/file-DOWNLOAD/range.cmake b/Tests/RunCMake/file-DOWNLOAD/range.cmake new file mode 100644 index 0000000..f77bb28 --- /dev/null +++ b/Tests/RunCMake/file-DOWNLOAD/range.cmake @@ -0,0 +1,15 @@ +include(common.cmake) + +set(file ${CMAKE_CURRENT_BINARY_DIR}/output1.png) +file_download(RANGE_START 0 EXPECTED_MD5 dbd330d52f4dbd60115d4191904ded92) + +set(file ${CMAKE_CURRENT_BINARY_DIR}/output2.png) +file_download(RANGE_END 50 EXPECTED_MD5 8592e5665b839b5d23825dc84c135b61) + +set(file ${CMAKE_CURRENT_BINARY_DIR}/output3.png) +file_download(RANGE_START 10 RANGE_END 50 EXPECTED_MD5 36cd52681e6c6c8fef85fcd9e86fc30d) + +set(file ${CMAKE_CURRENT_BINARY_DIR}/output4.png) +file_download(RANGE_START 0 RANGE_END 50 + RANGE_START 60 RANGE_END 100 + EXPECTED_MD5 c5c9e74e82d493dd901eecccd659cebc) -- cgit v0.12 From 28513a5fbaa5e1ea326c54b4e5edd1d302c257dd Mon Sep 17 00:00:00 2001 From: Brad King Date: Fri, 18 Nov 2022 09:09:36 -0500 Subject: Tests: Honor CMake_TEST_NO_NETWORK in RunCMake.file-DOWNLOAD Most of the test uses `file://` URLs instead of hitting the network. However, a case covering an invalid hostname does try to make a real connection, expecting it to fail DNS resolution. Turn off that case if we are asked not to hit the network during testing. --- Tests/RunCMake/CMakeLists.txt | 2 +- Tests/RunCMake/file-DOWNLOAD/RunCMakeTest.cmake | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/Tests/RunCMake/CMakeLists.txt b/Tests/RunCMake/CMakeLists.txt index 4e0783d..0fe4919 100644 --- a/Tests/RunCMake/CMakeLists.txt +++ b/Tests/RunCMake/CMakeLists.txt @@ -466,7 +466,7 @@ 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) +add_RunCMake_test(file-DOWNLOAD -DCMake_TEST_NO_NETWORK=${CMake_TEST_NO_NETWORK}) 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}) diff --git a/Tests/RunCMake/file-DOWNLOAD/RunCMakeTest.cmake b/Tests/RunCMake/file-DOWNLOAD/RunCMakeTest.cmake index 01da3fc..565f440 100644 --- a/Tests/RunCMake/file-DOWNLOAD/RunCMakeTest.cmake +++ b/Tests/RunCMake/file-DOWNLOAD/RunCMakeTest.cmake @@ -14,10 +14,13 @@ run_cmake(tls-verify-not-set) run_cmake(pass-not-set) run_cmake(no-save-hash) -run_cmake(bad-hostname) run_cmake(basic) run_cmake(EXPECTED_HASH) run_cmake(file-without-path) run_cmake(no-file) run_cmake(range) run_cmake(SHOW_PROGRESS) + +if(NOT CMake_TEST_NO_NETWORK) + run_cmake(bad-hostname) +endif() -- cgit v0.12