Browse Source

Make utils/UpdateTestChecks/common.py Python 2/3 compatible and fix print statements.

Subscribers: llvm-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@324104 91177308-0d34-0410-b5e6-96231b3b80d8
Fangrui Song 7 years ago
parent
commit
b02fa51730
1 changed files with 9 additions and 6 deletions
  1. 9 6
      utils/UpdateTestChecks/common.py

+ 9 - 6
utils/UpdateTestChecks/common.py

@@ -1,5 +1,7 @@
+from __future__ import print_function
 import re
 import re
 import subprocess
 import subprocess
+import sys
 
 
 RUN_LINE_RE = re.compile('^\s*;\s*RUN:\s*(.*)$')
 RUN_LINE_RE = re.compile('^\s*;\s*RUN:\s*(.*)$')
 CHECK_PREFIX_RE = re.compile('--?check-prefix(?:es)?=(\S+)')
 CHECK_PREFIX_RE = re.compile('--?check-prefix(?:es)?=(\S+)')
@@ -35,9 +37,10 @@ def invoke_tool(exe, cmd_args, ir):
   with open(ir) as ir_file:
   with open(ir) as ir_file:
     stdout = subprocess.check_output(exe + ' ' + cmd_args,
     stdout = subprocess.check_output(exe + ' ' + cmd_args,
                                      shell=True, stdin=ir_file)
                                      shell=True, stdin=ir_file)
+    if sys.version_info[0] > 2:
+      stdout = stdout.decode()
   # Fix line endings to unix CR style.
   # Fix line endings to unix CR style.
-  stdout = stdout.replace('\r\n', '\n')
-  return stdout
+  return stdout.replace('\r\n', '\n')
 
 
 # Build up a dictionary of all the function bodies.
 # Build up a dictionary of all the function bodies.
 def build_function_body_dictionary(function_re, scrubber, scrubber_args, raw_tool_output, prefixes, func_dict, verbose):
 def build_function_body_dictionary(function_re, scrubber, scrubber_args, raw_tool_output, prefixes, func_dict, verbose):
@@ -50,14 +53,14 @@ def build_function_body_dictionary(function_re, scrubber, scrubber_args, raw_too
       # We only use the last line of the function body for stress tests.
       # We only use the last line of the function body for stress tests.
       scrubbed_body = '\n'.join(scrubbed_body.splitlines()[-1:])
       scrubbed_body = '\n'.join(scrubbed_body.splitlines()[-1:])
     if verbose:
     if verbose:
-      print >>sys.stderr, 'Processing function: ' + func
+      print('Processing function: ' + func, file=sys.stderr)
       for l in scrubbed_body.splitlines():
       for l in scrubbed_body.splitlines():
-        print >>sys.stderr, '  ' + l
+        print('  ' + l, file=sys.stderr)
     for prefix in prefixes:
     for prefix in prefixes:
       if func in func_dict[prefix] and func_dict[prefix][func] != scrubbed_body:
       if func in func_dict[prefix] and func_dict[prefix][func] != scrubbed_body:
         if prefix == prefixes[-1]:
         if prefix == prefixes[-1]:
-          print >>sys.stderr, ('WARNING: Found conflicting asm under the '
-                               'same prefix: %r!' % (prefix,))
+          print('WARNING: Found conflicting asm under the '
+                               'same prefix: %r!' % (prefix,), file=sys.stderr)
         else:
         else:
           func_dict[prefix][func] = None
           func_dict[prefix][func] = None
           continue
           continue