summaryrefslogtreecommitdiffstats
path: root/debian/tests/unitcheck
diff options
context:
space:
mode:
Diffstat (limited to 'debian/tests/unitcheck')
-rwxr-xr-xdebian/tests/unitcheck72
1 files changed, 72 insertions, 0 deletions
diff --git a/debian/tests/unitcheck b/debian/tests/unitcheck
new file mode 100755
index 000000000..a363ec157
--- /dev/null
+++ b/debian/tests/unitcheck
@@ -0,0 +1,72 @@
+#!/bin/bash
+# autopkgtest check: Run junit base tests against an installed version of LibreOffice
+# (c) 2021 Software in the Public Interest, Inc.
+# Authors: Rene Engelhard <rene@debian.org>
+
+set -e
+set -E
+
+SRCDIR=`pwd`
+CHECK_PARALLELISM=1
+if [ -n "$AUTOPKGTEST_TMP" ]; then
+ WORKDIR=`mktemp -q -d -p $AUTOPKGTEST_TMP`
+else
+ WORKDIR=`mktemp -q -d`
+fi
+
+function unapply() {
+ cd $SRCDIR
+ echo
+ echo "====== Unapplying the patches ======"
+ patch -p1 -R < ./debian/tests/patches/cppunit-standalone.diff
+}
+
+trap "unapply" ERR
+
+# skip if building as root:
+# fails with permission errors (seems to assume it runs as user)
+if [ `id -u` = "0" ]; then
+ exit 77
+fi
+
+echo
+echo "====== Patching the tree to only build the unittests against an existing installation ======"
+patch -p1 < ./debian/tests/patches/cppunit-standalone.diff
+
+echo
+echo "====== Enabling core dumps ======"
+# yes, we want core dumps and stack traces
+ulimit -c unlimited || true
+
+echo
+echo "====== Starting unitcheck with ${CHECK_PARALLELISM} job ======"
+
+# hack, otherwise it fails
+mkdir -p $SRCDIR/instdir/program/.dir
+mkdir -p $SRCDIR/instdir/share/registry/.dir
+mkdir -p $SRCDIR/instdir/share/registry/res/.dir
+
+mkdir -p $SRCDIR/instdir/share/filter/.dir
+
+mkdir -p $SRCDIR/instdir/share/config/soffice.cfg/vcl/ui/.dir
+
+# all modules containing unitcheck
+export PARALLELISM=$CHECK_PARALLELISM
+# helpcontent2
+# idlc - tries to *write* /usr/lib/libreoffice/sdk/bin/idlc...
+# unoidl - tries to *write* /usr/lib/libreoffice/sdk/bin/unoidl-check (and more?)...
+# odk - tries to *write* to the SDK dirs and we do test _using_ the ODK
+# in odk-build-examples anyway
+# testtools - already tested in the "uno" test
+for i in `grep check */*.mk | grep -v helpcontent2 | grep -E -v '(idlc|unoidl)' | grep -v odk | grep -v testtools | cut -d"/" -f1 | sort | uniq | xargs`; do
+ echo
+ echo "====== Running unitcheck in module $i ======"; \
+ cd $i && \
+ make -rk unitcheck \
+ INSTDIR=/usr/lib/libreoffice \
+ verbose=t; \
+ cd ..;\
+done
+
+unapply
+