2
# A wrapper for DBus tests
3
# Sets up a private session bus and calls all its arguments in turn
4
# exiting on first failure
5
# $0 server [-k] [arg1 arg2...] -- test1 test2...
9
if [ "$1" = "-k" ]; then
14
while [ "$1" != "--" ]; do
20
# This launches the bus daemon,
21
# exports DBUS_SESSION_BUS_ADDRESS and sets DBUS_SESSION_BUS_PID
23
# reimplementing dbus-launch because it is in dbus-1-x11.rpm
24
PF=`mktemp dbus.pid.XXXXXX` || exit
25
AF=`mktemp dbus.addr.XXXXXX` || exit
27
dbus-daemon --session --print-address=3 3>$AF --print-pid=4 4>$PF &
28
# wait for the daemon to print the info
30
while [ ! -s $AF -o ! -s $PF ]; do
32
TRIES=`expr $TRIES + 1`
33
if [ $TRIES -gt 100 ]; then echo "dbus-daemon failed?"; exit 1; fi
35
DBUS_SESSION_BUS_PID=$(cat $PF)
36
export DBUS_SESSION_BUS_ADDRESS=$(cat $AF)
37
# Clean up at exit. This will also kill the server.
38
trap "kill $DBUS_SESSION_BUS_PID; rm $AF $PF" EXIT TERM INT
42
SDIR=$XDG_DATA_DIRS/dbus-1/services
44
cat <<EOF > $SDIR/test.service
52
echo -n "Hey, server, get on da bus... "
58
export XDG_DATA_DIRS=`mktemp -d dbus.activation.XXXXXX`