From cc1edfaf5bcfd61c08f93b8f3def7656422ff8fa Mon Sep 17 00:00:00 2001 From: John Ericson Date: Mon, 15 Dec 2025 16:21:01 -0500 Subject: [PATCH] Improve the timeouts test - More concise - Also checks error messages - Checks more error codes The nature of that bug is that if the first command's exit status is correctly 101 and not 1, the rest should be correctly 101, 100, etc. too. --- tests/functional/timeout.sh | 39 +++++++------------------------------ 1 file changed, 7 insertions(+), 32 deletions(-) diff --git a/tests/functional/timeout.sh b/tests/functional/timeout.sh index ae47fdc96..1bd23118f 100755 --- a/tests/functional/timeout.sh +++ b/tests/functional/timeout.sh @@ -7,39 +7,14 @@ source common.sh # XXX: This shouldn’t be, but #4813 cause this test to fail needLocalStore "see #4813" -messages=$(nix-build -Q timeout.nix -A infiniteLoop --timeout 2 2>&1) && status=0 || status=$? +# FIXME: https://github.com/NixOS/nix/issues/4813 +expectStderr 101 nix-build -Q timeout.nix -A infiniteLoop --timeout 2 | grepQuiet "timed out" \ + || skipTest "Do not block CI until fixed" -if [ "$status" -ne 101 ]; then - echo "error: 'nix-store' exited with '$status'; should have exited 101" +expectStderr 1 nix-build -Q timeout.nix -A infiniteLoop --max-build-log-size 100 | grepQuiet "killed after writing more than 100 bytes of log output" - # FIXME: https://github.com/NixOS/nix/issues/4813 - skipTest "Do not block CI until fixed" +expectStderr 101 nix-build timeout.nix -A silent --max-silent-time 2 | grepQuiet "timed out after 2 seconds" - exit 1 -fi +expectStderr 100 nix-build timeout.nix -A closeLog | grepQuiet "builder failed due to signal" -if echo "$messages" | grepQuietInvert "timed out"; then - echo "error: build may have failed for reasons other than timeout; output:" - echo "$messages" >&2 - exit 1 -fi - -if nix-build -Q timeout.nix -A infiniteLoop --max-build-log-size 100; then - echo "build should have failed" - exit 1 -fi - -if nix-build timeout.nix -A silent --max-silent-time 2; then - echo "build should have failed" - exit 1 -fi - -if nix-build timeout.nix -A closeLog; then - echo "build should have failed" - exit 1 -fi - -if nix build -f timeout.nix silent --max-silent-time 2; then - echo "build should have failed" - exit 1 -fi +expectStderr 1 nix build -f timeout.nix silent --max-silent-time 2 | grepQuiet "timed out after 2 seconds"