From 725ae7d64d56727364da16d9e016162dd80016d7 Mon Sep 17 00:00:00 2001 From: Ophestra Date: Thu, 23 Apr 2026 13:07:22 +0900 Subject: [PATCH] nix: remove all explicit timeouts 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 --- test/sandbox/test.py | 8 +++---- test/test.py | 52 ++++++++++++++++++++++---------------------- 2 files changed, 30 insertions(+), 30 deletions(-) diff --git a/test/sandbox/test.py b/test/sandbox/test.py index f188a01d..a431daab 100644 --- a/test/sandbox/test.py +++ b/test/sandbox/test.py @@ -26,7 +26,7 @@ def swaymsg(command: str = "", succeed=True, type="command"): def check_filter(check_offset, name, pname): - pid = int(machine.wait_until_succeeds(f"pgrep -U {10000+check_offset} -x {pname}", timeout=60)) + pid = int(machine.wait_until_succeeds(f"pgrep -U {10000+check_offset} -x {pname}")) hash = machine.succeed(f"sudo -u alice -i XDG_RUNTIME_DIR=/run/user/1000 WAYLAND_DISPLAY=wayland-1 check-sandbox-{name} hash") print(machine.succeed(f"hakurei-test -s {hash} filter {pid}")) @@ -47,7 +47,7 @@ check_filter(0, "pdlike", "cat") # Check fd leak: swaymsg("exec exec 127/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")