Skip to content

Commit

Permalink
TEST-80-NOTIFYACCESS: introduce test for ERRNO= + BUS/VARLINKERROR=
Browse files Browse the repository at this point in the history
  • Loading branch information
YHNdnzj committed Jun 20, 2024
1 parent 852ea3f commit 00e3051
Show file tree
Hide file tree
Showing 2 changed files with 37 additions and 2 deletions.
15 changes: 13 additions & 2 deletions test/TEST-80-NOTIFYACCESS/TEST-80-NOTIFYACCESS.units/test.sh
Original file line number Diff line number Diff line change
Expand Up @@ -54,10 +54,21 @@ sync_in b

echo "toplevel again: $BASHPID"

systemd-notify --ready --status="OK"
systemd-notify --ready
systemd-notify "ERRNO=1" "BUSERROR=org.freedesktop.DBus.Error.InvalidArgs" "VARLINKERROR=org.varlink.service.InvalidParameter"

sync_out e
sync_in f

systemd-notify "ERRNO=bogus" "BUSERROR=草wwww" "VARLINKERROR=systemköttel"

sync_out g
sync_in h

systemd-notify --status="OK"
systemd-notify "NOTIFYACCESS=none"
systemd-notify --status="BOGUS3"

sync_out e
sync_out i

exec sleep infinity
24 changes: 24 additions & 0 deletions test/units/TEST-80-NOTIFYACCESS.sh
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,8 @@ sync_out() {

export SYSTEMD_LOG_LEVEL=debug

# Test NotifyAccess= override through sd_notify()

systemctl --no-block start notify.service

sync_in a
Expand All @@ -38,6 +40,22 @@ sync_out d
sync_in e

systemctl --quiet is-active notify.service
[[ "$(systemctl show notify.service -P StatusText)" != BOGUS* ]]

assert_eq "$(systemctl show notify.service -P ERRNO)" "1"
assert_eq "$(systemctl show notify.service -P BUSERROR)" "org.freedesktop.DBus.Error.InvalidArgs"
assert_eq "$(systemctl show notify.service -P VARLINKERROR)" "org.varlink.service.InvalidParameter"

sync_out f
sync_in g

assert_eq "$(systemctl show notify.service -P ERRNO)" "1"
assert_eq "$(systemctl show notify.service -P BUSERROR)" "org.freedesktop.DBus.Error.InvalidArgs"
assert_eq "$(systemctl show notify.service -P VARLINKERROR)" "org.varlink.service.InvalidParameter"

sync_out h
sync_in i

assert_eq "$(systemctl show notify.service -p StatusText --value)" "OK"
assert_eq "$(systemctl show notify.service -p NotifyAccess --value)" "none"

Expand All @@ -46,6 +64,12 @@ assert_eq "$(systemctl show notify.service -p NotifyAccess --value)" "all"

rm /tmp/syncfifo1 /tmp/syncfifo2

# Explicitly test busctl's BUSERROR= reporting and systemctl status should show it

systemd-run --wait --unit="TEST-80-BUSERROR.service" busctl introspect org.freedesktop.systemd1 /bogus/001
assert_eq "$(systemctl show TEST-80-BUSERROR.service -P BUSERROR)" "org.freedesktop.DBus.Error.UnknownObject"
assert_in "$(systemctl status TEST-80-BUSERROR.service)" "D-Bus: org.freedesktop.DBus.Error.UnknownObject"

# Now test basic fdstore behaviour

MYSCRIPT="/tmp/myscript$RANDOM.sh"
Expand Down

0 comments on commit 00e3051

Please sign in to comment.