#!/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

if [ -f $AUTOPKGTEST_TMP/build-tests-skipped ]; 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 subsequentcheck with ${CHECK_PARALLELISM} job ======"

cd $SRCDIR

# all modules containing subsequent(test|check).
# Filter out:
# - odk: already tested by odk-build-examples and odk/util/check.pl
# - the junit tests - which are ran in an own test - by setting OOO_JUNIT_JAR to nothing (as --without-junit would do)
# - solenv: no need to test gbuild2json...
# - smoketest: done in the smoketest test
export PARALLELISM=$CHECK_PARALLELISM
for i in `grep subsequent */*.mk | cut -d"/" -f1 | grep -E -v '(odk|smoketest|solenv)'	| sort | uniq | xargs`; do
	echo
	echo "====== Running subsequentcheck in module $i ======"; \
	cd $i && \
	make -rk subsequentcheck \
		OOO_JUNIT_JAR= \
		INSTDIR=/usr/lib/libreoffice \
		verbose=t; \
	cd ..;\
done

unapply

