[llvm] f3dd783 - Revert "[lit] Handle plain negations directly in the internal shell"

Martin Storsjö via llvm-commits llvm-commits at lists.llvm.org
Fri Mar 19 03:33:24 PDT 2021


Author: Martin Storsjö
Date: 2021-03-19T12:33:12+02:00
New Revision: f3dd783b239f5587213d528dc642b599f43452b6

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

LOG: Revert "[lit] Handle plain negations directly in the internal shell"

This reverts commit d09adfd3993cbc1043b4d20232bce8bd774232cc.

That commit caused failures in
clang-tidy/infrastructure/validate-check-names.cpp on windows
buildbots.

That change exposed a surprising issue, not directly related to
this change in itself, but in how TestRunner quotes command line
arguments that later are going to be interpreted by a msys based
tool (like grep.exe, when provided by Git for Windows). This
worked accidentally before, when grep was invoked via not.exe
which took a more conservative approach to windows argument quoting.

Added: 
    

Modified: 
    llvm/utils/lit/lit/TestRunner.py

Removed: 
    


################################################################################
diff  --git a/llvm/utils/lit/lit/TestRunner.py b/llvm/utils/lit/lit/TestRunner.py
index 820cbce962c1..f826bc91fb3e 100644
--- a/llvm/utils/lit/lit/TestRunner.py
+++ b/llvm/utils/lit/lit/TestRunner.py
@@ -608,7 +608,6 @@ def _executeShCmd(cmd, shenv, results, timeoutHelper):
     assert isinstance(cmd, ShUtil.Pipeline)
 
     procs = []
-    negate_procs = []
     default_stdin = subprocess.PIPE
     stderrTempFiles = []
     opened_files = []
@@ -654,12 +653,6 @@ def _executeShCmd(cmd, shenv, results, timeoutHelper):
                 if not args:
                     raise InternalShellError(j, "Error: 'not' requires a"
                                                 " subcommand")
-            elif args[0] == '!':
-                not_args.append(args.pop(0))
-                not_count += 1
-                if not args:
-                    raise InternalShellError(j, "Error: '!' requires a"
-                                                " subcommand")
             else:
                 break
 
@@ -706,15 +699,7 @@ def _executeShCmd(cmd, shenv, results, timeoutHelper):
         # the assumptions that (1) environment variables are not intended to be
         # relevant to 'not' commands and (2) the 'env' command should always
         # blindly pass along the status it receives from any command it calls.
-
-        # For plain negations, either 'not' without '--crash', or the shell
-        # operator '!', leave them out from the command to execute and
-        # invert the result code afterwards.
-        if not_crash:
-            args = not_args + args
-            not_count = 0
-        else:
-            not_args = []
+        args = not_args + args
 
         stdin, stdout, stderr = processRedirects(j, default_stdin, cmd_shenv,
                                                  opened_files)
@@ -778,7 +763,6 @@ def _executeShCmd(cmd, shenv, results, timeoutHelper):
                                           stderr = stderr,
                                           env = cmd_shenv.env,
                                           close_fds = kUseCloseFDs))
-            negate_procs.append((not_count % 2) != 0)
             # Let the helper know about this process
             timeoutHelper.addProcess(procs[-1])
         except OSError as e:
@@ -831,8 +815,6 @@ def _executeShCmd(cmd, shenv, results, timeoutHelper):
         # Detect Ctrl-C in subprocess.
         if res == -signal.SIGINT:
             raise KeyboardInterrupt
-        if negate_procs[i]:
-            res = not res
 
         # Ensure the resulting output is always of string type.
         try:


        


More information about the llvm-commits mailing list