[lit] Avoid CRLFs in bash scripts on Windows
authorReid Kleckner <reid@kleckner.net>
Wed, 20 Mar 2013 23:32:14 +0000 (23:32 +0000)
committerReid Kleckner <reid@kleckner.net>
Wed, 20 Mar 2013 23:32:14 +0000 (23:32 +0000)
Native Windows Python will do line ending translation by default, which
we don't want in bash scripts.  If we're not native Windows Python, then
'b' is ignored.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177602 91177308-0d34-0410-b5e6-96231b3b80d8

utils/lit/lit/TestRunner.py

index 07fb43f840d72474d609f76281d6ff9b4b07a1e4..84176996a8c8dcb496f638fde212e35ca53aeb3a 100644 (file)
@@ -277,7 +277,10 @@ def executeScript(test, litConfig, tmpBase, commands, cwd):
         script += '.bat'
 
     # Write script file
-    f = open(script,'w')
+    mode = 'w'
+    if litConfig.isWindows and not isWin32CMDEXE:
+      mode += 'b'  # Avoid CRLFs when writing bash scripts.
+    f = open(script, mode)
     if isWin32CMDEXE:
         f.write('\nif %ERRORLEVEL% NEQ 0 EXIT\n'.join(commands))
     else: