summaryrefslogtreecommitdiffstats
path: root/src/compiler/glsl/glcpp/tests
diff options
context:
space:
mode:
authorMathieu Bridon <[email protected]>2018-08-17 21:32:17 +0200
committerDylan Baker <[email protected]>2018-08-22 08:41:01 -0700
commitff0ce31e2a9135c3fcc3243773c442bc48f46b53 (patch)
treed6458fa83e3728a3b237020387255a32befa91f6 /src/compiler/glsl/glcpp/tests
parentfc708069f74063428e90595f494de6c79515f64e (diff)
python: Disable universal newlines
We are testing the behaviour of a tool, for different input files, each one using a different newline sequence. ('\n' on UNIX, '\r\n' on Windows, …) Unfortunately, when opening a file in text mode, Python 3 will by default enable the "universal newlines" mode, which means it replaces all the known newline sequences by '\n'. This (usually useful) behaviour breaks the tests, which are specifically trying to handle files with newline sequences different from '\n'. Disabling the universal newlines mode fixes the tests. However, to keep the script compatible with both Python 2 and 3, we must use the io.open() function instead of the open() builtin, as the latter only knows about the `newline` argument on Python 3. Reviewed-by: Dylan Baker <[email protected]>
Diffstat (limited to 'src/compiler/glsl/glcpp/tests')
-rwxr-xr-xsrc/compiler/glsl/glcpp/tests/glcpp_test.py5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/compiler/glsl/glcpp/tests/glcpp_test.py b/src/compiler/glsl/glcpp/tests/glcpp_test.py
index e27391093cf..1481eed6188 100755
--- a/src/compiler/glsl/glcpp/tests/glcpp_test.py
+++ b/src/compiler/glsl/glcpp/tests/glcpp_test.py
@@ -46,7 +46,10 @@ def arg_parser():
def parse_test_file(filename, nl_format):
"""Check for any special arguments and return them as a list."""
- with open(filename) as f:
+ # Disable "universal newlines" mode; we can't directly use `nl_format` as
+ # the `newline` argument, because the "bizarro" test uses something Python
+ # considers invalid.
+ with io.open(filename, newline='') as f:
for l in f.read().split(nl_format):
if 'glcpp-args:' in l:
return l.split('glcpp-args:')[1].strip().split()