#!/bin/sh ############################################################################### # # Author: Lasse Collin # # This file has been put into the public domain. # You can do whatever you want with this file. # ############################################################################### # 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 echo "/bin/sh doesn't support functions, skipping this test." (exit 77) exit 77 fi test_xz() { if $XZ -c "$@" "$FILE" > tmp_compressed; then : else echo "Compressing failed: $* $FILE" (exit 1) exit 1 fi if $XZ -cd 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 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 } 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 : else rm -f compress_* echo "Failed to create files to test compression." (exit 1) exit 1 fi # 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 # 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 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 done (exit 0) exit 0