xfce-base/xfconf: Fix tests to run without xfconf installed
authorMichał Górny <mgorny@gentoo.org>
Mon, 17 Jun 2019 09:12:22 +0000 (11:12 +0200)
committerMichał Górny <mgorny@gentoo.org>
Mon, 17 Jun 2019 09:12:45 +0000 (11:12 +0200)
Start D-Bus session bus with correct service file to make sure xfconf
D-Bus tests can spawn and communicate with the daemon.  While at it,
get rid of unnecessary Xvfb.

Closes: https://bugs.gentoo.org/629608
Signed-off-by: Michał Górny <mgorny@gentoo.org>
xfce-base/xfconf/xfconf-4.12.1-r1.ebuild
xfce-base/xfconf/xfconf-4.13.7.ebuild

index 0f7f61db433de8b40d477788957684bd5b085933..369075b38785686fb59c562b5f05e1dafe9ed0bc 100644 (file)
@@ -3,7 +3,7 @@
 
 EAPI=6
 
-inherit virtualx xdg-utils
+inherit xdg-utils
 
 DESCRIPTION="A configuration management system for Xfce"
 HOMEPAGE="https://www.xfce.org/projects/"
@@ -57,20 +57,26 @@ src_compile() {
        emake OTHERLDFLAGS="${LDFLAGS}"
 }
 
-my_test() {
-       local out=$(./xfconfd/xfconfd --daemon) || return 1
-       eval "${out}"
+src_test() {
+       local service_dir=${HOME}/.local/share/dbus-1/services
+       mkdir -p "${service_dir}" || die
+       cat > "${service_dir}/org.xfce.Xfconf.service" <<-EOF || die
+               [D-BUS Service]
+               Name=org.xfce.Xfconf
+               Exec=${S}/xfconfd/xfconfd
+       EOF
 
-       local ret=0
-       # https://bugzilla.xfce.org/show_bug.cgi?id=13840
-       nonfatal emake -j1 check || ret=1
+       (
+               # start isolated dbus session bus
+               dbus_data=$(dbus-launch --sh-syntax) || exit
+               eval "${dbus_data}"
 
-       kill "${XFCONFD_PID}" || ewarn "Unable to kill xfconfd"
-       return "${ret}"
-}
+               nonfatal emake check
+               ret=${?}
 
-src_test() {
-       virtx my_test
+               kill "${DBUS_SESSION_BUS_PID}"
+               exit "${ret}"
+       ) || die
 }
 
 src_install() {
index 82b928dbe4b7251b4a0817ec48c9b472b3adc24b..8e6b32d8356cc142d46b8dc7e86c9ec52ce88a0f 100644 (file)
@@ -3,7 +3,7 @@
 
 EAPI=7
 
-inherit virtualx xdg-utils
+inherit xdg-utils
 
 DESCRIPTION="A configuration management system for Xfce"
 HOMEPAGE="https://www.xfce.org/projects/"
@@ -48,19 +48,26 @@ src_compile() {
        emake OTHERLDFLAGS="${LDFLAGS}"
 }
 
-my_test() {
-       local out=$(./xfconfd/xfconfd --daemon) || return 1
-       eval "${out}"
+src_test() {
+       local service_dir=${HOME}/.local/share/dbus-1/services
+       mkdir -p "${service_dir}" || die
+       cat > "${service_dir}/org.xfce.Xfconf.service" <<-EOF || die
+               [D-BUS Service]
+               Name=org.xfce.Xfconf
+               Exec=${S}/xfconfd/xfconfd
+       EOF
 
-       local ret=0
-       nonfatal emake check || ret=1
+       (
+               # start isolated dbus session bus
+               dbus_data=$(dbus-launch --sh-syntax) || exit
+               eval "${dbus_data}"
 
-       kill "${XFCONFD_PID}" || ewarn "Unable to kill xfconfd"
-       return "${ret}"
-}
+               nonfatal emake check
+               ret=${?}
 
-src_test() {
-       virtx my_test
+               kill "${DBUS_SESSION_BUS_PID}"
+               exit "${ret}"
+       ) || die
 }
 
 src_install() {