Skip to content

Commit

Permalink
Revert "[lit] Handle plain negations directly in the internal shell"
Browse files Browse the repository at this point in the history
This reverts commit d09adfd.

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.
  • Loading branch information
mstorsjo committed Mar 19, 2021
1 parent 7dd76cc commit f3dd783
Showing 1 changed file with 1 addition and 19 deletions.
20 changes: 1 addition & 19 deletions llvm/utils/lit/lit/TestRunner.py
Original file line number Diff line number Diff line change
Expand Up @@ -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 = []
Expand Down Expand Up @@ -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

Expand Down Expand Up @@ -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)
Expand Down Expand Up @@ -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:
Expand Down Expand Up @@ -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:
Expand Down

0 comments on commit f3dd783

Please sign in to comment.