diff --git a/tests/test_compress.sh b/tests/test_compress.sh index c88ebe15..62da0f92 100755 --- a/tests/test_compress.sh +++ b/tests/test_compress.sh @@ -9,6 +9,14 @@ # ############################################################################### +# If xz wasn't built, this test is skipped. +if test -x ../src/xz/xz ; then + : +else + (exit 77) + exit 77 +fi + # Find out if our shell supports functions. eval 'unset foo ; foo() { return 42; } ; foo' if test $? != 42 ; then @@ -29,7 +37,7 @@ test_xz() { if $XZ -cd tmp_compressed > tmp_uncompressed ; then : else - echo "Decoding failed: $* $FILE" + echo "Decompressing failed: $* $FILE" (exit 1) exit 1 fi @@ -37,25 +45,29 @@ test_xz() { if cmp tmp_uncompressed "$FILE" ; then : else - echo "Decoded file does not match the original: $* $FILE" + echo "Decompressed file does not match" \ + "the original: $* $FILE" (exit 1) exit 1 fi - if $XZDEC tmp_compressed > tmp_uncompressed ; then - : - else - echo "Decoding failed: $* $FILE" - (exit 1) - exit 1 - fi + if test -n "$XZDEC" ; then + if $XZDEC tmp_compressed > tmp_uncompressed ; then + : + else + echo "Decompressing failed: $* $FILE" + (exit 1) + exit 1 + fi - if cmp tmp_uncompressed "$FILE" ; then - : - else - echo "Decoded file does not match the original: $* $FILE" - (exit 1) - exit 1 + if cmp tmp_uncompressed "$FILE" ; then + : + else + echo "Decompressed file does not match" \ + "the original: $* $FILE" + (exit 1) + exit 1 + fi fi # Show progress: @@ -65,6 +77,7 @@ test_xz() { XZ="../src/xz/xz --memlimit-compress=48MiB --memlimit-decompress=5MiB \ --no-adjust --threads=1 --check=crc64" 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 @@ -80,7 +93,7 @@ fi rm -f tmp_compressed tmp_uncompressed trap 'rm -f tmp_compressed tmp_uncompressed' 0 -# Encode and decode each file with various filter configurations. +# Compress and decompress each file with various filter configurations. # This takes quite a bit of time. echo "test_compress.sh:" for FILE in compress_generated_* "$srcdir"/compress_prepared_* diff --git a/tests/test_files.sh b/tests/test_files.sh index 7dd9a390..4eb97969 100755 --- a/tests/test_files.sh +++ b/tests/test_files.sh @@ -9,9 +9,27 @@ # ############################################################################### +# If both xz and xzdec were not build, skip this test. +XZ=../src/xz/xz +XZDEC=../src/xzdec/xzdec +test -x "$XZ" || XZ= +test -x "$XZDEC" || XZDEC= +if test -z "$XZ$XZDEC"; then + (exit 77) + exit 77 +fi + for I in "$srcdir"/files/good-*.xz do - if ../src/xzdec/xzdec "$I" > /dev/null 2> /dev/null ; then + if test -z "$XZ" || "$XZ" -dc "$I" > /dev/null 2>&1; then + : + else + echo "Good file failed: $I" + (exit 1) + exit 1 + fi + + if test -z "$XZDEC" || "$XZDEC" "$I" > /dev/null 2>&1; then : else echo "Good file failed: $I" @@ -22,7 +40,13 @@ done for I in "$srcdir"/files/bad-*.xz do - if ../src/xzdec/xzdec "$I" > /dev/null 2> /dev/null ; then + if test -n "$XZ" && "$XZ" -dc "$I" > /dev/null 2>&1; then + echo "Bad file succeeded: $I" + (exit 1) + exit 1 + fi + + if test -n "$XZDEC" && "$XZDEC" "$I" > /dev/null 2>&1; then echo "Bad file succeeded: $I" (exit 1) exit 1