summaryrefslogtreecommitdiffstats
path: root/debian/tests/upstream
diff options
context:
space:
mode:
Diffstat (limited to '')
-rwxr-xr-xdebian/tests/upstream65
1 files changed, 65 insertions, 0 deletions
diff --git a/debian/tests/upstream b/debian/tests/upstream
new file mode 100755
index 0000000..04be11a
--- /dev/null
+++ b/debian/tests/upstream
@@ -0,0 +1,65 @@
+#!/bin/sh
+# run upstream system integration tests
+# Author: Martin Pitt <martin.pitt@ubuntu.com>
+set -e
+
+DPKGARCH=$(dpkg --print-architecture)
+
+# quiesce Makefile.guess; not really relevant as systemd/nspawn run from
+# installed packages
+export BUILD_DIR=.
+
+# modify the image build scripts to install systemd from the debs instead of
+# from a "make/ninja install" as we don't have a built tree here. Also call
+# systemd-nspawn from the system.
+sed -i '/DESTDIR.* install/ s%^.*$% for p in `grep ^Package: '`pwd`'/debian/control | cut -f2 -d\\ |grep -Ev -- "-(udeb|dev)"`; do (cd /tmp; apt-get download $p \&\& dpkg-deb --fsys-tarfile ${p}[._]*deb | tar -C $initdir --dereference -x); done%; s_[^" ]*/systemd-nspawn_systemd-nspawn_g; s/\(_ninja_bin=\).*/\1dummy-ninja/' test/test-functions
+
+# adjust path
+sed -i 's_/usr/libexec/selinux/hll/pp_/usr/lib/selinux/hll/pp_' test/TEST-06-SELINUX/test.sh
+
+FAILED=""
+
+# Because this test is used both by upstream and by Debian, we use different deny-list filenames.
+# For more details see https://salsa.debian.org/systemd-team/systemd/merge_requests/52
+# The naming is transitioning from blacklist to deny-list, so currently both are supported
+# More details in https://github.com/systemd/systemd/pull/16262
+if [ -n "$TEST_UPSTREAM" ]; then
+ DENY_LIST="deny-list-ubuntu-ci"
+ BLACKLIST="blacklist-ubuntu-ci"
+else
+ DENY_LIST="deny-list-upstream-ci"
+ BLACKLIST="blacklist-upstream-ci"
+fi
+
+for t in test/TEST*; do
+ testname=$(basename $t)
+ if [ -f "$t/${DENY_LIST}" -o -f "$t/${BLACKLIST}" ]; then
+ echo "========== DENY-LISTED: $testname =========="
+ continue
+ elif [ -f "$t/${DENY_LIST}-$DPKGARCH" -o -f "$t/${BLACKLIST}-$DPKGARCH" ]; then
+ echo "========== DENY-LISTED (for arch $DPKGARCH): $testname =========="
+ continue
+ fi
+ echo "========== START: $testname =========="
+ rm -rf /var/tmp/systemd-test.*
+ if ! make -C $t clean setup run; then
+ for j in /var/tmp/systemd-test.*/journal/* /var/tmp/systemd-test.*/system.journal; do
+ [ -e "$j" ] || continue
+ # keep the entire journal in artifacts, in case one needs the debug messages
+ cp -r "$j" "$AUTOPKGTEST_ARTIFACTS/${testname}-$(basename $j)"
+ echo "---- $j ----"
+ [ -d "$j" ] && journalctl --priority=warning --directory=$j
+ [ -f "$j" ] && journalctl --priority=warning --file=$j
+ done
+ FAILED="$FAILED $testname"
+ fi
+ echo
+ # always cleanup each test run
+ make -C $t clean-again
+ echo "========== END: $testname =========="
+done
+
+if [ -n "$FAILED" ]; then
+ echo FAILED TESTS: "$FAILED"
+ exit 1
+fi