1
0
Fork 0
mirror of https://github.com/NixOS/nix synced 2025-06-25 23:11:16 +02:00

Merge pull request #12955 from NixOS/mergify/bp/2.28-maintenance/pr-12951

tests/functional/repl: fix race condition (backport #12951)
This commit is contained in:
mergify[bot] 2025-04-07 12:52:09 +00:00 committed by GitHub
commit a4962f73b5
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -162,15 +162,32 @@ foo + baz
# - Modify the flake # - Modify the flake
# - Re-eval it # - Re-eval it
# - Check that the result has changed # - Check that the result has changed
replResult=$( ( mkfifo repl_fifo
echo "changingThing" nix repl ./flake --experimental-features 'flakes' < repl_fifo > repl_output 2>&1 &
sleep 1 # Leave the repl the time to eval 'foo' repl_pid=$!
exec 3>repl_fifo # Open fifo for writing
echo "changingThing" >&3
for i in $(seq 1 1000); do
if grep -q "beforeChange" repl_output; then
break
fi
cat repl_output
sleep 0.1
done
if [[ "$i" -eq 100 ]]; then
echo "Timed out waiting for beforeChange"
exit 1
fi
sed -i 's/beforeChange/afterChange/' flake/flake.nix sed -i 's/beforeChange/afterChange/' flake/flake.nix
echo ":reload"
echo "changingThing" # Send reload and second command
) | nix repl ./flake --experimental-features 'flakes') echo ":reload" >&3
echo "$replResult" | grepQuiet -s beforeChange echo "changingThing" >&3
echo "$replResult" | grepQuiet -s afterChange echo "exit" >&3
exec 3>&- # Close fifo
wait $repl_pid # Wait for process to finish
grep -q "afterChange" repl_output
# Test recursive printing and formatting # Test recursive printing and formatting
# Normal output should print attributes in lexicographical order non-recursively # Normal output should print attributes in lexicographical order non-recursively