busctl: add a testcase that definitely causes the timeout to trigger
authorLennart Poettering <lennart@poettering.net>
Mon, 28 Oct 2024 12:59:28 +0000 (13:59 +0100)
committerLennart Poettering <lennart@poettering.net>
Tue, 29 Oct 2024 15:50:11 +0000 (16:50 +0100)
test/units/TEST-74-AUX-UTILS.busctl.sh

index d83f0941f51ae45999e04c86cd6701750974745d..0293dfd5bd8b2b77f5fd30da7b3e081e9e399b32 100755 (executable)
@@ -117,4 +117,12 @@ busctl get-property -j \
 (! busctl set-property org.freedesktop.systemd1 /org/freedesktop/systemd1 org.freedesktop.systemd1.Manager \
                        KExecWatchdogUSec t "foo")
 
-busctl --quiet --timeout 1 --limit-messages 1 --match "interface=org.freedesktop.systemd1.Manager" monitor >/dev/null
+busctl --quiet --timeout=1 --limit-messages=1 --match "interface=org.freedesktop.systemd1.Manager" monitor
+
+START_USEC=$(date +%s%6N)
+busctl --quiet --timeout=500ms --match "interface=io.dontexist.NeverGonnaHappen" monitor
+END_USEC=$(date +%s%6N)
+USEC=$((END_USEC-START_USEC))
+# Validate that the above was delayed for at least 500ms, but at most 30s (some leeway for slow CIs)
+test "$USEC" -gt 500000
+test "$USEC" -lt 30000000