[PATCH 1 of 3] run-tests: alternative way of handling \r on Windows

Mads Kiilerich mads at kiilerich.com
Wed Oct 17 06:26:14 CDT 2012


On 10/17/2012 01:10 PM, Adrian Buehlmann wrote:
> On 2012-10-15 02:45, Mads Kiilerich wrote:
>> # HG changeset patch
>> # User Mads Kiilerich <mads at kiilerich.com>
>> # Date 1350261192 -7200
>> # Node ID b49d886bbc64ed0b4bd02f4df60db9175b3f5e80
>> # Parent  9837cafc25b10c51659b65b5971622eab0bc9197
>> run-tests: alternative way of handling \r on Windows
>>
>> After f71d60da58fb all \r was stripped from output on Windows, and the places
>> where a \r explicitly was expected it was accepted that it was missing. Ugly
>> hack.
>>
>> Instead we now accept that an extra \r might appear at the end of lines on
>> Windows. That is more to the point and less ugly.
> This seems to break a pile of tests on Windows. I got these with 72c234081ae1:
>
>    Failed test-atomictempfile.py: output changed
>    Failed test-batching.py: output changed
>    Failed test-bdiff.py: output changed
>    Failed test-commandserver.py: output changed
>    Failed test-context.py: output changed
>    Failed test-demandimport.py: output changed
>    Failed test-dispatch.py: output changed
>    Failed test-filelog.py: output changed
>    Failed test-hg-parseurl.py: output changed
>    Failed test-hgweb-auth.py: output changed
>    Failed test-hybridencode.py: output changed
>    Failed test-minirst.py: output changed
>    Failed test-parseindex2.py: output changed
>    Failed test-revlog-ancestry.py: output changed
>    Failed test-run-tests.t: output changed
>    Failed test-simplemerge.py: output changed
>    Failed test-status-inprocess.py: output changed
>    Failed test-trusted.py: output changed
>    Failed test-ui-color.py: output changed
>    Failed test-ui-config.py: output changed
>    Failed test-ui-verbosity.py: output changed
>    Failed test-wireproto.py: output changed
>    # Ran 356 tests, 97 skipped, 22 failed.
>
> Example (fails with af7c6bc48d8d):
>
>    --- C:\Users\adi\hgrepos\hg-main\tests\test-run-tests.t
>    +++ C:\Users\adi\hgrepos\hg-main\tests\test-run-tests.t.err
>    @@ -24,16 +24,16 @@
>     Doctest commands:
>
>       >>> print 'foo'
>    -  foo
>    +  foo\r (esc)
>       $ echo interleaved
>       interleaved
>       >>> for c in 'xyz':
>       ...     print c
>    -  x
>    -  y
>    -  z
>    +  x\r (esc)
>    +  y\r (esc)
>    +  z\r (esc)
>       >>> print
>    -
>    +  \r (esc)

Strange. I'm sure it worked when I tested. IIRC it should be handled by

         if el == l or os.name == 'nt' and el[:-1] + '\r\n' == l:
             return True

I will look at it later.

/Mads


More information about the Mercurial-devel mailing list