t3005: do not assume a particular order of stdout and stderr of git-ls-files
authorJohannes Sixt <j6t@kdbg.org>
Sun, 28 Aug 2011 07:34:56 +0000 (09:34 +0200)
committerJunio C Hamano <gitster@pobox.com>
Mon, 29 Aug 2011 05:19:27 +0000 (22:19 -0700)
There is no guarantee that stderr is flushed before stdout when both
channels are redirected to a file. Check the channels using independent
files.

Signed-off-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
t/t3005-ls-files-relative.sh
index a2b63e2c1066f1bf6b42086ea476bc02a1a556e6..377869432e9d0227c51836cedca8893394bb63e9 100755 (executable)
@@ -45,11 +45,12 @@ test_expect_success 'ls-files -c' '
                for f in ../y*
                do
                        echo "error: pathspec $sq$f$sq did not match any file(s) known to git."
-               done >expect &&
-               echo "Did you forget to ${sq}git add${sq}?" >>expect &&
-               ls ../x* >>expect &&
-               test_must_fail git ls-files -c --error-unmatch ../[xy]* >actual 2>&1 &&
-               test_cmp expect actual
+               done >expect.err &&
+               echo "Did you forget to ${sq}git add${sq}?" >>expect.err &&
+               ls ../x* >expect.out &&
+               test_must_fail git ls-files -c --error-unmatch ../[xy]* >actual.out 2>actual.err &&
+               test_cmp expect.out actual.out &&
+               test_cmp expect.err actual.err
        )
 '
 
@@ -59,11 +60,12 @@ test_expect_success 'ls-files -o' '
                for f in ../x*
                do
                        echo "error: pathspec $sq$f$sq did not match any file(s) known to git."
-               done >expect &&
-               echo "Did you forget to ${sq}git add${sq}?" >>expect &&
-               ls ../y* >>expect &&
-               test_must_fail git ls-files -o --error-unmatch ../[xy]* >actual 2>&1 &&
-               test_cmp expect actual
+               done >expect.err &&
+               echo "Did you forget to ${sq}git add${sq}?" >>expect.err &&
+               ls ../y* >expect.out &&
+               test_must_fail git ls-files -o --error-unmatch ../[xy]* >actual.out 2>actual.err &&
+               test_cmp expect.out actual.out &&
+               test_cmp expect.err actual.err
        )
 '