diff options
author | Lasse Collin <lasse.collin@tukaani.org> | 2022-05-23 21:17:47 +0300 |
---|---|---|
committer | Lasse Collin <lasse.collin@tukaani.org> | 2022-05-23 21:31:20 +0300 |
commit | 9a6dd6d46f7f256a5573e5d874c1052033ed7b05 (patch) | |
tree | 87e5f43d35f693b8930e1da5d359af8d0b96fd73 /tests/test_compress.sh | |
parent | Test: Make create_compress_files.c a little more flexible. (diff) | |
download | xz-9a6dd6d46f7f256a5573e5d874c1052033ed7b05.tar.xz |
Tests: Split test_compress.sh into separate test unit for each file.
test_compress.sh now takes one command line argument:
a filename to be tested. If it begins with "compress_generated_"
the file will be created with create_compress_files.
This will allow parallel execution of the slow tests.
Diffstat (limited to '')
-rwxr-xr-x | tests/test_compress.sh | 91 |
1 files changed, 52 insertions, 39 deletions
diff --git a/tests/test_compress.sh b/tests/test_compress.sh index 6a486d4c..c88799e7 100755 --- a/tests/test_compress.sh +++ b/tests/test_compress.sh @@ -26,7 +26,7 @@ if test $? != 42 ; then fi test_xz() { - if $XZ -c "$@" "$FILE" > tmp_compressed; then + if $XZ -c "$@" "$FILE" > "$TMP_COMP"; then : else echo "Compressing failed: $* $FILE" @@ -34,7 +34,7 @@ test_xz() { exit 1 fi - if $XZ -cd tmp_compressed > tmp_uncompressed ; then + if $XZ -cd "$TMP_COMP" > "$TMP_UNCOMP" ; then : else echo "Decompressing failed: $* $FILE" @@ -42,7 +42,7 @@ test_xz() { exit 1 fi - if cmp tmp_uncompressed "$FILE" ; then + if cmp "$TMP_UNCOMP" "$FILE" ; then : else echo "Decompressed file does not match" \ @@ -52,7 +52,7 @@ test_xz() { fi if test -n "$XZDEC" ; then - if $XZDEC tmp_compressed > tmp_uncompressed ; then + if $XZDEC "$TMP_COMP" > "$TMP_UNCOMP" ; then : else echo "Decompressing failed: $* $FILE" @@ -60,7 +60,7 @@ test_xz() { exit 1 fi - if cmp tmp_uncompressed "$FILE" ; then + if cmp "$TMP_UNCOMP" "$FILE" ; then : else echo "Decompressed file does not match" \ @@ -76,44 +76,57 @@ XZ="../src/xz/xz --memlimit-compress=48MiB --memlimit-decompress=5MiB \ XZDEC="../src/xzdec/xzdec" # No memory usage limiter available test -x ../src/xzdec/xzdec || XZDEC= -# Create the required input files. -if ./create_compress_files ; then - : -else - rm -f compress_* - echo "Failed to create files to test compression." - (exit 1) - exit 1 -fi +# Create the required input file if needed. +FILE=$1 +case $FILE in + compress_generated_*) + if ./create_compress_files "${FILE#compress_generated_}" ; then + : + else + rm -f "$FILE" + echo "Failed to create the file '$FILE'." + (exit 1) + exit 1 + fi + ;; + '') + echo "No test file was specified." + (exit 1) + exit 1 + ;; +esac + +# Derive temporary filenames for compressed and uncompressed outputs +# from the input filename. This is needed when multiple tests are +# run in parallel. +TMP_COMP="tmp_comp_${FILE##*/}" +TMP_UNCOMP="tmp_uncomp_${FILE##*/}" # Remove temporary now (in case they are something weird), and on exit. -rm -f tmp_compressed tmp_uncompressed -trap 'rm -f tmp_compressed tmp_uncompressed' 0 +rm -f "$TMP_COMP" "$TMP_UNCOMP" +trap 'rm -f "$TMP_COMP" "$TMP_UNCOMP"' 0 -# Compress and decompress each file with various filter configurations. -# This takes quite a bit of time. -for FILE in compress_generated_* "$srcdir"/compress_prepared_* -do - # Don't test with empty arguments; it breaks some ancient - # proprietary /bin/sh versions due to $@ used in test_xz(). - test_xz -1 - test_xz -2 - test_xz -3 - test_xz -4 +# Compress and decompress the file with various filter configurations. +# +# Don't test with empty arguments; it breaks some ancient +# proprietary /bin/sh versions due to $@ used in test_xz(). +test_xz -1 +test_xz -2 +test_xz -3 +test_xz -4 - for ARGS in \ - --delta=dist=1 \ - --delta=dist=4 \ - --delta=dist=256 \ - --x86 \ - --powerpc \ - --ia64 \ - --arm \ - --armthumb \ - --sparc - do - test_xz $ARGS --lzma2=dict=64KiB,nice=32,mode=fast - done +for ARGS in \ + --delta=dist=1 \ + --delta=dist=4 \ + --delta=dist=256 \ + --x86 \ + --powerpc \ + --ia64 \ + --arm \ + --armthumb \ + --sparc +do + test_xz $ARGS --lzma2=dict=64KiB,nice=32,mode=fast done (exit 0) |