From d3397269a4d5df6d0efd024a2f1ad7c2bb29b077 Mon Sep 17 00:00:00 2001 From: "Reed A. Cartwright" Date: Wed, 2 Mar 2016 22:53:29 -0700 Subject: [PATCH] Use SHA256 to validate testdata. Add make_testdata_sum target to calculate SHA256 when the commitid changes. --- Modules/cmake_make_testdata_sum.cmake.in | 10 ++++++++++ test/CMakeLists.txt | 17 +++++++++++++++-- 2 files changed, 25 insertions(+), 2 deletions(-) create mode 100644 Modules/cmake_make_testdata_sum.cmake.in diff --git a/Modules/cmake_make_testdata_sum.cmake.in b/Modules/cmake_make_testdata_sum.cmake.in new file mode 100644 index 00000000..6ecf1821 --- /dev/null +++ b/Modules/cmake_make_testdata_sum.cmake.in @@ -0,0 +1,10 @@ +set(tarfile "@CMAKE_BINARY_DIR@/testdata.tar.gz") +if(NOT EXISTS "${tarfile}") + message(STATUS "Downloading @TESTDATA_URL@ as ${tarfile}") + file(DOWNLOAD "@TESTDATA_URL@" "${tarfile}" SHOW_PROGRESS) + message("") +endif() + +file(SHA256 ${tarfile} value) + +message(" ${value} testdata.tar.gz") diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index ad1c0acf..26cfb403 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -2,7 +2,7 @@ ############################################################################### # Testdata information SET(TESTDATA_COMMIT c4ff355) -SET(TESTDATA_MD5 354f44afbcf148fbc653f4e1b5231f85) +SET(TESTDATA_SHA256 b8c2f82f6b6662d1826e99722e378b2e6af25499eed553c4ec451633ce45935d) SET(TESTDATA_REPO denovogear/testdata) SET(TESTDATA_URL "https://api.github.com/repos/${TESTDATA_REPO}/tarball/${TESTDATA_COMMIT}") SET(TESTDATA_DIR "${CMAKE_BINARY_DIR}/testdata") @@ -22,7 +22,7 @@ IF(NOT TESTDATA) DOWNLOAD_NAME testdata.tar.gz DOWNLOAD_DIR "${CMAKE_BINARY_DIR}" URL "${TESTDATA_URL}" - URL_MD5 "${TESTDATA_MD5}" + URL_HASH SHA256=${TESTDATA_SHA256} ) ELSE() SET(TESTDATA_DIR "${TESTDATA}") @@ -36,6 +36,19 @@ ELSE() ) ENDIF() +############################################################################ +# Create a make_testdata_sum target +CONFIGURE_FILE( + "${CMAKE_SOURCE_DIR}/Modules/cmake_make_testdata_sum.cmake.in" + "${CMAKE_BINARY_DIR}/cmake_make_testdata_sum.cmake" + IMMEDIATE @ONLY) + +ADD_CUSTOM_TARGET(make_testdata_sum + "${CMAKE_COMMAND}" -P "${CMAKE_BINARY_DIR}/cmake_make_testdata_sum.cmake" + COMMENT "Calculating the checksum for testdata.tar.gz" +) + + ################################################################################ # Determine the location of the executables/scripts and any data sets required for full package testing # TODO: Search for packages and data installed outside of denovogear directory, move to ../modules/