summaryrefslogtreecommitdiffstats
path: root/debian/tests/unitcheck
blob: a363ec1572c4e1acf8983614e91a5f4d24fc60dd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
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