TEST-80-NOTIFYACCESS: introduce test for ERRNO= + BUS/VARLINKERROR=

This commit is contained in:
Mike Yuan 2024-06-20 18:39:52 +02:00
parent 8ea918697a
commit 4b89c55c3f
No known key found for this signature in database
GPG key ID: 417471C0A40F58B3
2 changed files with 37 additions and 2 deletions

View file

@ -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

View file

@ -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
@ -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 StatusErrno)" "1"
assert_eq "$(systemctl show notify.service -P StatusBusError)" "org.freedesktop.DBus.Error.InvalidArgs"
assert_eq "$(systemctl show notify.service -P StatusVarlinkError)" "org.varlink.service.InvalidParameter"
sync_out f
sync_in g
assert_eq "$(systemctl show notify.service -P StatusErrno)" "1"
assert_eq "$(systemctl show notify.service -P StatusBusError)" "org.freedesktop.DBus.Error.InvalidArgs"
assert_eq "$(systemctl show notify.service -P StatusVarlinkError)" "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"
@ -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" -p NotifyAccess=main busctl introspect org.freedesktop.systemd1 /bogus/001)
assert_eq "$(systemctl show TEST-80-BUSERROR.service -P StatusBusError)" "org.freedesktop.DBus.Error.UnknownObject"
assert_in "D-Bus: org.freedesktop.DBus.Error.UnknownObject" "$(systemctl status TEST-80-BUSERROR.service)"
# Now test basic fdstore behaviour
MYSCRIPT="/tmp/myscript$RANDOM.sh"