summaryrefslogtreecommitdiff
path: root/eclass/kde4-base.eclass
diff options
context:
space:
mode:
authorMichael Palimaka <kensington@gentoo.org>2012-05-21 03:47:55 +1000
committerMichael Palimaka <kensington@gentoo.org>2012-05-21 03:47:55 +1000
commitad8147a6226411781a69a5b39c2764924fdaf08d (patch)
tree245938e7524ca3663d6b89d21edd13232a57700f /eclass/kde4-base.eclass
parent8b593225ae34ad7b8a912f3224516fd47f645e3b (diff)
downloadkde-ad8147a6226411781a69a5b39c2764924fdaf08d.tar.gz
kde-ad8147a6226411781a69a5b39c2764924fdaf08d.tar.bz2
kde-ad8147a6226411781a69a5b39c2764924fdaf08d.zip
[eclass] Add support for virtual dbus during test phase.
Diffstat (limited to 'eclass/kde4-base.eclass')
-rw-r--r--eclass/kde4-base.eclass40
1 files changed, 32 insertions, 8 deletions
diff --git a/eclass/kde4-base.eclass b/eclass/kde4-base.eclass
index 64285761507..136f43f388d 100644
--- a/eclass/kde4-base.eclass
+++ b/eclass/kde4-base.eclass
@@ -20,6 +20,10 @@
# add a dependency on sec-policy/selinux-${KDE_SELINUX_MODULE} to (R)DEPEND
: ${KDE_SELINUX_MODULE:=none}
+# @ECLASS-VARIABLE: VIRTUALDBUS_TEST
+# @DESCRIPTION:
+# If defined, launch and use a private dbus session during src_test.
+
# @ECLASS-VARIABLE: VIRTUALX_REQUIRED
# @DESCRIPTION:
# For proper description see virtualx.eclass manpage.
@@ -801,16 +805,28 @@ kde4-base_src_compile() {
kde4-base_src_test() {
debug-print-function ${FUNCNAME} "$@"
- # Override this value, set in kde4-base_src_configure()
- mycmakeargs+=(-DKDE4_BUILD_TESTS=ON)
- cmake-utils_src_configure
- kde4-base_src_compile
+ local kded4_pid
+
+ _test_runner() {
+ if [[ -n "${VIRTUALDBUS_TEST}" ]]; then
+ export $(dbus-launch)
+ kded4 2>&1 > /dev/null &
+ kded4_pid=$!
+ fi
+
+ cmake-utils_src_test
+ }
# When run as normal user during ebuild development with the ebuild command, the
# kde tests tend to access the session DBUS. This however is not possible in a real
# emerge or on the tinderbox.
# > make sure it does not happen, so bad tests can be recognized and disabled
- unset DBUS_SESSION_BUS_ADDRESS
+ unset DBUS_SESSION_BUS_ADDRESS DBUS_SESSION_BUS_PID
+
+ # Override this value, set in kde4-base_src_configure()
+ mycmakeargs+=(-DKDE4_BUILD_TESTS=ON)
+ cmake-utils_src_configure
+ kde4-base_src_compile
if [[ ${VIRTUALX_REQUIRED} == always || ${VIRTUALX_REQUIRED} == test ]]; then
# check for sanity if anyone already redefined VIRTUALX_COMMAND from the default
@@ -820,12 +836,20 @@ kde4-base_src_test() {
debug-print " You may NOT set VIRTUALX_COMMAND or call virtualmake from the ebuild."
debug-print " Setting VIRTUALX_REQUIRED is completely sufficient. See the"
debug-print " kde4-base.eclass docs for details... Applying workaround."
- cmake-utils_src_test
+ _test_runner
else
- VIRTUALX_COMMAND="cmake-utils_src_test" virtualmake
+ VIRTUALX_COMMAND="_test_runner" virtualmake
fi
else
- cmake-utils_src_test
+ _test_runner
+ fi
+
+ if [ -n "${kded4_pid}" ] ; then
+ kill ${kded4_pid}
+ fi
+
+ if [ -n "${DBUS_SESSION_BUS_PID}" ] ; then
+ kill ${DBUS_SESSION_BUS_PID}
fi
}