From: Nathan Moinvaziri Date: Tue, 14 Jul 2020 22:42:57 +0000 (-0700) Subject: Change ctest to test all the files in test/data. X-Git-Tag: 1.9.9-b1~125 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=dc74ed5d87ac77a79194cdcf312d12ba3dda646e;p=thirdparty%2Fzlib-ng.git Change ctest to test all the files in test/data. Improved minigzip test configurations in ctest. Added corpora repository to test/data to test for each run. --- diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml index cec5e2e3..ea8ccfb8 100644 --- a/.github/workflows/cmake.yml +++ b/.github/workflows/cmake.yml @@ -304,7 +304,13 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v1 + uses: actions/checkout@v2 + + - name: Checkout test corpora + uses: actions/checkout@v2 + with: + repository: nmoinvaz/corpora + path: test/data - name: Install packages (Ubuntu) if: runner.os == 'Linux' && matrix.packages diff --git a/CMakeLists.txt b/CMakeLists.txt index e7d0c4b8..b886d15b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1106,27 +1106,45 @@ if(ZLIB_ENABLE_TESTS) set(test_id minigzip-${name}-${arg_list}) - add_test(NAME ${test_id} - COMMAND ${CMAKE_COMMAND} - "-DTARGET=${MINIGZIP_COMMAND}" - "-DCOMPRESS_ARGS=${compress_args}" - "-DDECOMPRESS_ARGS=-d;-c" - -DINPUT=${CMAKE_CURRENT_SOURCE_DIR}/${path} - -DOUTPUT=${CMAKE_CURRENT_SOURCE_DIR}/${path}-${test_id}.gz - -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/test-compress.cmake) + if(NOT TEST ${test_id}) + add_test(NAME ${test_id} + COMMAND ${CMAKE_COMMAND} + "-DTARGET=${MINIGZIP_COMMAND}" + "-DCOMPRESS_ARGS=${compress_args}" + "-DDECOMPRESS_ARGS=-d;-c" + -DINPUT=${CMAKE_CURRENT_SOURCE_DIR}/${path} + -DOUTPUT=${CMAKE_CURRENT_SOURCE_DIR}/${path}-${test_id}.gz + "-DSUCCESS_EXIT=0;1" + -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/test-compress.cmake) + endif() endmacro() - set(TEST_FILES "test/data/lcet10.txt" "test/data/fireworks.jpg" "test/data/paper-100k.pdf") - set(OPEN_MODES -f -h -R -F -T) - set(COMPRESSION_LEVELS -0 -1 -3 -6 -9) - - foreach(TEST_FILE ${TEST_FILES}) - foreach(COMPRESSION_LEVEL ${COMPRESSION_LEVELS}) - get_filename_component(TEST_NAME ${TEST_FILE} NAME_WE) - test_minigzip(${TEST_NAME} ${TEST_FILE} ${COMPRESSION_LEVEL}) - foreach(OPEN_MODE ${OPEN_MODES}) - test_minigzip(${TEST_NAME} ${TEST_FILE} ${COMPRESSION_LEVEL} ${OPEN_MODE}) - endforeach() + set(TEST_CONFIGS + -R # Z_RLE + -h # Z_HUFFMAN_ONLY + -T # Direct store + -0 # No compression + -1 # Deflate quick + -4 # Deflate medium (lazy matches) + "-5 -F" # Deflate medium (Z_FIXED) + -6 # Deflate medium + -9 # Deflate slow + "-9 -f" # Deflate slow (Z_FILTERED) + ) + + file(GLOB_RECURSE TEST_FILE_PATHS + LIST_DIRECTORIES false + RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} + ${CMAKE_CURRENT_SOURCE_DIR}/test/data/*) + + foreach(TEST_FILE_PATH ${TEST_FILE_PATHS}) + if(${TEST_FILE_PATH} MATCHES "$.gz" OR ${TEST_FILE_PATH} MATCHES "$.out" OR + ${TEST_FILE_PATH} MATCHES "/.git/" OR ${TEST_FILE_PATH} MATCHES "$.md") + continue() + endif() + foreach(TEST_CONFIG ${TEST_CONFIGS}) + get_filename_component(TEST_NAME ${TEST_FILE_PATH} NAME_WE) + test_minigzip(${TEST_NAME} ${TEST_FILE_PATH} ${TEST_CONFIG}) endforeach() endforeach()