summaryrefslogtreecommitdiff
path: root/debian/tests/run-testsuite
diff options
context:
space:
mode:
Diffstat (limited to 'debian/tests/run-testsuite')
-rwxr-xr-xdebian/tests/run-testsuite59
1 files changed, 59 insertions, 0 deletions
diff --git a/debian/tests/run-testsuite b/debian/tests/run-testsuite
new file mode 100755
index 000000000..ebecd7e91
--- /dev/null
+++ b/debian/tests/run-testsuite
@@ -0,0 +1,59 @@
+#!/bin/sh
+
+set -e
+
+# Run zsh's test suite on installed zsh
+#
+# Code based upon check/test target in Test/Makefile.in
+
+#if test -n "$(DLLD)"; then
+# cd $(dir_top) && DESTDIR= $(MAKE) MODDIR=`pwd`/$(subdir)/Modules install.modules
+#fi
+
+if [ -z "$AUTOPKGTEST_TMP" -o ! -d "$AUTOPKGTEST_TMP" ]; then
+ echo '$AUTOPKGTEST_TMP ("'"$AUTOPKGTEST_TMP"'") is not set or not a directory' 1>&2
+ exit 2
+fi
+
+ZTST_testdir="$AUTOPKGTEST_TMP/Test"
+export ZTST_testdir
+
+cp -pvr Test "$ZTST_testdir"
+cp -pvr Misc "$AUTOPKGTEST_TMP/Misc"
+cd "$AUTOPKGTEST_TMP"
+
+ln -vfs /usr/lib/*/zsh/[0-9]* "$ZTST_testdir/Modules"
+ln -vfs /usr/share/zsh/functions Functions
+ln -vfs /usr/share/zsh/functions/Completion .
+ln -vfs /usr/include/zsh/config.modules .
+mkdir -pv Src
+for f in /bin/zsh*; do
+ ln -vfs "$f" Src/
+done
+
+cd "$ZTST_testdir"
+
+# For now skip a bunch of tests which require artefacts from the build
+# config.modules maybe mocked by creating it from the installed modules.
+rm -v V01zmodload.ztst
+
+# Drop explicit fpath setting from some files
+for f in ztst.zsh comptest; do
+ perl -E 'local $/; my $code = <>; $code =~ s{\n *fpath=\(.*?\n\n}{\n\n}s; print $code' -i $f
+done
+
+ZTST_testlist="`for f in $ZTST_testdir/$TESTNUM*.ztst; do echo $f; done`" \
+ZTST_srcdir="$ZTST_testdir"
+ZTST_exe=/bin/zsh
+export ZTST_testlist
+export ZTST_srcdir
+export ZTST_exe
+
+if "$ZTST_exe" +Z -f "$ZTST_testdir/runtests.zsh"; then
+ stat=0
+else
+ stat=1
+fi
+sleep 1
+rm -rf Modules .zcompdump
+exit $stat