a51396bb2b7a430c2bf13b2b34926d730368dfde
[platform/upstream/dbus.git] / test / glib / run-test.sh
1 #! /bin/bash
2
3 SCRIPTNAME=$0
4
5 function die() 
6 {
7     if ! test -z "$DBUS_SESSION_BUS_PID" ; then
8         kill -9 $DBUS_SESSION_BUS_PID
9     fi
10     echo $SCRIPTNAME: $* >&2
11     exit 1
12 }
13
14 if test -z "$DBUS_TOP_BUILDDIR" ; then
15     die "Must set DBUS_TOP_BUILDDIR"
16 fi
17
18 CONFIG_FILE=./run-test.conf
19 SERVICE_DIR="$DBUS_TOP_BUILDDIR/test/data/valid-service-files"
20 ESCAPED_SERVICE_DIR=`echo $SERVICE_DIR | sed -e 's/\//\\\\\\//g'`
21 echo "escaped service dir is: $ESCAPED_SERVICE_DIR"
22
23 ## create a configuration file based on the standard session.conf
24 cat $DBUS_TOP_BUILDDIR/bus/session.conf |  \
25     sed -e 's/<servicedir>.*$/<servicedir>'$ESCAPED_SERVICE_DIR'<\/servicedir>/g' |  \
26     sed -e 's/<include.*$//g'                \
27   > $CONFIG_FILE
28
29 echo "Created configuration file $CONFIG_FILE"
30
31 export PATH=$DBUS_TOP_BUILDDIR/bus:$PATH
32 ## the libtool script found by the path search should already do this, but
33 export LD_LIBRARY_PATH=$DBUS_TOP_BUILDDIR/dbus/.libs:$LD_LIBRARY_PATH
34
35 ## will only do anything on Linux
36 export MALLOC_CHECK_=2 
37
38 echo "Using daemon "`type dbus-daemon-1`
39
40 eval `$DBUS_TOP_BUILDDIR/tools/dbus-launch --sh-syntax --config-file=$CONFIG_FILE`
41
42 if test -z "$DBUS_SESSION_BUS_PID" ; then
43     die "Failed to launch message bus for tests to run"
44 fi
45
46 echo "Started test bus pid $DBUS_SESSION_BUS_PID at $DBUS_SESSION_BUS_ADDRESS"
47
48 $DBUS_TOP_BUILDDIR/test/glib/test-dbus-glib || die "test-dbus-glib failed"
49
50 ## we kill -TERM so gcov data can be written out
51
52 kill -TERM $DBUS_SESSION_BUS_PID || die "Message bus vanished! should not have happened" && echo "Killed daemon $DBUS_SESSION_BUS_PID"
53
54 sleep 2
55
56 ## be sure it really died 
57 kill -9 $DBUS_SESSION_BUS_PID > /dev/null 2>&1 || true
58
59 exit 0