summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorLasse Collin <lasse.collin@tukaani.org>2022-10-19 19:39:35 +0300
committerLasse Collin <lasse.collin@tukaani.org>2022-10-19 19:39:35 +0300
commit424ac91c7e0419393ff2bde4f62e21fa611c776d (patch)
tree38816b3dbc0ffdfbcc44e903f0ce591ad5a8d61e /tests
parentca8bf9d7c5a30be8ba1eeb106fd892f19e83ed09 (diff)
downloadxz-424ac91c7e0419393ff2bde4f62e21fa611c776d.tar.gz
Tests: Skip tests in test_*.sh if encoders and/or decoders are disabled.
This isn't perfect as the scripts can still fail if only certain filters are disabled. This is still an improvement as now "make check" has better behavior when all encoders or decoders are disabled. Grepping ../config.h is simple and fairly clean but it only works if config.h was created. CMake builds don't create config.h but they don't use these test scripts either. Thanks to Sebastian Andrzej Siewior for reporting the problem. Thanks to Jia Tan for the original patch which grepped xz error messages instead of config.h.
Diffstat (limited to 'tests')
-rwxr-xr-xtests/test_compress.sh12
-rwxr-xr-xtests/test_files.sh11
-rwxr-xr-xtests/test_scripts.sh11
3 files changed, 34 insertions, 0 deletions
diff --git a/tests/test_compress.sh b/tests/test_compress.sh
index a6d07c6..128ef85 100755
--- a/tests/test_compress.sh
+++ b/tests/test_compress.sh
@@ -16,6 +16,18 @@ else
exit 77
fi
+# If compression or decompression support is missing, this test is skipped.
+# This isn't perfect as if only some compressors or decompressors are disabled
+# then this script can still fail because for now this doesn't check the
+# availability of each filter.
+if grep 'define HAVE_ENCODERS' ../config.h > /dev/null \
+ && grep 'define HAVE_DECODERS' ../config.h > /dev/null ; then
+ :
+else
+ echo "Compression or decompression support is disabled, skipping this test."
+ exit 77
+fi
+
# Find out if our shell supports functions.
eval 'unset foo ; foo() { return 42; } ; foo'
if test $? != 42 ; then
diff --git a/tests/test_files.sh b/tests/test_files.sh
index d770e2b..17c542f 100755
--- a/tests/test_files.sh
+++ b/tests/test_files.sh
@@ -18,6 +18,17 @@ if test -z "$XZ$XZDEC"; then
exit 77
fi
+# If decompression support is missing, this test is skipped.
+# This isn't perfect as if only some decompressors are disabled
+# then some good files might not decompress and the test fails
+# for a (kind of) wrong reason.
+if grep 'define HAVE_DECODERS' ../config.h > /dev/null ; then
+ :
+else
+ echo "Decompression support is disabled, skipping this test."
+ exit 77
+fi
+
for I in "$srcdir"/files/good-*.xz
do
if test -z "$XZ" || "$XZ" -dc "$I" > /dev/null; then
diff --git a/tests/test_scripts.sh b/tests/test_scripts.sh
index baa9e24..ee82361 100755
--- a/tests/test_scripts.sh
+++ b/tests/test_scripts.sh
@@ -19,6 +19,17 @@ for i in XZ XZDIFF XZGREP; do
exit 77
done
+# If decompression support is missing, this test is skipped.
+# Installing the scripts in this case is a bit silly but they
+# could still be used with other decompression tools so configure
+# doesn't automatically disable scripts if decoders are disabled.
+if grep 'define HAVE_DECODERS' ../config.h > /dev/null ; then
+ :
+else
+ echo "Decompression support is disabled, skipping this test."
+ exit 77
+fi
+
PATH=`pwd`/../src/xz:$PATH
export PATH