summary refs log tree commit diff
path: root/lib/fileset
diff options
context:
space:
mode:
authorSilvan Mosberger <silvan.mosberger@tweag.io>2023-09-21 01:24:27 +0200
committerSilvan Mosberger <silvan.mosberger@tweag.io>2023-10-04 16:29:03 +0200
commitac2c8d321c879aa36046d404661e8a3e9c7a93fe (patch)
treeca9971347ef2e2ddf76d240aca703bb8e7628c3e /lib/fileset
parentefbcf5938fca42f004e34c3f56f9ab1a12a95559 (diff)
downloadnixpkgs-ac2c8d321c879aa36046d404661e8a3e9c7a93fe.tar
nixpkgs-ac2c8d321c879aa36046d404661e8a3e9c7a93fe.tar.gz
nixpkgs-ac2c8d321c879aa36046d404661e8a3e9c7a93fe.tar.bz2
nixpkgs-ac2c8d321c879aa36046d404661e8a3e9c7a93fe.tar.lz
nixpkgs-ac2c8d321c879aa36046d404661e8a3e9c7a93fe.tar.xz
nixpkgs-ac2c8d321c879aa36046d404661e8a3e9c7a93fe.tar.zst
nixpkgs-ac2c8d321c879aa36046d404661e8a3e9c7a93fe.zip
lib.fileset: Make expectEqual check more
Diffstat (limited to 'lib/fileset')
-rwxr-xr-xlib/fileset/tests.sh25
1 files changed, 21 insertions, 4 deletions
diff --git a/lib/fileset/tests.sh b/lib/fileset/tests.sh
index 1b53e33073e..13e984806c7 100755
--- a/lib/fileset/tests.sh
+++ b/lib/fileset/tests.sh
@@ -57,18 +57,35 @@ with lib.fileset;'
 expectEqual() {
     local actualExpr=$1
     local expectedExpr=$2
-    if ! actualResult=$(nix-instantiate --eval --strict --show-trace \
+    if actualResult=$(nix-instantiate --eval --strict --show-trace 2>"$tmp"/actualStderr \
         --expr "$prefixExpression ($actualExpr)"); then
-        die "$actualExpr failed to evaluate, but it was expected to succeed"
+        actualExitCode=$?
+    else
+        actualExitCode=$?
     fi
-    if ! expectedResult=$(nix-instantiate --eval --strict --show-trace \
+    actualStderr=$(< "$tmp"/actualStderr)
+
+    if expectedResult=$(nix-instantiate --eval --strict --show-trace 2>"$tmp"/expectedStderr \
         --expr "$prefixExpression ($expectedExpr)"); then
-        die "$expectedExpr failed to evaluate, but it was expected to succeed"
+        expectedExitCode=$?
+    else
+        expectedExitCode=$?
+    fi
+    expectedStderr=$(< "$tmp"/expectedStderr)
+
+    if [[ "$actualExitCode" != "$expectedExitCode" ]]; then
+        echo "$actualStderr" >&2
+        echo "$actualResult" >&2
+        die "$actualExpr should have exited with $expectedExitCode, but it exited with $actualExitCode"
     fi
 
     if [[ "$actualResult" != "$expectedResult" ]]; then
         die "$actualExpr should have evaluated to $expectedExpr:\n$expectedResult\n\nbut it evaluated to\n$actualResult"
     fi
+
+    if [[ "$actualStderr" != "$expectedStderr" ]]; then
+        die "$actualExpr should have had this on stderr:\n$expectedStderr\n\nbut it was\n$actualStderr"
+    fi
 }
 
 # Check that a nix expression evaluates successfully to a store path and returns it (without quotes).