From dbdd8fad26f4111a3bc6bbc2f7d32f43cb77ae57 Mon Sep 17 00:00:00 2001 From: Robert Hensing Date: Fri, 2 Dec 2022 16:11:59 +0000 Subject: [PATCH] testers.testBuildFailure: Read last log line without final newline --- pkgs/build-support/testers/expect-failure.sh | 2 +- pkgs/build-support/testers/test/default.nix | 11 ++++++++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/pkgs/build-support/testers/expect-failure.sh b/pkgs/build-support/testers/expect-failure.sh index 23e8698cf479..0e1bbe9a678c 100644 --- a/pkgs/build-support/testers/expect-failure.sh +++ b/pkgs/build-support/testers/expect-failure.sh @@ -21,7 +21,7 @@ set -eu echo "testBuildFailure: Expecting non-zero exit from builder and args: ${*@Q}" ("$@" 2>&1) | @coreutils@/bin/tee $TMPDIR/testBuildFailure.log \ - | while read ln; do + | while IFS= read -r ln; do echo "original builder: $ln" done diff --git a/pkgs/build-support/testers/test/default.nix b/pkgs/build-support/testers/test/default.nix index d6dfbe34fd21..26e622c8763f 100644 --- a/pkgs/build-support/testers/test/default.nix +++ b/pkgs/build-support/testers/test/default.nix @@ -29,15 +29,24 @@ lib.recurseIntoAttrs { happy = runCommand "testBuildFailure-happy" { failed = testers.testBuildFailure (runCommand "fail" {} '' echo ok-ish >$out + echo failing though echo also stderr 1>&2 + echo 'line\nwith-\bbackslashes' + printf "incomplete line - no newline" + exit 3 ''); } '' + grep -F 'ok-ish' $failed/result + grep -F 'failing though' $failed/testBuildFailure.log grep -F 'also stderr' $failed/testBuildFailure.log - grep -F 'ok-ish' $failed/result + grep -F 'line\nwith-\bbackslashes' $failed/testBuildFailure.log + grep -F 'incomplete line - no newline' $failed/testBuildFailure.log + [[ 3 = $(cat $failed/testBuildFailure.exit) ]] + touch $out '';