Samuel Bronson [off-list ref] writes:
for i in 1 2
do
test_expect_success "orderfile using option ($i)" '
git diff -Oorder_file_$i --name-only HEAD^..HEAD >actual &&
test_cmp expect_$i actual
'
This funny indentation in the previous step needs to be fixed, and
the added block below should match.
+
+ test_expect_success PIPE "orderfile is fifo ($i)" '
+ rm -f order_fifo &&
+ mkfifo order_fifo &&
+ cat order_file_$i >order_fifo &
+ git diff -O order_fifo --name-only HEAD^..HEAD >actual &&
I think this part can be racy depending on which between cat and
"git diff" are scheduled first, no? Try running this test under
load and I think you will see it deadlocked.
Besides, the above breaks && chain; even if mkfifo breaks (hence not
allowing cat to run), "git diff" will go ahead and run, no?
+ test_cmp expect_$i actual
+'
done
test_done