On 2013-05-29 10:57, Stefano Lattarini wrote: > On 05/29/2013 01:43 AM, Peter Rosin wrote: >> Hi! >> >> I have this interesting log snippet from a failed run of t/cxx-demo.sh >> on the master branch (commit baf8a1c22acce0908): >> > And as you noted in your follow-up message, the problem is the same on > the micro branch (87e49f4f040c8ab)) > >> >> + for p in play work >> + ./play >> + cat exp.play >> We are playing :-) >> Howdy, play! >> + cat got.play >> We are playing :-) >> Howdy, play! >> + diff exp.play got.play >> 1,2c1,2 >> < We are playing :-) >> < Howdy, play! >> --- >>> We are playing :-) >>> Howdy, play! >> + am_exit_trap 1 >> + exit_status=1 >> >> >> This is on MSYS, and I strongly suspect a line ending discrepancy. >> The output from ./play is likely to have CRNL line endings, while >> exp.play is likely to have NL line endings. diff then barfs. >> > Any suggestion on how to easily fix this? > > If not, I have a utterly untested idea: > > - Add a new helper function to t/ax/am-test-lib.sh that tells whether > we are running on MinGW or no (you can steal existing code from the > 'require_tool()' function). > > - Use it in cxx-demo.sh to determine whether we are running under > MinGW. > > - If that's the case, use perl to normalize the line endings (turning > all CR-LF into simple LF). > > Is this doable?
Yes, but why not always zap all CR characters? Shouldn't weaken the test by much... Something like the below change perhaps? (perl seemed a bit heavy) Cheers, Peter diff --git a/t/cxx-demo.sh b/t/cxx-demo.sh index f6d568d..27d18e1 100644 --- a/t/cxx-demo.sh +++ b/t/cxx-demo.sh @@ -165,7 +165,7 @@ END Good morning, work. END for p in play work; do - ./$p > got.$p || { cat got.$p; exit 1; } + ./$p | tr -d '\015' > got.$p || { cat got.$p; exit 1; } cat exp.$p cat got.$p diff exp.$p got.$p