nix: remove all explicit timeouts
All checks were successful
Test / ShareFS (push) Successful in 2m18s
Test / Create distribution (push) Successful in 2m43s
Test / Sandbox (push) Successful in 3m21s
Test / Sandbox (race detector) (push) Successful in 4m11s
Test / Hakurei (push) Successful in 4m26s
Test / Hakurei (race detector) (push) Successful in 5m14s
Test / Flake checks (push) Successful in 1m54s
All checks were successful
Test / ShareFS (push) Successful in 2m18s
Test / Create distribution (push) Successful in 2m43s
Test / Sandbox (push) Successful in 3m21s
Test / Sandbox (race detector) (push) Successful in 4m11s
Test / Hakurei (push) Successful in 4m26s
Test / Hakurei (race detector) (push) Successful in 5m14s
Test / Flake checks (push) Successful in 1m54s
These were useful during development because timing out is often the only indication of failure due to the terrible design of nixos vm test harness. This has become a nuisance however especially when the system is under load, so remove explicit values and fall back to the ludicrously high default. Signed-off-by: Ophestra <cat@gensokyo.uk>
This commit is contained in:
52
test/test.py
52
test/test.py
@@ -119,7 +119,7 @@ def hakurei_identity(offset):
|
||||
|
||||
# Start hakurei permissive defaults outside Wayland session:
|
||||
print(machine.succeed("sudo -u alice -i hakurei -v exec -a 0 touch /tmp/pd-bare-ok"))
|
||||
machine.wait_for_file("/tmp/hakurei.0/tmpdir/0/pd-bare-ok", timeout=5)
|
||||
machine.wait_for_file("/tmp/hakurei.0/tmpdir/0/pd-bare-ok")
|
||||
|
||||
# Verify silent output permissive defaults:
|
||||
output = machine.succeed("sudo -u alice -i hakurei exec -a 0 true &>/dev/stdout")
|
||||
@@ -132,11 +132,11 @@ def silent_output_interrupt(flags):
|
||||
wait_for_window("alice@machine")
|
||||
# identity 0 does not have home-manager
|
||||
machine.send_chars(f"exec hakurei exec {flags}-a 0 sh -c 'export PATH=/run/current-system/sw/bin:$PATH && touch /tmp/pd-silent-ready && sleep infinity' &>/tmp/pd-silent\n")
|
||||
machine.wait_for_file("/tmp/hakurei.0/tmpdir/0/pd-silent-ready", timeout=15)
|
||||
machine.wait_for_file("/tmp/hakurei.0/tmpdir/0/pd-silent-ready")
|
||||
machine.succeed("rm /tmp/hakurei.0/tmpdir/0/pd-silent-ready")
|
||||
machine.send_key("ctrl-c")
|
||||
machine.wait_until_fails("pgrep foot", timeout=5)
|
||||
machine.wait_until_fails(f"pgrep -u alice -f 'hakurei exec {flags}-a 0 '", timeout=5)
|
||||
machine.wait_until_fails("pgrep foot")
|
||||
machine.wait_until_fails(f"pgrep -u alice -f 'hakurei exec {flags}-a 0 '")
|
||||
output = machine.succeed("cat /tmp/pd-silent && rm /tmp/pd-silent")
|
||||
if output != "":
|
||||
raise Exception(f"unexpected output\n{output}")
|
||||
@@ -151,7 +151,7 @@ print(machine.fail("sudo -u alice -i hakurei -v exec --wayland true"))
|
||||
|
||||
# Start hakurei permissive defaults within Wayland session:
|
||||
hakurei('-v exec --wayland --dbus --dbus-log notify-send -a "NixOS Tests" "Test notification" "Notification from within sandbox." && touch /tmp/dbus-ok')
|
||||
machine.wait_for_file("/tmp/dbus-ok", timeout=15)
|
||||
machine.wait_for_file("/tmp/dbus-ok")
|
||||
collect_state_ui("dbus_notify_exited")
|
||||
# not in pid namespace, verify termination
|
||||
machine.wait_until_fails("pgrep xdg-dbus-proxy")
|
||||
@@ -165,11 +165,11 @@ hakurei("-v exec --wayland -X --dbus --pulse -u p1 foot && touch /tmp/p1-exit-ok
|
||||
wait_for_window("p1@machine")
|
||||
print(machine.succeed("getfacl --absolute-names --omit-header --numeric /tmp/hakurei.0/runtime | grep 10000"))
|
||||
machine.send_chars("exit\n")
|
||||
machine.wait_for_file("/tmp/p1-exit-ok", timeout=15)
|
||||
machine.wait_for_file("/tmp/p1-exit-ok")
|
||||
# Verify acl is kept alive:
|
||||
print(machine.succeed("getfacl --absolute-names --omit-header --numeric /tmp/hakurei.0/runtime | grep 10000"))
|
||||
machine.send_chars("exit\n")
|
||||
machine.wait_for_file("/tmp/p0-exit-ok", timeout=15)
|
||||
machine.wait_for_file("/tmp/p0-exit-ok")
|
||||
machine.fail("getfacl --absolute-names --omit-header --numeric /tmp/hakurei.0/runtime | grep 10000")
|
||||
|
||||
# Check invalid identifier fd behaviour:
|
||||
@@ -181,7 +181,7 @@ print(machine.succeed('grep "^hakurei: cannot write identifier: bad file descrip
|
||||
swaymsg("exec sh -c 'ne-foot; echo -n $? > /tmp/monitor-exit-code'")
|
||||
wait_for_window(f"u0_a{hakurei_identity(0)}@machine")
|
||||
machine.succeed("pkill -INT -f 'hakurei -v run '")
|
||||
machine.wait_until_fails("pgrep foot", timeout=5)
|
||||
machine.wait_until_fails("pgrep foot")
|
||||
machine.wait_for_file("/tmp/monitor-exit-code")
|
||||
interrupt_exit_code = int(machine.succeed("cat /tmp/monitor-exit-code"))
|
||||
if interrupt_exit_code != 230:
|
||||
@@ -191,7 +191,7 @@ if interrupt_exit_code != 230:
|
||||
swaymsg("exec sh -c 'ne-foot-immediate; echo -n $? > /tmp/monitor-exit-code'")
|
||||
wait_for_window(f"u0_a{hakurei_identity(0)}@machine")
|
||||
machine.succeed("pkill -INT -f 'hakurei -v run '")
|
||||
machine.wait_until_fails("pgrep foot", timeout=5)
|
||||
machine.wait_until_fails("pgrep foot")
|
||||
machine.wait_for_file("/tmp/monitor-exit-code")
|
||||
interrupt_exit_code = int(machine.succeed("cat /tmp/monitor-exit-code"))
|
||||
if interrupt_exit_code != 254:
|
||||
@@ -202,7 +202,7 @@ swaymsg("exec sh -c 'ne-foot &> /tmp/shim-cont-unexpected-pid'")
|
||||
wait_for_window(f"u0_a{hakurei_identity(0)}@machine")
|
||||
machine.succeed("pkill -CONT -f 'hakurei shim'")
|
||||
machine.succeed("pkill -INT -f 'hakurei -v run '")
|
||||
machine.wait_until_fails("pgrep foot", timeout=5)
|
||||
machine.wait_until_fails("pgrep foot")
|
||||
machine.wait_for_file("/tmp/shim-cont-unexpected-pid")
|
||||
print(machine.succeed('grep "shim: got SIGCONT from unexpected process$" /tmp/shim-cont-unexpected-pid'))
|
||||
|
||||
@@ -221,26 +221,26 @@ if sched_rr != 2:
|
||||
swaymsg("exec ne-foot")
|
||||
wait_for_window(f"u0_a{hakurei_identity(0)}@machine")
|
||||
machine.send_chars("clear; wayland-info && touch /var/tmp/client-ok\n")
|
||||
machine.wait_for_file("/var/tmp/client-ok", timeout=15)
|
||||
machine.wait_for_file("/var/tmp/client-ok")
|
||||
collect_state_ui("foot_wayland")
|
||||
check_state("ne-foot", {"wayland": True})
|
||||
# Verify lack of acl on XDG_RUNTIME_DIR:
|
||||
machine.fail(f"getfacl --absolute-names --omit-header --numeric /run/user/1000 | grep {hakurei_identity(0) + 10000}")
|
||||
machine.send_chars("exit\n")
|
||||
machine.wait_until_fails("pgrep foot", timeout=5)
|
||||
machine.fail(f"getfacl --absolute-names --omit-header --numeric /run/user/1000 | grep {hakurei_identity(0) + 10000}", timeout=5)
|
||||
machine.wait_until_fails("pgrep foot")
|
||||
machine.fail(f"getfacl --absolute-names --omit-header --numeric /run/user/1000 | grep {hakurei_identity(0) + 10000}")
|
||||
|
||||
# Test pipewire-pulse:
|
||||
swaymsg("exec pa-foot")
|
||||
wait_for_window(f"u0_a{hakurei_identity(1)}@machine")
|
||||
machine.send_chars("clear; pactl info && touch /var/tmp/pulse-ok\n")
|
||||
machine.wait_for_file("/var/tmp/pulse-ok", timeout=15)
|
||||
machine.wait_for_file("/var/tmp/pulse-ok")
|
||||
collect_state_ui("pulse_wayland")
|
||||
check_state("pa-foot", {"wayland": True, "pipewire": True})
|
||||
machine.fail("find /tmp -maxdepth 1 -type d -name '.hakurei-shim-*' -print -exec false '{}' +")
|
||||
machine.send_chars("exit\n")
|
||||
machine.wait_until_fails("pgrep foot", timeout=5)
|
||||
machine.wait_until_fails("pgrep -x hakurei", timeout=5)
|
||||
machine.wait_until_fails("pgrep foot")
|
||||
machine.wait_until_fails("pgrep -x hakurei")
|
||||
machine.succeed("find /tmp -maxdepth 1 -type d -name '.hakurei-shim-*' -print -exec false '{}' +")
|
||||
# Test PipeWire SecurityContext:
|
||||
machine.succeed("sudo -u alice -i XDG_RUNTIME_DIR=/run/user/1000 hakurei -v exec --pulse pactl info")
|
||||
@@ -253,25 +253,25 @@ machine.fail("sudo -u alice -i XDG_RUNTIME_DIR=/run/user/1000 hakurei -v exec --
|
||||
swaymsg("exec x11-alacritty")
|
||||
wait_for_window(f"u0_a{hakurei_identity(0)}@machine")
|
||||
machine.send_chars("clear; glinfo && touch /var/tmp/x11-ok\n")
|
||||
machine.wait_for_file("/var/tmp/x11-ok", timeout=15)
|
||||
machine.wait_for_file("/var/tmp/x11-ok")
|
||||
collect_state_ui("alacritty_x11")
|
||||
check_state("x11-alacritty", {"x11": True})
|
||||
machine.send_chars("exit\n")
|
||||
machine.wait_until_fails("pgrep alacritty", timeout=5)
|
||||
machine.wait_until_fails("pgrep alacritty")
|
||||
|
||||
# Start app (foot) with direct Wayland access:
|
||||
swaymsg("exec da-foot")
|
||||
wait_for_window(f"u0_a{hakurei_identity(3)}@machine")
|
||||
machine.send_chars("clear; wayland-info && touch /var/tmp/direct-ok\n")
|
||||
collect_state_ui("foot_direct")
|
||||
machine.wait_for_file("/var/tmp/direct-ok", timeout=15)
|
||||
machine.wait_for_file("/var/tmp/direct-ok")
|
||||
check_state("da-foot", {"wayland": True})
|
||||
# Verify acl on XDG_RUNTIME_DIR:
|
||||
print(machine.succeed(f"getfacl --absolute-names --omit-header --numeric /run/user/1000 | grep {hakurei_identity(3) + 10000}"))
|
||||
machine.send_chars("exit\n")
|
||||
machine.wait_until_fails("pgrep foot", timeout=5)
|
||||
machine.wait_until_fails("pgrep foot")
|
||||
# Verify acl cleanup on XDG_RUNTIME_DIR:
|
||||
machine.wait_until_fails(f"getfacl --absolute-names --omit-header --numeric /run/user/1000 | grep {hakurei_identity(3) + 10000}", timeout=5)
|
||||
machine.wait_until_fails(f"getfacl --absolute-names --omit-header --numeric /run/user/1000 | grep {hakurei_identity(3) + 10000}")
|
||||
|
||||
# Test syscall filter:
|
||||
print(machine.fail("sudo -u alice -i XDG_RUNTIME_DIR=/run/user/1000 strace-failure"))
|
||||
@@ -280,20 +280,20 @@ print(machine.fail("sudo -u alice -i XDG_RUNTIME_DIR=/run/user/1000 strace-failu
|
||||
swaymsg("exec foot $SHELL -c '(ne-foot) & disown && exec $SHELL'")
|
||||
wait_for_window(f"u0_a{hakurei_identity(0)}@machine")
|
||||
machine.send_chars("clear; wayland-info && touch /var/tmp/term-ok\n")
|
||||
machine.wait_for_file("/var/tmp/term-ok", timeout=15)
|
||||
machine.wait_for_file("/var/tmp/term-ok")
|
||||
machine.send_key("alt-h")
|
||||
machine.send_chars("clear; hakurei show $(hakurei ps --short) && touch /tmp/ps-show-ok && exec cat\n")
|
||||
machine.wait_for_file("/tmp/ps-show-ok", timeout=5)
|
||||
machine.wait_for_file("/tmp/ps-show-ok")
|
||||
collect_state_ui("foot_wayland_term")
|
||||
check_state("ne-foot", {"wayland": True})
|
||||
machine.send_key("alt-l")
|
||||
machine.send_chars("exit\n")
|
||||
wait_for_window("alice@machine")
|
||||
machine.send_key("ctrl-c")
|
||||
machine.wait_until_fails("pgrep foot", timeout=5)
|
||||
machine.wait_until_fails("pgrep foot")
|
||||
|
||||
# Exit Sway and verify process exit status 0:
|
||||
machine.wait_until_fails("pgrep -x hakurei", timeout=5)
|
||||
machine.wait_until_fails("pgrep -x hakurei")
|
||||
swaymsg("exit", succeed=False)
|
||||
machine.wait_for_file("/tmp/sway-exit-ok")
|
||||
|
||||
@@ -308,4 +308,4 @@ machine.succeed("find /tmp -maxdepth 1 -type d -name '.hakurei-shim-*' -print -e
|
||||
# Verify go test status:
|
||||
machine.wait_for_file("/tmp/hakurei-test-done")
|
||||
print(machine.succeed("cat /tmp/hakurei-test.log"))
|
||||
machine.wait_for_file("/tmp/hakurei-test-ok", timeout=2)
|
||||
machine.wait_for_file("/tmp/hakurei-test-ok")
|
||||
|
||||
Reference in New Issue
Block a user