]> git.ipfire.org Git - thirdparty/dbus.git/commitdiff
test-dbus-daemon-fork: exercise closed stdin, stdout, stderr
authorSimon McVittie <smcv@debian.org>
Wed, 20 Jul 2016 12:31:50 +0000 (13:31 +0100)
committerSimon McVittie <simon.mcvittie@collabora.co.uk>
Fri, 12 Aug 2016 17:13:13 +0000 (18:13 +0100)
Signed-off-by: Simon McVittie <smcv@debian.org>
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=97008

test/test-dbus-daemon-fork.sh

index aefc2c6813b6e701f70b740bb1bfcd80cde6e52a..1a7175de58a8d8a756e24926eea325765828f403 100755 (executable)
@@ -44,7 +44,7 @@ if ! workdir="$(mktemp -d)"; then
     exit 0
 fi
 
-echo "1..1"
+echo "1..3"
 
 unset DBUS_SESSION_BUS_ADDRESS
 unset DBUS_SESSION_BUS_PID
@@ -65,4 +65,42 @@ kill "$DBUS_SESSION_BUS_PID"
 
 echo "ok 1 - normal dbus-daemon"
 
+unset DBUS_SESSION_BUS_ADDRESS
+unset DBUS_SESSION_BUS_PID
+rm -f "$workdir"/address "$workdir"/pid
+
+${DBUS_TEST_DAEMON} --fork --print-address=8 --print-pid=9 "$config" \
+    8>"$workdir/address" 9>"$workdir/pid" <&-
+
+export DBUS_SESSION_BUS_ADDRESS="$(cat "$workdir"/address)"
+test -n "$DBUS_SESSION_BUS_ADDRESS"
+DBUS_SESSION_BUS_PID="$(cat "$workdir"/pid)"
+kill -0 "$DBUS_SESSION_BUS_PID"
+
+${DBUS_TEST_DBUS_SEND} --session --dest=org.freedesktop.DBus \
+    --type=method_call --print-reply / org.freedesktop.DBus.ListNames >&2
+
+kill "$DBUS_SESSION_BUS_PID"
+
+echo "ok 2 - dbus-daemon with stdin closed"
+
+unset DBUS_SESSION_BUS_ADDRESS
+unset DBUS_SESSION_BUS_PID
+rm -f "$workdir"/address "$workdir"/pid
+
+${DBUS_TEST_DAEMON} --fork --print-address=8 --print-pid=9 "$config" \
+    8>"$workdir/address" 9>"$workdir/pid" <&- >&- 2>&-
+
+export DBUS_SESSION_BUS_ADDRESS="$(cat "$workdir"/address)"
+test -n "$DBUS_SESSION_BUS_ADDRESS"
+DBUS_SESSION_BUS_PID="$(cat "$workdir"/pid)"
+kill -0 "$DBUS_SESSION_BUS_PID"
+
+${DBUS_TEST_DBUS_SEND} --session --dest=org.freedesktop.DBus \
+    --type=method_call --print-reply / org.freedesktop.DBus.ListNames >&2
+
+kill "$DBUS_SESSION_BUS_PID"
+
+echo "ok 3 - dbus-daemon with stdin, stdout, stderr closed"
+
 rm -r "$workdir"