summaryrefslogtreecommitdiffstats
path: root/debian/tests/smoketest
blob: d52f8fa09b109cb30cb60ec2c50c5bdf90260ae8 (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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
#!/bin/bash
# autopkgtest check: Run smoketest against an installed version of LibreOffice
# (c) 2018 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
	TMP=`mktemp -q -p $AUTOPKGTEST_TMP`
	WORKDIR=`mktemp -q -d -p $AUTOPKGTEST_TMP`
else
	TMP=`mktemp -q`
	WORKDIR=`mktemp -q -d`
fi

function unapply() {
	cd $SRCDIR
	echo
	echo "====== Unapplying the patches ======"
	patch -p1 -R < ./debian/tests/patches/smoketest-standalone.diff
	patch -p0 -R < ./debian/tests/patches/smoketest-disable-extension-tests.diff
}

trap "unapply" ERR

echo
echo "====== Patching the tree to only build the smoketest unittest against an existing installation ======"
patch -p1 < ./debian/tests/patches/smoketest-standalone.diff
patch -p0 < ./debian/tests/patches/smoketest-disable-extension-tests.diff

echo
echo "====== Enabling core dumps ======"
# yes, we want core dumps and stack traces
ulimit -c unlimited

# FIXME: GROSS HACK.
echo
echo "====== Building needed parts of LibreOffice ======"
./debian/rules config_host.mk ENABLE_PDFIUM=n ENABLE_MERGELIBS=n BUILD_GTK=n BUILD_GTK3=n BUILD_KDE=n
cat << EOF >> $TMP
export gb_SUPPRESS_TESTS=true
make test.all verbose=t
make bridges.all verbose=t
make javaunohelper.all verbose=t
make unoil.all verbose=t
make unotest.all verbose=t
make ure.all verbose=t
make i18npool.all verbose=t
EOF
chmod 755 $TMP
#TIMEOUT OPTIONS
#       --timeout-which=seconds
#              Use a different timeout for operations on or with  the  testbed.
#              There are five timeouts affected by five values of which: short:
#              supposedly short operations like setting up  the  testbed's  apt
#              and checking the state (default: 100s); install: installation of
#              packages including dependencies (default:  3,000s);  test:  test
#              runs  (default:  10,000s);  copy: copy files/directories between
#              host and testbed (default: 300s); and  build:  builds  (default:
#              100,000s).   The value must be specified as an integer number of
#              seconds.
# 10000s = 160 min. so we have enough time to actually run the test :)
timeout 150m $TMP || \
	if test "$?" = "124"; then rm -f $TMP; exit 77; \
		else exit $?; fi

rm -f $TMP

OOO_TEST_SOFFICE="${1:-path:/usr/lib/libreoffice/program/soffice}"

echo
echo "====== Starting smoketest with ${CHECK_PARALLELISM} job against ${OOO_TEST_SOFFICE} ======"

export PARALLELISM=$CHECK_PARALLELISM

export LD_LIBRARY_PATH=/usr/lib/libreoffice/program:$LD_LIBRARY_PATH
cd smoketest && make -rk \
    OOO_TEST_SOFFICE=${OOO_TEST_SOFFICE} \
    CppunitTest_smoketest INSTDIR=/usr/lib/libreoffice verbose=t

cd $SRCDIR

unapply