MultiTestRunner: Oops, clang wasn't being substituted properly. This is why the
cxx-using-declaration test case started exhibiting different behavior. It still
needs to be fixed, however...


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77066 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/utils/test/TestRunner.py b/utils/test/TestRunner.py
index 84964c8..3b2b5eb 100755
--- a/utils/test/TestRunner.py
+++ b/utils/test/TestRunner.py
@@ -132,13 +132,26 @@
             index = ln.index('RUN:')
             ln = ln[index+4:]
             
-            # Strip whitespace and append.
-            scriptLines.append(ln.strip())
+            # Strip trailing newline.
+            scriptLines.append(ln)
         elif 'XFAIL' in ln:
             xfailLines.append(ln)
         
         # FIXME: Support something like END, in case we need to process large
         # files.
+    
+    # Apply substitutions to the script.
+    def processLine(ln):
+        # Apply substitutions
+        for a,b in substitutions:
+            ln = ln.replace(a,b)
+
+        if useDGCompat:
+            ln = re.sub(r'\{(.*)\}', r'"\1"', ln)
+
+        # Strip the trailing newline and any extra whitespace.
+        return ln.strip()
+    scriptLines = map(processLine, scriptLines)    
 
     # Validate interior lines for '&&', a lovely historical artifact.
     for i in range(len(scriptLines) - 1):
@@ -151,18 +164,7 @@
     
         # Strip off '&&'
         scriptLines[i] = ln[:-2]
-    
-    # Apply substitutions to the script.
-    def processLine(ln):
-        # Apply substitutions
-        for a,b in substitutions:
-            ln = ln.replace(a,b)
 
-        if useDGCompat:
-            ln = re.sub(r'\{(.*)\}', r'"\1"', ln)
-        return ln
-    scriptLines = map(processLine, scriptLines)
-    
     if xfailLines:
         print >>output, "XFAILED '%s':"%(TESTNAME,)
         output.writelines(xfailLines)