diff --git a/buildutil/glib-tap.mk b/buildutil/glib-tap.mk index ac4329bf..07a9c384 100644 --- a/buildutil/glib-tap.mk +++ b/buildutil/glib-tap.mk @@ -1,8 +1,8 @@ # GLIB - Library of useful C routines TESTS_ENVIRONMENT= \ - G_TEST_SRCDIR="$(abs_srcdir)" \ - G_TEST_BUILDDIR="$(abs_builddir)" \ + G_TEST_SRCDIR="$(abs_srcdir)/tests" \ + G_TEST_BUILDDIR="$(abs_builddir)/tests" \ UNINSTALLEDTESTS=1 \ G_DEBUG=gc-friendly \ MALLOC_CHECK_=2 \ @@ -118,7 +118,8 @@ installed_test_meta_DATA = $(installed_testcases:=.test) %.test: %$(EXEEXT) Makefile $(AM_V_GEN) (echo '[Test]' > $@.tmp; \ echo 'Type=session' >> $@.tmp; \ - echo 'Exec=env G_TEST_SRCDIR=$(installed_testdir) G_TEST_BUILDDIR=$(installed_testdir) $(installed_testdir)/$(notdir $<)' >> $@.tmp; \ + echo 'Exec=env G_TEST_SRCDIR=$(installed_testdir) G_TEST_BUILDDIR=$(installed_testdir) $(installed_testdir)/$(notdir $<) --tap' >> $@.tmp; \ + echo 'Output=TAP' >> $@.tmp; \ mv $@.tmp $@) CLEANFILES += $(installed_test_meta_DATA) diff --git a/tests/Makefile.am.inc b/tests/Makefile.am.inc index bf707d99..5c9b48f2 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 cd05180c..a440835e 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