Relax shtest-run-at-line.py

The test was failing on Windows machines which had bash.exe on PATH (but
not in the so called lit tools dir, containing cmp.exe, grep.exe etc.).

The problem was that the outer lit invocation would load LLVMConfig
from utils/lit/lit/llvm/config.py, which looks up the tools path with
getToolsPath(). That has a surprising side effect of also setting
bashPath, in our case setting it to empty.

The outer lit invocation would thus configure the pdbg0 and pdbg1
substitutions based on not running with bash.

But the inner lit invocation would not load LLVMConfig, so bash
would be found on PATH, that would be used as external shell,
and so the output wouldn't match pdbg0 and pdbg1.

It seems weird to me that getBashPath() will return different results
depending on whether getToolsPath() has been called before, but I
also don't know how to fix it properly.

This commit just relaxes the test case, because there doesn't seem
to be much point in testing for the exact syntax of the run file
as long as it works.

(See https://crbug.com/850023)

llvm-svn: 334100
This commit is contained in:
Hans Wennborg 2018-06-06 14:53:03 +00:00
parent 25312b2b6c
commit c4b7e0125f
2 changed files with 7 additions and 18 deletions

View File

@ -71,14 +71,3 @@ for attribute in ('llvm_tools_dir', 'lit_tools_dir'):
if directory:
path = os.path.pathsep.join((directory, path))
config.environment['PATH'] = path
# These substitutions are needed only in tests where the external shell is used
# and could be either bash or windows cmd.exe. Substitutions are expected to
# be expanded in double quotes.
isWin32CMDEXE = lit_config.isWindows and not lit_config.getBashPath()
if isWin32CMDEXE:
config.substitutions.append(('%{pdbg0}', "echo '"))
config.substitutions.append(('%{pdbg1}', "' > nul &&"))
else:
config.substitutions.append(('%{pdbg0}', ": '"))
config.substitutions.append(('%{pdbg1}', "';"))

View File

@ -2,7 +2,7 @@
# (-v is actually sufficient in the case of the internal shell.)
#
# RUN: not %{lit} -j 1 -vv %{inputs}/shtest-run-at-line > %t.out
# RUN: FileCheck --input-file %t.out -Dpdbg0="%{pdbg0}" -Dpdbg1="%{pdbg1}" %s
# RUN: FileCheck --input-file %t.out %s
#
# END.
@ -16,9 +16,9 @@
# CHECK-LABEL: FAIL: shtest-run-at-line :: external-shell/basic.txt
# CHECK: Script:
# CHECK: [[pdbg0]]RUN: at line 4[[pdbg1]] true
# CHECK-NEXT: [[pdbg0]]RUN: at line 5[[pdbg1]] false
# CHECK-NEXT: [[pdbg0]]RUN: at line 6[[pdbg1]] true
# CHECK: RUN: at line 4{{.*}} true
# CHECK-NEXT: RUN: at line 5{{.*}} false
# CHECK-NEXT: RUN: at line 6{{.*}} true
# CHECK: RUN: at line 4
# CHECK: RUN: at line 5
@ -27,9 +27,9 @@
# CHECK-LABEL: FAIL: shtest-run-at-line :: external-shell/line-continuation.txt
# CHECK: Script:
# CHECK: [[pdbg0]]RUN: at line 4[[pdbg1]] echo 'foo bar' | FileCheck
# CHECK-NEXT: [[pdbg0]]RUN: at line 6[[pdbg1]] echo 'foo baz' | FileCheck
# CHECK-NEXT: [[pdbg0]]RUN: at line 9[[pdbg1]] echo 'foo bar' | FileCheck
# CHECK: RUN: at line 4{{.*}} echo 'foo bar' | FileCheck
# CHECK-NEXT: RUN: at line 6{{.*}} echo 'foo baz' | FileCheck
# CHECK-NEXT: RUN: at line 9{{.*}} echo 'foo bar' | FileCheck
# CHECK: RUN: at line 4
# CHECK: RUN: at line 6