Make tests accommodate missing xz or xzdec.
authorLasse Collin <lasse.collin@tukaani.org>
Fri, 8 Oct 2010 12:32:29 +0000 (15:32 +0300)
committerLasse Collin <lasse.collin@tukaani.org>
Fri, 8 Oct 2010 12:32:29 +0000 (15:32 +0300)
tests/test_compress.sh
tests/test_files.sh

index c88ebe1..62da0f9 100755 (executable)
@@ -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 cmp tmp_uncompressed "$FILE" ; then
-               :
-       else
-               echo "Decoded file does not match the original: $* $FILE"
-               (exit 1)
-               exit 1
+       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 "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_*
index 7dd9a39..4eb9796 100755 (executable)
@@ -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