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