aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CMakeLists.txt14
-rwxr-xr-xtests/test_scripts.sh13
2 files changed, 22 insertions, 5 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 57013fa2..fae52cd1 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1803,4 +1803,18 @@ if(BUILD_TESTING)
SKIP_RETURN_CODE 77
)
endforeach()
+
+ if(UNIX AND HAVE_DECODERS)
+ file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/test_scripts")
+
+ add_test(NAME test_scripts.sh
+ COMMAND "${CMAKE_CURRENT_SOURCE_DIR}/tests/test_scripts.sh" ".."
+ WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/test_scripts"
+ )
+
+ set_tests_properties(test_scripts.sh PROPERTIES
+ ENVIRONMENT "srcdir=${CMAKE_CURRENT_SOURCE_DIR}/tests"
+ SKIP_RETURN_CODE 77
+ )
+ endif()
endif()
diff --git a/tests/test_scripts.sh b/tests/test_scripts.sh
index 9b938466..ca9600ec 100755
--- a/tests/test_scripts.sh
+++ b/tests/test_scripts.sh
@@ -8,9 +8,11 @@
###############################################################################
# If scripts weren't built, this test is skipped.
-XZ=../src/xz/xz
-XZDIFF=../src/scripts/xzdiff
-XZGREP=../src/scripts/xzgrep
+# When this is run from CMake, $1 is a relative path
+# to the directory with the executables and the scripts.
+XZ=${1:-../src/xz}/xz
+XZDIFF=${1:-../src/scripts}/xzdiff
+XZGREP=${1:-../src/scripts}/xzgrep
for i in XZ XZDIFF XZGREP; do
eval test -x "\$$i" && continue
@@ -21,14 +23,15 @@ done
# 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
+if test ! -f ../config.h \
+ || 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
+PATH=`pwd`/${1:-../src/xz}:$PATH
export PATH
test -z "$srcdir" && srcdir=.