Browse Source

Correctly handle multi-lined RUN lines.

`utils/update_{llc_test,test}_checks` ought to be able to handle RUN commands
that span multiple lines, as shown in the example at
http://llvm.org/docs/CommandGuide/FileCheck.html#the-filecheck-check-prefix-option

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@290716 91177308-0d34-0410-b5e6-96231b3b80d8
Bryant Wong 8 years ago
parent
commit
1470f5b2ad
2 changed files with 16 additions and 2 deletions
  1. 8 1
      utils/update_llc_test_checks.py
  2. 8 1
      utils/update_test_checks.py

+ 8 - 1
utils/update_llc_test_checks.py

@@ -222,8 +222,15 @@ def main():
         triple_in_ir = m.groups()[0]
         break
 
-    run_lines = [m.group(1)
+    raw_lines = [m.group(1)
                  for m in [RUN_LINE_RE.match(l) for l in input_lines] if m]
+    run_lines = [raw_lines[0]] if len(raw_lines) > 0 else []
+    for l in raw_lines[1:]:
+        if run_lines[-1].endswith("\\"):
+            run_lines[-1] = run_lines[-1].rstrip("\\") + " " + l
+        else:
+            run_lines.append(l)
+
     if args.verbose:
       print >>sys.stderr, 'Found %d RUN lines:' % (len(run_lines),)
       for l in run_lines:

+ 8 - 1
utils/update_test_checks.py

@@ -292,8 +292,15 @@ def main():
     with open(test) as f:
       input_lines = [l.rstrip() for l in f]
 
-    run_lines = [m.group(1)
+    raw_lines = [m.group(1)
                  for m in [RUN_LINE_RE.match(l) for l in input_lines] if m]
+    run_lines = [raw_lines[0]] if len(raw_lines) > 0 else []
+    for l in raw_lines[1:]:
+        if run_lines[-1].endswith("\\"):
+            run_lines[-1] = run_lines[-1].rstrip("\\") + " " + l
+        else:
+            run_lines.append(l)
+
     if args.verbose:
       print >>sys.stderr, 'Found %d RUN lines:' % (len(run_lines),)
       for l in run_lines: