1
0
Fork 0
mirror of https://git.tukaani.org/xz.git synced 2024-04-04 12:36:23 +02:00
xz-archive/tests/test_compress.sh
Lasse Collin ca8bf9d7c5 Test: Remove the (exit 1) lines.
I suspect that I used these in the original version because
Autoconf's manual describes that such a trick is needed in
some specific situations for portability reasons. None of those
situations listed on Autoconf 2.71 manual apply to these test
scripts though so this cleans them up.
2022-10-19 19:03:50 +03:00

123 lines
2.5 KiB
Bash
Executable file

#!/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
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
fi
test_xz() {
if $XZ -c "$@" "$FILE" > "$TMP_COMP"; then
:
else
echo "Compressing failed: $* $FILE"
exit 1
fi
if $XZ -cd "$TMP_COMP" > "$TMP_UNCOMP" ; then
:
else
echo "Decompressing failed: $* $FILE"
exit 1
fi
if cmp "$TMP_UNCOMP" "$FILE" ; then
:
else
echo "Decompressed file does not match" \
"the original: $* $FILE"
exit 1
fi
if test -n "$XZDEC" ; then
if $XZDEC "$TMP_COMP" > "$TMP_UNCOMP" ; then
:
else
echo "Decompressing failed: $* $FILE"
exit 1
fi
if cmp "$TMP_UNCOMP" "$FILE" ; then
:
else
echo "Decompressed file does not match" \
"the original: $* $FILE"
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 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
fi
;;
'')
echo "No test file was specified."
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_COMP" "$TMP_UNCOMP"
trap 'rm -f "$TMP_COMP" "$TMP_UNCOMP"' 0
# 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
exit 0