about summary refs log tree commit diff
path: root/pkgs/build-support/testers
diff options
context:
space:
mode:
authorRobert Hensing <robert@roberthensing.nl>2022-12-02 16:11:59 +0000
committerRobert Hensing <robert@roberthensing.nl>2022-12-02 16:12:50 +0000
commitdbdd8fad26f4111a3bc6bbc2f7d32f43cb77ae57 (patch)
tree51d4d5229d760b9dc845f734d23e3f4e8bfdb000 /pkgs/build-support/testers
parent6be5bb3172bf4e76efa7a3bc932b34f44240d2dd (diff)
testers.testBuildFailure: Read last log line without final newline
Diffstat (limited to 'pkgs/build-support/testers')
-rw-r--r--pkgs/build-support/testers/expect-failure.sh2
-rw-r--r--pkgs/build-support/testers/test/default.nix11
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 23e8698cf4792..0e1bbe9a678c0 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 d6dfbe34fd218..26e622c8763fb 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
     '';