summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorAlexander Larsson <alexl@redhat.com>2016-04-28 13:04:14 +0200
committerAlexander Larsson <alexl@redhat.com>2016-04-28 13:04:14 +0200
commitb3303687615e88a1351cb7472402961956e26999 (patch)
treee611e4b39b692568b031b2106da2b45a89856d34 /tests
parent327f432219e767ac4f651dfa6b08ba030ec6e3e1 (diff)
downloadxdg-app-b3303687615e88a1351cb7472402961956e26999.tar.gz
Make installed tests work better
This involves e.g. having our own session bus with only our services in.
Diffstat (limited to 'tests')
-rw-r--r--tests/Makefile.am.inc19
-rw-r--r--tests/libtest.sh19
2 files changed, 29 insertions, 9 deletions
diff --git a/tests/Makefile.am.inc b/tests/Makefile.am.inc
index bf707d9..5c9b48f 100644
--- a/tests/Makefile.am.inc
+++ b/tests/Makefile.am.inc
@@ -4,7 +4,6 @@ TESTS_ENVIRONMENT += OT_TESTS_DEBUG=1 \
PATH=$$(cd $(top_builddir) && pwd):$${PATH} \
$(NULL)
-TEST_PROGS += testdb test-doc-portal
testdb_CFLAGS = $(BASE_CFLAGS) -DDB_DIR=\"$(abs_srcdir)/tests/dbs\"
testdb_LDADD = \
$(BASE_LIBS) \
@@ -23,6 +22,7 @@ test_doc_portal_LDADD = \
$(NULL)
test_doc_portal_SOURCES = tests/test-doc-portal.c $(xdp_dbus_built_sources)
+EXTRA_test_doc_portal_DEPENDENCIES = tests/services/org.freedesktop.portal.Documents.service tests/services/org.freedesktop.XdgApp.service
tests/services/org.freedesktop.portal.Documents.service: document-portal/org.freedesktop.portal.Documents.service.in
mkdir -p tests/services
@@ -32,15 +32,26 @@ tests/services/org.freedesktop.XdgApp.service: session-helper/org.freedesktop.Xd
mkdir -p tests/services
$(AM_V_GEN) $(SED) -e "s|\@libexecdir\@|$(abs_top_builddir)|" $< > $@
-test_doc_portal_DEPENDENCIES = tests/services/org.freedesktop.portal.Documents.service tests/services/org.freedesktop.XdgApp.service
+tests/libtest.sh: tests/services/org.freedesktop.portal.Documents.service tests/services/org.freedesktop.XdgApp.service
+
+install-data-hook:
+ mkdir -p $(DESTDIR)$(installed_testdir)/services
+ ln -sf $(dbus_servicedir)/org.freedesktop.XdgApp.service $(DESTDIR)$(installed_testdir)/services/
+ ln -sf $(dbus_servicedir)/org.freedesktop.portal.Documents.service $(DESTDIR)$(installed_testdir)/services/
check_PROGRAMS += $(TEST_PROGS)
-installed_test_data = \
- tests/libtest.sh \
+installed_test_SCRIPTS += \
+ buildutil/tap-driver.sh \
tests/make-test-app.sh \
tests/make-test-runtime.sh \
tests/make-test-bundles.sh \
+ tests/libtest.sh \
+ $(NULL)
+
+installed_test_data = \
+ tests/org.test.Hello.png \
+ tests/session.conf.in \
$(NULL)
test_scripts = \
diff --git a/tests/libtest.sh b/tests/libtest.sh
index cd05180..a440835 100644
--- a/tests/libtest.sh
+++ b/tests/libtest.sh
@@ -19,13 +19,13 @@
# Boston, MA 02111-1307, USA.
if [ -n "${G_TEST_SRCDIR:-}" ]; then
- test_srcdir="${G_TEST_SRCDIR}/tests"
+ test_srcdir="${G_TEST_SRCDIR}"
else
test_srcdir=$(dirname $0)
fi
if [ -n "${G_TEST_BUILDDIR:-}" ]; then
- test_builddir="${G_TEST_BUILDDIR}/tests"
+ test_builddir="${G_TEST_BUILDDIR}"
else
test_builddir=$(dirname $0)
fi
@@ -67,7 +67,10 @@ else
CMD_PREFIX=""
fi
-export XDG_DATA_HOME=${test_tmpdir}/share
+# We need this to be in /var/tmp because /tmp has no xattr support
+TEST_DATA_DIR=`mktemp -d /var/tmp/test-xdg-app-XXXXXX`
+
+export XDG_DATA_HOME=${TEST_DATA_DIR}/share
export XDG_APP="${CMD_PREFIX} xdg-app"
@@ -126,8 +129,8 @@ assert_file_empty() {
}
setup_repo () {
- . $(dirname $0)/make-test-runtime.sh
- . $(dirname $0)/make-test-app.sh
+ . $(dirname $0)/make-test-runtime.sh > /dev/null
+ . $(dirname $0)/make-test-app.sh > /dev/null
xdg-app remote-add --user --no-gpg-verify repo repo
}
@@ -138,4 +141,10 @@ install_repo () {
run () {
${CMD_PREFIX} xdg-app run "$@"
+
}
+
+sed s#@testdir@#${test_builddir}# ${test_srcdir}/session.conf.in > session.conf
+eval `dbus-launch --config-file=session.conf --sh-syntax`
+
+trap "rm -rf $TEST_DATA_DIR; /bin/kill $DBUS_SESSION_BUS_PID" EXIT