def executeScriptInternal(test, litConfig, tmpBase, commands, cwd):
cmds = []
for i, ln in enumerate(commands):
- ln = commands[i] = re.sub(kPdbgRegex, ": '\\1'", ln)
+ ln = commands[i] = re.sub(kPdbgRegex, ": '\\1'; ", ln)
try:
cmds.append(ShUtil.ShParser(ln, litConfig.isWindows,
test.config.pipefail).parse())
f = open(script, mode)
if isWin32CMDEXE:
for i, ln in enumerate(commands):
- commands[i] = re.sub(kPdbgRegex, "echo '\\1' > nul", ln)
+ commands[i] = re.sub(kPdbgRegex, "echo '\\1' > nul && ", ln)
if litConfig.echo_all_commands:
f.write('@echo on\n')
else:
f.write('\n@if %ERRORLEVEL% NEQ 0 EXIT\n'.join(commands))
else:
for i, ln in enumerate(commands):
- commands[i] = re.sub(kPdbgRegex, ": '\\1'", ln)
+ commands[i] = re.sub(kPdbgRegex, ": '\\1'; ", ln)
if test.config.pipefail:
f.write('set -o pipefail;')
if litConfig.echo_all_commands:
line_number=line_number)
assert re.match(kPdbgRegex + "$", pdbg), \
"kPdbgRegex expected to match actual %dbg usage"
- line = "{pdbg} && {real_command}".format(
+ line = "{pdbg} {real_command}".format(
pdbg=pdbg,
real_command=line)
output.append(line)
# 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: [[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
# CHECK: RUN: at line 5
# 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: [[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
# CHECK: RUN: at line 6
# CHECK-LABEL: FAIL: shtest-run-at-line :: internal-shell/basic.txt
# CHECK: Script:
-# CHECK: : 'RUN: at line 1' && true
-# CHECK-NEXT: : 'RUN: at line 2' && false
-# CHECK-NEXT: : 'RUN: at line 3' && true
+# CHECK: : 'RUN: at line 1'; true
+# CHECK-NEXT: : 'RUN: at line 2'; false
+# CHECK-NEXT: : 'RUN: at line 3'; true
# CHECK: Command Output (stdout)
# CHECK: $ ":" "RUN: at line 1"
# CHECK-LABEL: FAIL: shtest-run-at-line :: internal-shell/line-continuation.txt
# CHECK: Script:
-# CHECK: : 'RUN: at line 1' && : first line continued to second line
-# CHECK-NEXT: : 'RUN: at line 3' && echo 'foo bar' | FileCheck
-# CHECK-NEXT: : 'RUN: at line 5' && echo 'foo baz' | FileCheck
-# CHECK-NEXT: : 'RUN: at line 8' && echo 'foo bar' | FileCheck
+# CHECK: : 'RUN: at line 1'; : first line continued to second line
+# CHECK-NEXT: : 'RUN: at line 3'; echo 'foo bar' | FileCheck
+# CHECK-NEXT: : 'RUN: at line 5'; echo 'foo baz' | FileCheck
+# CHECK-NEXT: : 'RUN: at line 8'; echo 'foo bar' | FileCheck
# CHECK: Command Output (stdout)
# CHECK: $ ":" "RUN: at line 1"
#
# CHECK: FAIL: shtest-shell :: error-1.txt
# CHECK: *** TEST 'shtest-shell :: error-1.txt' FAILED ***
-# CHECK: shell parser error on: ': \'RUN: at line 3\' && echo "missing quote'
+# CHECK: shell parser error on: ': \'RUN: at line 3\'; echo "missing quote'
# CHECK: ***
# CHECK: FAIL: shtest-shell :: error-2.txt
cmd_parser = self.get_parser(parsers, 'MY_RUN:')
value = cmd_parser.getValue()
self.assertEqual(len(value), 2) # there are only two run lines
- self.assertEqual(value[0].strip(), "%dbg(MY_RUN: at line 4) && baz")
- self.assertEqual(value[1].strip(), "%dbg(MY_RUN: at line 7) && foo bar")
+ self.assertEqual(value[0].strip(), "%dbg(MY_RUN: at line 4) baz")
+ self.assertEqual(value[1].strip(), "%dbg(MY_RUN: at line 7) foo bar")
def test_custom(self):
parsers = self.make_parsers()