]> git.ipfire.org Git - thirdparty/zlib-ng.git/commitdiff
Change ctest to test all the files in test/data.
authorNathan Moinvaziri <nathan@nathanm.com>
Tue, 14 Jul 2020 22:42:57 +0000 (15:42 -0700)
committerHans Kristian Rosbach <hk-github@circlestorm.org>
Sun, 2 Aug 2020 15:03:31 +0000 (17:03 +0200)
Improved minigzip test configurations in ctest.
Added corpora repository to test/data to test for each run.

.github/workflows/cmake.yml
CMakeLists.txt

index cec5e2e30c7239195673b51286d0afb605f7dd2c..ea8ccfb873f4983f8efb3164bc3ffd7487610361 100644 (file)
@@ -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
index e7d0c4b8ec79ddc5241649a92d14a9696ccaca26..b886d15baaf68bcad253149299c88fbccdb62360 100644 (file)
@@ -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()