[clang] a24644b - Revert "Run non-filechecked commands in update_cc_test_checks.py"

Jon Roelofs via cfe-commits cfe-commits at lists.llvm.org
Mon Mar 8 17:29:39 PST 2021


Author: Jon Roelofs
Date: 2021-03-08T17:26:24-08:00
New Revision: a24644bb1ce09b40c2d751569dd5bb37ea9c995d

URL: https://github.com/llvm/llvm-project/commit/a24644bb1ce09b40c2d751569dd5bb37ea9c995d
DIFF: https://github.com/llvm/llvm-project/commit/a24644bb1ce09b40c2d751569dd5bb37ea9c995d.diff

LOG: Revert "Run non-filechecked commands in update_cc_test_checks.py"

This reverts commit 60d4c73b30a0e324c6ae314722eb036f70f4b03a.

The new test is broken on macos hosts. Discussion here:
https://reviews.llvm.org/D97068#2611269
https://reviews.llvm.org/D97068#2612675

... revert to green.

Added: 
    

Modified: 
    llvm/utils/update_cc_test_checks.py

Removed: 
    clang/test/utils/update_cc_test_checks/Inputs/exec-all-runlines.c
    clang/test/utils/update_cc_test_checks/Inputs/exec-all-runlines.c.expected
    clang/test/utils/update_cc_test_checks/exec-all-runlines.test


################################################################################
diff  --git a/clang/test/utils/update_cc_test_checks/Inputs/exec-all-runlines.c b/clang/test/utils/update_cc_test_checks/Inputs/exec-all-runlines.c
deleted file mode 100644
index bf18179392dc..000000000000
--- a/clang/test/utils/update_cc_test_checks/Inputs/exec-all-runlines.c
+++ /dev/null
@@ -1,10 +0,0 @@
-// Check that the non-clang/non-filechecked runlines execute
-// RUN: cp %s %s.copy.c
-// RUN: %clang_cc1 -fopenmp %s.copy.c -emit-llvm-bc -o %t-host.bc
-// RUN: %clang_cc1 -fopenmp -fopenmp-host-ir-file-path %t-host.bc %s.copy.c -emit-llvm -o - | FileCheck %s
-
-void use(int);
-
-void test(int a)
-{
-}

diff  --git a/clang/test/utils/update_cc_test_checks/Inputs/exec-all-runlines.c.expected b/clang/test/utils/update_cc_test_checks/Inputs/exec-all-runlines.c.expected
deleted file mode 100644
index ffc8caac0f23..000000000000
--- a/clang/test/utils/update_cc_test_checks/Inputs/exec-all-runlines.c.expected
+++ /dev/null
@@ -1,17 +0,0 @@
-// NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py
-// Check that the non-clang/non-filechecked runlines execute
-// RUN: cp %s %s.copy.c
-// RUN: %clang_cc1 -fopenmp %s.copy.c -emit-llvm-bc -o %t-host.bc
-// RUN: %clang_cc1 -fopenmp -fopenmp-host-ir-file-path %t-host.bc %s.copy.c -emit-llvm -o - | FileCheck %s
-
-void use(int);
-
-// CHECK-LABEL: @test(
-// CHECK-NEXT:  entry:
-// CHECK-NEXT:    [[A_ADDR:%.*]] = alloca i32, align 4
-// CHECK-NEXT:    store i32 [[A:%.*]], i32* [[A_ADDR]], align 4
-// CHECK-NEXT:    ret void
-//
-void test(int a)
-{
-}

diff  --git a/clang/test/utils/update_cc_test_checks/exec-all-runlines.test b/clang/test/utils/update_cc_test_checks/exec-all-runlines.test
deleted file mode 100644
index caf39934266c..000000000000
--- a/clang/test/utils/update_cc_test_checks/exec-all-runlines.test
+++ /dev/null
@@ -1,8 +0,0 @@
-## Test that non-clang/non-filechecked runlines execute
-
-# RUN: cp %S/Inputs/exec-all-runlines.c %t-generated.c && %update_cc_test_checks %t-generated.c
-# RUN: 
diff  -u %S/Inputs/exec-all-runlines.c.expected %t-generated.c
-
-## Check that re-running update_cc_test_checks doesn't change the output
-# RUN: %update_cc_test_checks %t-generated.c
-# RUN: 
diff  -u %S/Inputs/exec-all-runlines.c.expected %t-generated.c

diff  --git a/llvm/utils/update_cc_test_checks.py b/llvm/utils/update_cc_test_checks.py
index d084bc6d0795..e5ca91502cf9 100755
--- a/llvm/utils/update_cc_test_checks.py
+++ b/llvm/utils/update_cc_test_checks.py
@@ -203,14 +203,6 @@ def get_function_body(builder, args, filename, clang_args, extra_commands,
           'are discouraged in Clang testsuite.', file=sys.stderr)
     sys.exit(1)
 
-def exec_run_line(exe):
-  popen = subprocess.Popen(exe, stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True)
-  stdout, stderr = popen.communicate()
-  if popen.returncode != 0:
-    sys.stderr.write('Failed to run ' + ' '.join(exe) + '\n')
-    sys.stderr.write(stderr)
-    sys.stderr.write(stdout)
-    sys.exit(3)
 
 def main():
   initial_args, parser = config()
@@ -229,31 +221,25 @@ def main():
       if m:
         triple_in_cmd = m.groups()[0]
 
-      # Parse executable args.
-      exec_args = shlex.split(commands[0])
-      # Execute non-clang runline.
-      if exec_args[0] not in SUBST:
-        print('NOTE: Executing non-clang RUN line: ' + l, file=sys.stderr)
-        # Replace %s by `filename`.
-        exec_args = [i.replace('%s', ti.path) if '%s' in i else i for i in exec_args]
-        exec_run_line(exec_args)
+      # Apply %clang substitution rule, replace %s by `filename`, and append args.clang_args
+      clang_args = shlex.split(commands[0])
+      if clang_args[0] not in SUBST:
+        print('WARNING: Skipping non-clang RUN line: ' + l, file=sys.stderr)
         continue
-      # This is a clang runline, apply %clang substitution rule, replace %s by `filename`,
-      # and append args.clang_args
-      clang_args = exec_args
       clang_args[0:1] = SUBST[clang_args[0]]
-      clang_args = [i.replace('%s', ti.path) if '%s' in i else i for i in clang_args] + ti.args.clang_args
+      clang_args = [ti.path if i == '%s' else i for i in clang_args] + ti.args.clang_args
+
+      # Permit piping the output through opt
+      if not (len(commands) == 2 or
+              (len(commands) == 3 and commands[1].startswith('opt'))):
+        print('WARNING: Skipping non-clang RUN line: ' + l, file=sys.stderr)
 
       # Extract -check-prefix in FileCheck args
       filecheck_cmd = commands[-1]
       common.verify_filecheck_prefixes(filecheck_cmd)
       if not filecheck_cmd.startswith('FileCheck '):
-        print('NOTE: Executing non-FileChecked clang RUN line: ' + l, file=sys.stderr)
-        # Execute non-filechecked clang runline.
-        exe = [ti.args.clang] + clang_args
-        exec_run_line(exe)
+        print('WARNING: Skipping non-FileChecked RUN line: ' + l, file=sys.stderr)
         continue
-
       check_prefixes = [item for m in common.CHECK_PREFIX_RE.finditer(filecheck_cmd)
                                for item in m.group(1).split(',')]
       if not check_prefixes:


        


More information about the cfe-commits mailing list