Skip to content

Commit c7eefcf

Browse files
committed
[acquire/tests/{CMakeLists.txt,config_for_tests.h.in,test_extract.h}] Download greatest archive ; use this archive throughout for testing checksumming, unarchiving, &etc.
1 parent a04a47a commit c7eefcf

File tree

3 files changed

+19
-13
lines changed

3 files changed

+19
-13
lines changed

acquire/tests/CMakeLists.txt

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ set(exec_name "test_${PROJECT_NAME}")
66

77
set(GREATEST_CRC32C "f83d6ce5")
88
set(GREATEST_SHA256 "b3f89ecad2301c64c580f328cc03a74d92f4cd4bf42ab18d3d4bfb7b8be5b948")
9+
set(GREATEST_ARCHIVE_SHA256 "67bad60cd59fffc6b5bc65934deb338b61e8399703807458539c82afbba87d31")
910

1011
set(DOWNLOAD_DIR "${PROJECT_BINARY_DIR}/test_downloads")
1112

@@ -17,16 +18,19 @@ endif (CMAKE_SYSTEM_NAME STREQUAL "Windows" AND NOT MSYS AND NOT CYGWIN)
1718
file(MAKE_DIRECTORY "${DOWNLOAD_DIR}")
1819

1920
set(GREATEST_BASEFILENAME "greatest.h")
20-
set(GREATEST_FILE "${DOWNLOAD_DIR}/${GREATEST_BASEFILENAME}")
21-
file(TO_NATIVE_PATH "${GREATEST_FILE}" GREATEST_FILE)
22-
if (CMAKE_SYSTEM_NAME STREQUAL "Windows" AND NOT MSYS AND NOT CYGWIN)
23-
string(REPLACE "\\" "\\\\" GREATEST_FILE "${GREATEST_FILE}")
24-
endif (CMAKE_SYSTEM_NAME STREQUAL "Windows" AND NOT MSYS AND NOT CYGWIN)
2521

22+
set(GREATEST_ARCHIVE "${DOWNLOAD_DIR}/greatest.zip")
23+
set(GREATEST_ARCHIVE_URL "https://github.com/SamuelMarks/greatest/archive/refs/heads/cmake-and-msvc.zip")
2624
set(GREATEST_URL "https://raw.githubusercontent.com/SamuelMarks/greatest/cmake-and-msvc/greatest.h")
2725

28-
file(DOWNLOAD "${GREATEST_URL}" "${GREATEST_FILE}"
29-
EXPECTED_HASH "SHA256=${GREATEST_SHA256}")
26+
if (NOT IS_DIRECTORY "${DOWNLOAD_DIR}/greatest")
27+
file(DOWNLOAD "${GREATEST_ARCHIVE_URL}" "${GREATEST_ARCHIVE}"
28+
EXPECTED_HASH "SHA256=${GREATEST_ARCHIVE_SHA256}")
29+
30+
file(ARCHIVE_EXTRACT INPUT "${GREATEST_ARCHIVE}" DESTINATION "${DOWNLOAD_DIR}")
31+
file(RENAME "${DOWNLOAD_DIR}/greatest-cmake-and-msvc" "${DOWNLOAD_DIR}/greatest")
32+
endif (NOT IS_DIRECTORY "${DOWNLOAD_DIR}/greatest")
33+
set(GREATEST_FILE "${DOWNLOAD_DIR}/greatest/greatest.h")
3034

3135
################################
3236
# Configure file (interpolate) #
@@ -38,7 +42,6 @@ file(TO_NATIVE_PATH "${GREATEST_FILE}" GREATEST_FILE)
3842
if (CMAKE_SYSTEM_NAME STREQUAL "Windows" AND NOT MSYS AND NOT CYGWIN)
3943
string(REPLACE "\\" "\\\\" _CMAKE_CURRENT_SOURCE_DIR "${_CMAKE_CURRENT_SOURCE_DIR}")
4044
string(REPLACE "\\" "\\\\" _CMAKE_CURRENT_LIST_FILE "${_CMAKE_CURRENT_LIST_FILE}")
41-
string(REPLACE "\\" "\\\\" GREATEST_FILE "${GREATEST_FILE}")
4245
endif (CMAKE_SYSTEM_NAME STREQUAL "Windows" AND NOT MSYS AND NOT CYGWIN)
4346

4447
###############################
@@ -93,7 +96,7 @@ macro(test_wrapper)
9396
"$<BUILD_INTERFACE:${CMAKE_BINARY_DIR}/src>"
9497
"$<BUILD_INTERFACE:${CMAKE_BINARY_DIR}/acquire>"
9598
"$<BUILD_INTERFACE:${CMAKE_SOURCE_DIR}/acquire>"
96-
"$<BUILD_INTERFACE:${DOWNLOAD_DIR}>"
99+
"$<BUILD_INTERFACE:${DOWNLOAD_DIR}/greatest>"
97100
)
98101

99102
add_test(NAME "${EXEC_NAME}" COMMAND "${EXEC_NAME}")

acquire/tests/config_for_tests.h.in

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,9 @@
1919

2020
#define GREATEST_FILE "@GREATEST_FILE@"
2121

22-
#define MINIZ_ZIP_FILE "@MINIZ_ZIP_FILE@"
22+
#define GREATEST_ARCHIVE_SHA256 "@GREATEST_ARCHIVE_SHA256@"
23+
24+
#define GREATEST_ARCHIVE "@GREATEST_ARCHIVE@"
2325

2426
#define MINIZ_BASENAME_NO_EXT "@MINIZ_BASENAME_NO_EXT@"
2527

acquire/tests/test_extract.h

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -43,12 +43,13 @@ TEST x_test_extract_archive(void) {
4343
puts("\"test_extract.h\" for ARCHIVE_LIB: \"" STR(
4444
ARCHIVE_LIB) "\" into EXTRACT_DIR: \"" EXTRACT_DIR "\"");
4545

46-
ASSERT_FALSE(extract_archive(LIBACQUIRE_ZIP, MINIZ_ZIP_FILE, EXTRACT_DIR) !=
46+
ASSERT_FALSE(extract_archive(LIBACQUIRE_ZIP, GREATEST_ARCHIVE, EXTRACT_DIR) !=
4747
EXIT_SUCCESS);
4848

4949
/* Could add a comprehensive file check here */
50-
ASSERT_FALSE(!is_file(EXTRACT_DIR PATH_SEP "greatest.h"));
51-
ASSERT_FALSE(!is_directory(EXTRACT_DIR));
50+
ASSERT_FALSE(!is_directory(EXTRACT_DIR PATH_SEP "greatest-cmake-and-msvc"));
51+
ASSERT_FALSE(!is_file(EXTRACT_DIR PATH_SEP "greatest-cmake-and-msvc" PATH_SEP
52+
"greatest.h"));
5253

5354
#undef EXTRACT_DIR
5455
PASS();

0 commit comments

Comments
 (0)