mirror of
https://gitlab.freedesktop.org/dbus/dbus.git
synced 2026-05-05 07:38:20 +02:00
Run name-test tests under the TAP driver
Reviewed-by: Philip Withnall <philip.withnall@collabora.co.uk> Bug: https://bugs.freedesktop.org/show_bug.cgi?id=89846
This commit is contained in:
parent
56e1448bed
commit
0de568e52b
3 changed files with 120 additions and 43 deletions
|
|
@ -7,6 +7,11 @@ AM_CPPFLAGS = \
|
|||
# if assertions are enabled, improve backtraces
|
||||
AM_LDFLAGS = @R_DYNAMIC_LDFLAG@
|
||||
|
||||
TEST_EXTENSIONS = .sh
|
||||
|
||||
SH_LOG_DRIVER = env AM_TAP_AWK='$(AWK)' $(SHELL) $(top_srcdir)/tap-driver.sh
|
||||
SH_LOG_COMPILER = $(SHELL)
|
||||
|
||||
## note that TESTS has special meaning (stuff to use in make check)
|
||||
## so if adding tests not to be run in make check, don't add them to
|
||||
## TESTS
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@ if test -z "$DBUS_TEST_NAME_IN_SYS_RUN_TEST"; then
|
|||
fi
|
||||
|
||||
if test -n "$DBUS_TEST_MONITOR"; then
|
||||
dbus-monitor --session &
|
||||
dbus-monitor --session >&2 &
|
||||
fi
|
||||
|
||||
XDG_RUNTIME_DIR="$DBUS_TOP_BUILDDIR"/test/XDG_RUNTIME_DIR
|
||||
|
|
@ -25,22 +25,65 @@ test -d "$XDG_RUNTIME_DIR" || mkdir "$XDG_RUNTIME_DIR"
|
|||
chmod 0700 "$XDG_RUNTIME_DIR"
|
||||
export XDG_RUNTIME_DIR
|
||||
|
||||
echo "running test-expected-echo-fail"
|
||||
${DBUS_TOP_BUILDDIR}/libtool --mode=execute $DEBUG $DBUS_TOP_BUILDDIR/tools/dbus-send --print-reply --dest=org.freedesktop.DBus.TestSuiteEchoService /org/freedesktop/TestSuite org.freedesktop.TestSuite.Echo string:hi >echo-error-output.tmp 2>&1
|
||||
if ! grep -q 'DBus.Error' echo-error-output.tmp; then
|
||||
echo "Didn't get expected failure; output was:"
|
||||
echo "====="
|
||||
cat echo-error-output.tmp
|
||||
echo "====="
|
||||
exit 1
|
||||
fi
|
||||
# Translate a command and exit status into TAP syntax.
|
||||
# Usage: interpret_result $? description-of-test
|
||||
# Uses global variable $test_num.
|
||||
interpret_result () {
|
||||
e="$1"
|
||||
shift
|
||||
case "$e" in
|
||||
(0)
|
||||
echo "ok $test_num $*"
|
||||
;;
|
||||
(77)
|
||||
echo "ok $test_num # SKIP $*"
|
||||
;;
|
||||
(*)
|
||||
echo "not ok $test_num $*"
|
||||
;;
|
||||
esac
|
||||
test_num=$(( $test_num + 1 ))
|
||||
}
|
||||
|
||||
echo "running test echo signal"
|
||||
if test "x$PYTHON" = "x:"; then
|
||||
echo "Skipped test-echo-signal: Python interpreter not found"
|
||||
elif ! $PYTHON $DBUS_TOP_SRCDIR/test/name-test/test-wait-for-echo.py; then
|
||||
echo "Failed test-wait-for-echo"
|
||||
exit 1
|
||||
fi
|
||||
dbus_send_test () {
|
||||
t="$1"
|
||||
expected_exit="$2"
|
||||
phrase="$3"
|
||||
shift 3
|
||||
e=0
|
||||
echo "# running test $t"
|
||||
"${DBUS_TOP_BUILDDIR}/libtool" --mode=execute $DEBUG "$DBUS_TOP_BUILDDIR/tools/dbus-send" "$@" > output.tmp 2>&1 || e=$?
|
||||
if [ $e != $expected_exit ]; then
|
||||
sed -e 's/^/# /' < output.tmp
|
||||
interpret_result "1" "$t" "$@" "(expected exit status $expected_exit, got $e)"
|
||||
return
|
||||
fi
|
||||
echo "# parsing results of test $t"
|
||||
if ! grep -q "$phrase" output.tmp; then
|
||||
sed -e 's/^/# /' < output.tmp
|
||||
interpret_result "1" "$t" "$@" "(Did not see \"$phrase\" in output)"
|
||||
return
|
||||
fi
|
||||
interpret_result "0" "$t" "$@" "(Saw \"$phrase\" in output as expected)"
|
||||
rm -f output.tmp
|
||||
}
|
||||
|
||||
exit 0
|
||||
py_test () {
|
||||
t="$1"
|
||||
shift
|
||||
if test "x$PYTHON" = "x:"; then
|
||||
interpret_result 77 "$t" "(Python interpreter not found)"
|
||||
else
|
||||
e=0
|
||||
echo "# running test $t"
|
||||
$PYTHON "$DBUS_TOP_SRCDIR/test/name-test/$t" "$@" >&2 || e=$?
|
||||
interpret_result "$e" "$t" "$@"
|
||||
fi
|
||||
}
|
||||
|
||||
test_num=1
|
||||
# TAP syntax: we plan to run 2 tests
|
||||
echo "1..2"
|
||||
|
||||
dbus_send_test test-expected-echo-fail 1 DBus.Error --print-reply --dest=org.freedesktop.DBus.TestSuiteEchoService /org/freedesktop/TestSuite org.freedesktop.TestSuite.Echo string:hi
|
||||
py_test test-wait-for-echo.py
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ if test -z "$DBUS_TEST_NAME_IN_RUN_TEST"; then
|
|||
fi
|
||||
|
||||
if test -n "$DBUS_TEST_MONITOR"; then
|
||||
dbus-monitor --session &
|
||||
dbus-monitor --session >&2 &
|
||||
fi
|
||||
|
||||
XDG_RUNTIME_DIR="$DBUS_TOP_BUILDDIR"/test/XDG_RUNTIME_DIR
|
||||
|
|
@ -23,31 +23,60 @@ test -d "$XDG_RUNTIME_DIR" || mkdir "$XDG_RUNTIME_DIR"
|
|||
chmod 0700 "$XDG_RUNTIME_DIR"
|
||||
export XDG_RUNTIME_DIR
|
||||
|
||||
echo "running test-ids"
|
||||
${DBUS_TOP_BUILDDIR}/libtool --mode=execute $DEBUG $DBUS_TOP_BUILDDIR/test/name-test/test-ids || die "test-ids failed"
|
||||
# Translate a command and exit status into TAP syntax.
|
||||
# Usage: interpret_result $? description-of-test
|
||||
# Uses global variable $test_num.
|
||||
interpret_result () {
|
||||
e="$1"
|
||||
shift
|
||||
case "$e" in
|
||||
(0)
|
||||
echo "ok $test_num $*"
|
||||
;;
|
||||
(77)
|
||||
echo "ok $test_num # SKIP $*"
|
||||
;;
|
||||
(*)
|
||||
echo "not ok $test_num $*"
|
||||
;;
|
||||
esac
|
||||
test_num=$(( $test_num + 1 ))
|
||||
}
|
||||
|
||||
echo "running test-pending-call-dispatch"
|
||||
${DBUS_TOP_BUILDDIR}/libtool --mode=execute $DEBUG $DBUS_TOP_BUILDDIR/test/name-test/test-pending-call-dispatch || die "test-pending-call-dispatch failed"
|
||||
c_test () {
|
||||
t="$1"
|
||||
shift
|
||||
e=0
|
||||
echo "# running test $t"
|
||||
if ! "${DBUS_TOP_BUILDDIR}/libtool" --mode=execute $DEBUG "$DBUS_TOP_BUILDDIR/test/name-test/$t" "$@" >&2; then
|
||||
e=$?
|
||||
echo "# exit status $e"
|
||||
fi
|
||||
interpret_result "$e" "$t" "$@"
|
||||
}
|
||||
|
||||
echo "running test-pending-call-timeout"
|
||||
${DBUS_TOP_BUILDDIR}/libtool --mode=execute $DEBUG $DBUS_TOP_BUILDDIR/test/name-test/test-pending-call-timeout || die "test-pending-call-timeout failed"
|
||||
py_test () {
|
||||
t="$1"
|
||||
shift
|
||||
if test "x$PYTHON" = "x:"; then
|
||||
interpret_result 77 "$t" "(Python interpreter not found)"
|
||||
else
|
||||
e=0
|
||||
echo "# running test $t"
|
||||
$PYTHON "$DBUS_TOP_SRCDIR/test/name-test/$t" "$@" >&2 || e=$?
|
||||
interpret_result "$e" "$t" "$@"
|
||||
fi
|
||||
}
|
||||
|
||||
echo "running test-threads-init"
|
||||
${DBUS_TOP_BUILDDIR}/libtool --mode=execute $DEBUG $DBUS_TOP_BUILDDIR/test/name-test/test-threads-init || die "test-threads-init failed"
|
||||
test_num=1
|
||||
# TAP test plan: we will run 8 tests
|
||||
echo "1..8"
|
||||
|
||||
echo "running test-privserver-client"
|
||||
${DBUS_TOP_BUILDDIR}/libtool --mode=execute $DEBUG $DBUS_TOP_BUILDDIR/test/name-test/test-privserver-client || die "test-privserver-client failed"
|
||||
|
||||
echo "running test-shutdown"
|
||||
${DBUS_TOP_BUILDDIR}/libtool --mode=execute $DEBUG $DBUS_TOP_BUILDDIR/test/name-test/test-shutdown || die "test-shutdown failed"
|
||||
|
||||
echo "running test activation forking"
|
||||
if test "x$PYTHON" = "x:"; then
|
||||
echo "Skipped test-activation-forking: Python interpreter not found"
|
||||
elif ! $PYTHON $DBUS_TOP_SRCDIR/test/name-test/test-activation-forking.py; then
|
||||
echo "Failed test-activation-forking"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "running test-autolaunch"
|
||||
${DBUS_TOP_BUILDDIR}/libtool --mode=execute $DEBUG $DBUS_TOP_BUILDDIR/test/name-test/test-autolaunch || die "test-autolaunch failed"
|
||||
c_test test-ids
|
||||
c_test test-pending-call-dispatch
|
||||
c_test test-pending-call-timeout
|
||||
c_test test-threads-init
|
||||
c_test test-privserver-client
|
||||
c_test test-shutdown
|
||||
py_test test-activation-forking.py
|
||||
c_test test-autolaunch
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue