[lit] Fix TestRunner unit test on Windows
authorBrian Gesiak <modocache@gmail.com>
Thu, 27 Jul 2017 19:27:10 +0000 (19:27 +0000)
committerBrian Gesiak <modocache@gmail.com>
Thu, 27 Jul 2017 19:27:10 +0000 (19:27 +0000)
commit8c44b033c195d1c059bb73ef317335451b523995
treeaf91be7101eae635c86f050b2854c7176a1034e0
parent8c022ca783ea3eff96fd11993664198c35cd7fc1
[lit] Fix TestRunner unit test on Windows

Summary:
Normally Python converts all newline characters, Windows or Unix,
to Unix newlines when opening a file. However, lit opens files in
binary mode, which does not perform this conversion. As a result,
trailing Windows newlines are not stripped from test input, which
caused a failure in the TestRunner unit test:

```
FAIL: test_custom (__main__.TestIntegratedTestKeywordParser)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "C:\Users\bgesiak\src\llvm\llvm\utils\lit\tests\unit\TestRunner.py", line 109, in test_custom
    self.assertItemsEqual(value, ['a', 'b', 'c'])
AssertionError: Element counts were not equal:
First has 1, Second has 0: 'c\r'
First has 0, Second has 1:  'c'
```

Fix the discrepancy in behavior across the two platforms by
manually stripping Windows newlines before yielding each line in
the test file.

Reviewers: echristo, beanz, ddunbar, delcypher, rnk

Reviewed By: rnk

Subscribers: mehdi_amini, llvm-commits

Differential Revision: https://reviews.llvm.org/D27746

llvm-svn: 309312
llvm/utils/lit/lit/TestRunner.py