aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLasse Collin <lasse.collin@tukaani.org>2024-02-17 15:35:35 +0200
committerLasse Collin <lasse.collin@tukaani.org>2024-02-19 12:21:37 +0200
commit74e8bc7417a0f37ca7ed5ee0127d33c69b3100b9 (patch)
tree3204107c7e8c43f2c5c2a0597aa812af8d89a71c
parentCMake: Install scripts. (diff)
downloadxz-74e8bc7417a0f37ca7ed5ee0127d33c69b3100b9.tar.xz
CMake: Add test_scripts.sh to the tests.
In contrast to Automake, skipping of this test when decoders are disabled is handled at CMake side instead of test_scripts.sh because CMake-build doesn't create config.h.
-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=.