1
0
Fork 0
mirror of https://github.com/NixOS/nix synced 2024-09-19 23:03:53 -04:00

Fix race condition in the language tests

When we pipe to `>(...)` like that, we unfortunately don't wait for the
process to finish. Better to just substitute the file.

Also, use the "unified" diff output that people (including myself) are
more familiar with, thanks to Git.
This commit is contained in:
John Ericson 2023-07-13 08:03:42 -04:00
parent cafb5e8a17
commit e072e18475
2 changed files with 4 additions and 3 deletions

View file

@ -52,9 +52,10 @@ for i in lang/parse-okay-*.nix; do
i=$(basename "$i" .nix) i=$(basename "$i" .nix)
if if
expect 0 nix-instantiate --parse - < "lang/$i.nix" \ expect 0 nix-instantiate --parse - < "lang/$i.nix" \
1> >(sed "s!$(pwd)!/pwd!g" > "lang/$i.out") \ 1> "lang/$i.out" \
2> >(sed "s!$(pwd)!/pwd!g" > "lang/$i.err") 2> "lang/$i.err"
then then
sed "s!$(pwd)!/pwd!g" "lang/$i.out" "lang/$i.err"
diffAndAccept "$i" out exp diffAndAccept "$i" out exp
diffAndAccept "$i" err err.exp diffAndAccept "$i" err err.exp
else else

View file

@ -16,7 +16,7 @@ function diffAndAcceptInner() {
fi fi
# Diff so we get a nice message # Diff so we get a nice message
if ! diff "$got" "$expectedOrEmpty"; then if ! diff --unified "$got" "$expectedOrEmpty"; then
echo "FAIL: evaluation result of $testName not as expected" echo "FAIL: evaluation result of $testName not as expected"
badDiff=1 badDiff=1
fi fi