Re: [PATCH 02/17] t0001 (mingw): do not expect a specific order of stdout/stderr
- From
Eric Sunshine <sunshine@sunshineco.com>
- Date
- Jun 18, 2019, 23:12 UTC
- Message-ID
- <CAPig+cQaoRBnH0JrUwXTo1hSwjrZ1vJHewjCAkKPeCrRwo=P2w@mail.gmail.com>
- In-Reply-To
- <d551cdeafbf2953ba340aa16554fbd5ac6194a6e.1560860634.git.gitgitgadget@gmail.com>
On Tue, Jun 18, 2019 at 8:24 AM Johannes Schindelin via GitGitGadget <gitgitgadget@gmail.com> wrote:
Show 17 quoted lines
> When redirecting stdout/stderr to the same file, we cannot guarantee > that stdout will come first. > > In fact, in this test case, it seems that an MSVC build always prints > stderr first. > > In any case, this test case does not want to verify the *order* but > the *presence* of both outputs, so let's relax the test a little. > > Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> > --- > diff --git a/t/t0001-init.sh b/t/t0001-init.sh > @@ -474,7 +474,8 @@ test_expect_success MINGW 'redirect std handles' ' > printf ".git\nfatal: Needed a single revision\n" >expect && > - test_cmp expect output.txt > + sort <output.txt >output.sorted && > + test_cmp expect output.sorted
It was quite surprising to see this sorting only 'output' but not 'expect'. I see now that 'output' is already "sorted" (in that sense), but it feels fragile. More robust would be to sort 'expect' as well:
printf ".git\nfatal: Needed a single revision\n" | sort >expect &&
This would protect against the next person who modifies the 'printf' testing on Unix and Windows/gcc and thinking all is well even though the change might make the test fail for an MSVC build.