OSDN Git Service

[lit] Terminate ": RUN at line N" with ";" not "&&"
authorJoel E. Denny <jdenny.ornl@gmail.com>
Thu, 31 May 2018 03:40:37 +0000 (03:40 +0000)
committerJoel E. Denny <jdenny.ornl@gmail.com>
Thu, 31 May 2018 03:40:37 +0000 (03:40 +0000)
This fixes projects/compiler-rt/test/fuzzer/sigusr.test, which was
broken by r333614.  The trouble was that "&&" changes the command for
which "$!" gives the pid.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@333620 91177308-0d34-0410-b5e6-96231b3b80d8

utils/lit/lit/TestRunner.py
utils/lit/tests/shtest-run-at-line.py
utils/lit/tests/shtest-shell.py
utils/lit/tests/unit/TestRunner.py

index 35609d9..e304381 100644 (file)
@@ -1001,7 +1001,7 @@ def _executeShCmd(cmd, shenv, results, timeoutHelper):
 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())
@@ -1086,7 +1086,7 @@ def executeScript(test, litConfig, tmpBase, commands, cwd):
     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:
@@ -1094,7 +1094,7 @@ def executeScript(test, litConfig, tmpBase, commands, cwd):
         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:
@@ -1384,7 +1384,7 @@ class IntegratedTestKeywordParser(object):
                 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)
index adb7af8..0aeed20 100644 (file)
@@ -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:      [[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
@@ -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:      [[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
@@ -39,9 +39,9 @@
 # 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"
index 016d1f6..ed0bdf3 100644 (file)
 #
 # 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
index 4ade359..89209d8 100644 (file)
@@ -99,8 +99,8 @@ class TestIntegratedTestKeywordParser(unittest.TestCase):
         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()