[llvm] r330755 - [lit] Report line number for failed RUN command
via llvm-commits
llvm-commits at lists.llvm.org
Wed Apr 25 10:57:07 PDT 2018
FTR this caused PR37239 and was reverted by rnk in r330848.
Just to make sure all the cross-references are there.
--paulr
> -----Original Message-----
> From: llvm-commits [mailto:llvm-commits-bounces at lists.llvm.org] On Behalf
> Of Joel E. Denny via llvm-commits
> Sent: Tuesday, April 24, 2018 2:43 PM
> To: llvm-commits at lists.llvm.org
> Subject: [llvm] r330755 - [lit] Report line number for failed RUN command
>
> Author: jdenny
> Date: Tue Apr 24 11:43:25 2018
> New Revision: 330755
>
> URL: http://llvm.org/viewvc/llvm-project?rev=330755&view=rev
> Log:
> [lit] Report line number for failed RUN command
>
> When debugging test failures with -vv (or -v in the case of the
> internal shell), this makes it easier to locate the RUN line that
> failed. For example, clang's test/Driver/linux-ld.c has 892 total RUN
> lines, and clang's test/Driver/arm-cortex-cpus.c has 424 RUN lines
> after concatenation for line continuations.
>
> When reading the generated shell script, this also makes it easier to
> locate the RUN line that produced each command.
>
> To support reporting RUN line numbers in the case of the internal
> shell, this patch extends the internal shell to support the null
> command, ":", except pipelines are not supported.
>
> Reviewed By: asmith, delcypher
>
> Differential Revision: https://reviews.llvm.org/D44598
>
> Added:
> llvm/trunk/utils/lit/tests/Inputs/shtest-run-at-line/
> llvm/trunk/utils/lit/tests/Inputs/shtest-run-at-line/external-shell/
> llvm/trunk/utils/lit/tests/Inputs/shtest-run-at-line/external-
> shell/basic.txt
> llvm/trunk/utils/lit/tests/Inputs/shtest-run-at-line/external-
> shell/line-continuation.txt
> llvm/trunk/utils/lit/tests/Inputs/shtest-run-at-line/external-
> shell/lit.local.cfg
> llvm/trunk/utils/lit/tests/Inputs/shtest-run-at-line/internal-shell/
> llvm/trunk/utils/lit/tests/Inputs/shtest-run-at-line/internal-
> shell/basic.txt
> llvm/trunk/utils/lit/tests/Inputs/shtest-run-at-line/internal-
> shell/line-continuation.txt
> llvm/trunk/utils/lit/tests/Inputs/shtest-run-at-line/internal-
> shell/lit.local.cfg
> llvm/trunk/utils/lit/tests/Inputs/shtest-run-at-line/lit.cfg
> llvm/trunk/utils/lit/tests/Inputs/shtest-shell/colon-error.txt
> llvm/trunk/utils/lit/tests/shtest-run-at-line.py
> Modified:
> llvm/trunk/docs/CommandGuide/lit.rst
> llvm/trunk/utils/lit/lit/TestRunner.py
> llvm/trunk/utils/lit/tests/max-failures.py
> llvm/trunk/utils/lit/tests/shtest-format.py
> llvm/trunk/utils/lit/tests/shtest-output-printing.py
> llvm/trunk/utils/lit/tests/shtest-shell.py
> llvm/trunk/utils/lit/tests/unit/TestRunner.py
>
> Modified: llvm/trunk/docs/CommandGuide/lit.rst
> URL: http://llvm.org/viewvc/llvm-
> project/llvm/trunk/docs/CommandGuide/lit.rst?rev=330755&r1=330754&r2=33075
> 5&view=diff
> ==========================================================================
> ====
> --- llvm/trunk/docs/CommandGuide/lit.rst (original)
> +++ llvm/trunk/docs/CommandGuide/lit.rst Tue Apr 24 11:43:25 2018
> @@ -85,6 +85,8 @@ OUTPUT OPTIONS
> Echo all commands to stdout, as they are being executed.
> This can be valuable for debugging test failures, as the last echoed
> command
> will be the one which has failed.
> + To help you find the source RUN line, :program:`lit` inserts a no-op
> ``:``
> + command with argument ``'RUN: at line N'`` before each command pipeline.
> This option implies ``--verbose``.
>
> .. option:: -a, --show-all
>
> Modified: llvm/trunk/utils/lit/lit/TestRunner.py
> URL: http://llvm.org/viewvc/llvm-
> project/llvm/trunk/utils/lit/lit/TestRunner.py?rev=330755&r1=330754&r2=330
> 755&view=diff
> ==========================================================================
> ====
> --- llvm/trunk/utils/lit/lit/TestRunner.py (original)
> +++ llvm/trunk/utils/lit/lit/TestRunner.py Tue Apr 24 11:43:25 2018
> @@ -789,6 +789,13 @@ def _executeShCmd(cmd, shenv, results, t
> results.append(cmdResult)
> return cmdResult.exitCode
>
> + if cmd.commands[0].args[0] == ':':
> + if len(cmd.commands) != 1:
> + raise InternalShellError(cmd.commands[0], "Unsupported: ':' "
> + "cannot be part of a pipeline")
> + results.append(ShellCommandResult(cmd.commands[0], '', '', 0,
> False))
> + return 0;
> +
> procs = []
> default_stdin = subprocess.PIPE
> stderrTempFiles = []
> @@ -1318,7 +1325,8 @@ class IntegratedTestKeywordParser(object
> def parseLine(self, line_number, line):
> try:
> self.parsed_lines += [(line_number, line)]
> - self.value = self.parser(line_number, line, self.value)
> + self.value = self.parser(line_number, line, self.value,
> + self.keyword)
> except ValueError as e:
> raise ValueError(str(e) + ("\nin %s directive on test line
> %d" %
> (self.keyword, line_number)))
> @@ -1327,12 +1335,12 @@ class IntegratedTestKeywordParser(object
> return self.value
>
> @staticmethod
> - def _handleTag(line_number, line, output):
> + def _handleTag(line_number, line, output, keyword):
> """A helper for parsing TAG type keywords"""
> return (not line.strip() or output)
>
> @staticmethod
> - def _handleCommand(line_number, line, output):
> + def _handleCommand(line_number, line, output, keyword):
> """A helper for parsing COMMAND type keywords"""
> # Trim trailing whitespace.
> line = line.rstrip()
> @@ -1351,11 +1359,15 @@ class IntegratedTestKeywordParser(object
> else:
> if output is None:
> output = []
> + line = ": '{keyword} at line {line}'; {real_command}".format(
> + keyword=keyword,
> + line=line_number,
> + real_command=line)
> output.append(line)
> return output
>
> @staticmethod
> - def _handleList(line_number, line, output):
> + def _handleList(line_number, line, output, keyword):
> """A parser for LIST type keywords"""
> if output is None:
> output = []
> @@ -1363,7 +1375,7 @@ class IntegratedTestKeywordParser(object
> return output
>
> @staticmethod
> - def _handleBooleanExpr(line_number, line, output):
> + def _handleBooleanExpr(line_number, line, output, keyword):
> """A parser for BOOLEAN_EXPR type keywords"""
> if output is None:
> output = []
> @@ -1376,17 +1388,18 @@ class IntegratedTestKeywordParser(object
> return output
>
> @staticmethod
> - def _handleRequiresAny(line_number, line, output):
> + def _handleRequiresAny(line_number, line, output, keyword):
> """A custom parser to transform REQUIRES-ANY: into REQUIRES:"""
>
> # Extract the conditions specified in REQUIRES-ANY: as written.
> conditions = []
> - IntegratedTestKeywordParser._handleList(line_number, line,
> conditions)
> + IntegratedTestKeywordParser._handleList(line_number, line,
> conditions,
> + keyword)
>
> # Output a `REQUIRES: a || b || c` expression in its place.
> expression = ' || '.join(conditions)
> - IntegratedTestKeywordParser._handleBooleanExpr(line_number,
> - expression,
> output)
> + IntegratedTestKeywordParser._handleBooleanExpr(line_number,
> expression,
> + output, keyword)
> return output
>
> def parseIntegratedTestScript(test, additional_parsers=[],
>
> Added: llvm/trunk/utils/lit/tests/Inputs/shtest-run-at-line/external-
> shell/basic.txt
> URL: http://llvm.org/viewvc/llvm-
> project/llvm/trunk/utils/lit/tests/Inputs/shtest-run-at-line/external-
> shell/basic.txt?rev=330755&view=auto
> ==========================================================================
> ====
> --- llvm/trunk/utils/lit/tests/Inputs/shtest-run-at-line/external-
> shell/basic.txt (added)
> +++ llvm/trunk/utils/lit/tests/Inputs/shtest-run-at-line/external-
> shell/basic.txt Tue Apr 24 11:43:25 2018
> @@ -0,0 +1,3 @@
> +# RUN: true
> +# RUN: false
> +# RUN: true
>
> Added: llvm/trunk/utils/lit/tests/Inputs/shtest-run-at-line/external-
> shell/line-continuation.txt
> URL: http://llvm.org/viewvc/llvm-
> project/llvm/trunk/utils/lit/tests/Inputs/shtest-run-at-line/external-
> shell/line-continuation.txt?rev=330755&view=auto
> ==========================================================================
> ====
> --- llvm/trunk/utils/lit/tests/Inputs/shtest-run-at-line/external-
> shell/line-continuation.txt (added)
> +++ llvm/trunk/utils/lit/tests/Inputs/shtest-run-at-line/external-
> shell/line-continuation.txt Tue Apr 24 11:43:25 2018
> @@ -0,0 +1,11 @@
> +# RUN: : first line continued \
> +# RUN: to second line
> +# RUN: echo 'foo bar' \
> +# RUN: | FileCheck %s
> +# RUN: echo \
> +# RUN: 'foo baz' \
> +# RUN: | FileCheck %s
> +# RUN: echo 'foo bar' \
> +# RUN: | FileCheck %s
> +
> +# CHECK: foo bar
>
> Added: llvm/trunk/utils/lit/tests/Inputs/shtest-run-at-line/external-
> shell/lit.local.cfg
> URL: http://llvm.org/viewvc/llvm-
> project/llvm/trunk/utils/lit/tests/Inputs/shtest-run-at-line/external-
> shell/lit.local.cfg?rev=330755&view=auto
> ==========================================================================
> ====
> --- llvm/trunk/utils/lit/tests/Inputs/shtest-run-at-line/external-
> shell/lit.local.cfg (added)
> +++ llvm/trunk/utils/lit/tests/Inputs/shtest-run-at-line/external-
> shell/lit.local.cfg Tue Apr 24 11:43:25 2018
> @@ -0,0 +1,2 @@
> +import lit.formats
> +config.test_format = lit.formats.ShTest(execute_external=True)
>
> Added: llvm/trunk/utils/lit/tests/Inputs/shtest-run-at-line/internal-
> shell/basic.txt
> URL: http://llvm.org/viewvc/llvm-
> project/llvm/trunk/utils/lit/tests/Inputs/shtest-run-at-line/internal-
> shell/basic.txt?rev=330755&view=auto
> ==========================================================================
> ====
> --- llvm/trunk/utils/lit/tests/Inputs/shtest-run-at-line/internal-
> shell/basic.txt (added)
> +++ llvm/trunk/utils/lit/tests/Inputs/shtest-run-at-line/internal-
> shell/basic.txt Tue Apr 24 11:43:25 2018
> @@ -0,0 +1,3 @@
> +# RUN: true
> +# RUN: false
> +# RUN: true
>
> Added: llvm/trunk/utils/lit/tests/Inputs/shtest-run-at-line/internal-
> shell/line-continuation.txt
> URL: http://llvm.org/viewvc/llvm-
> project/llvm/trunk/utils/lit/tests/Inputs/shtest-run-at-line/internal-
> shell/line-continuation.txt?rev=330755&view=auto
> ==========================================================================
> ====
> --- llvm/trunk/utils/lit/tests/Inputs/shtest-run-at-line/internal-
> shell/line-continuation.txt (added)
> +++ llvm/trunk/utils/lit/tests/Inputs/shtest-run-at-line/internal-
> shell/line-continuation.txt Tue Apr 24 11:43:25 2018
> @@ -0,0 +1,11 @@
> +# RUN: : first line continued \
> +# RUN: to second line
> +# RUN: echo 'foo bar' \
> +# RUN: | FileCheck %s
> +# RUN: echo \
> +# RUN: 'foo baz' \
> +# RUN: | FileCheck %s
> +# RUN: echo 'foo bar' \
> +# RUN: | FileCheck %s
> +
> +# CHECK: foo bar
>
> Added: llvm/trunk/utils/lit/tests/Inputs/shtest-run-at-line/internal-
> shell/lit.local.cfg
> URL: http://llvm.org/viewvc/llvm-
> project/llvm/trunk/utils/lit/tests/Inputs/shtest-run-at-line/internal-
> shell/lit.local.cfg?rev=330755&view=auto
> ==========================================================================
> ====
> --- llvm/trunk/utils/lit/tests/Inputs/shtest-run-at-line/internal-
> shell/lit.local.cfg (added)
> +++ llvm/trunk/utils/lit/tests/Inputs/shtest-run-at-line/internal-
> shell/lit.local.cfg Tue Apr 24 11:43:25 2018
> @@ -0,0 +1,2 @@
> +import lit.formats
> +config.test_format = lit.formats.ShTest(execute_external=False)
>
> Added: llvm/trunk/utils/lit/tests/Inputs/shtest-run-at-line/lit.cfg
> URL: http://llvm.org/viewvc/llvm-
> project/llvm/trunk/utils/lit/tests/Inputs/shtest-run-at-
> line/lit.cfg?rev=330755&view=auto
> ==========================================================================
> ====
> --- llvm/trunk/utils/lit/tests/Inputs/shtest-run-at-line/lit.cfg (added)
> +++ llvm/trunk/utils/lit/tests/Inputs/shtest-run-at-line/lit.cfg Tue Apr
> 24 11:43:25 2018
> @@ -0,0 +1,3 @@
> +import lit.formats
> +config.name = 'shtest-run-at-line'
> +config.suffixes = ['.txt']
>
> Added: llvm/trunk/utils/lit/tests/Inputs/shtest-shell/colon-error.txt
> URL: http://llvm.org/viewvc/llvm-
> project/llvm/trunk/utils/lit/tests/Inputs/shtest-shell/colon-
> error.txt?rev=330755&view=auto
> ==========================================================================
> ====
> --- llvm/trunk/utils/lit/tests/Inputs/shtest-shell/colon-error.txt (added)
> +++ llvm/trunk/utils/lit/tests/Inputs/shtest-shell/colon-error.txt Tue Apr
> 24 11:43:25 2018
> @@ -0,0 +1,3 @@
> +# Check error on an unsupported ":". (cannot be part of a pipeline)
> +#
> +# RUN: : | echo "hello"
>
> Modified: llvm/trunk/utils/lit/tests/max-failures.py
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/utils/lit/tests/max-
> failures.py?rev=330755&r1=330754&r2=330755&view=diff
> ==========================================================================
> ====
> --- llvm/trunk/utils/lit/tests/max-failures.py (original)
> +++ llvm/trunk/utils/lit/tests/max-failures.py Tue Apr 24 11:43:25 2018
> @@ -8,7 +8,7 @@
> #
> # END.
>
> -# CHECK: Failing Tests (26)
> +# CHECK: Failing Tests (27)
> # CHECK: Failing Tests (1)
> # CHECK: Failing Tests (2)
> # CHECK: error: Setting --max-failures to 0 does not have any effect.
>
> Modified: llvm/trunk/utils/lit/tests/shtest-format.py
> URL: http://llvm.org/viewvc/llvm-
> project/llvm/trunk/utils/lit/tests/shtest-
> format.py?rev=330755&r1=330754&r2=330755&view=diff
> ==========================================================================
> ====
> --- llvm/trunk/utils/lit/tests/shtest-format.py (original)
> +++ llvm/trunk/utils/lit/tests/shtest-format.py Tue Apr 24 11:43:25 2018
> @@ -39,6 +39,7 @@
> #
> # CHECK: Command Output (stdout):
> # CHECK-NEXT: --
> +# CHECK-NEXT: $ ":" "RUN: at line 1"
> # CHECK-NEXT: $ "printf"
> # CHECK-NEXT: # command output:
> # CHECK-NEXT: line 1: failed test output on stdout
>
> Modified: llvm/trunk/utils/lit/tests/shtest-output-printing.py
> URL: http://llvm.org/viewvc/llvm-
> project/llvm/trunk/utils/lit/tests/shtest-output-
> printing.py?rev=330755&r1=330754&r2=330755&view=diff
> ==========================================================================
> ====
> --- llvm/trunk/utils/lit/tests/shtest-output-printing.py (original)
> +++ llvm/trunk/utils/lit/tests/shtest-output-printing.py Tue Apr 24
> 11:43:25 2018
> @@ -16,12 +16,15 @@
> #
> # CHECK: Command Output
> # CHECK-NEXT: --
> +# CHECK-NEXT: $ ":" "RUN: at line 1"
> # CHECK-NEXT: $ "true"
> +# CHECK-NEXT: $ ":" "RUN: at line 2"
> # CHECK-NEXT: $ "echo" "hi"
> # CHECK-NEXT: # command output:
> # CHECK-NEXT: hi
> #
> -# CHECK: $ "wc" "missing-file"
> +# CHECK: $ ":" "RUN: at line 3"
> +# CHECK-NEXT: $ "wc" "missing-file"
> # CHECK-NEXT: # redirected output from '{{.*(/|\\\\)}}basic.txt.tmp.out':
> # CHECK-NEXT: missing-file{{.*}} No such file or directory
> # CHECK: note: command had no output on stdout or stderr
>
> Added: llvm/trunk/utils/lit/tests/shtest-run-at-line.py
> URL: http://llvm.org/viewvc/llvm-
> project/llvm/trunk/utils/lit/tests/shtest-run-at-
> line.py?rev=330755&view=auto
> ==========================================================================
> ====
> --- llvm/trunk/utils/lit/tests/shtest-run-at-line.py (added)
> +++ llvm/trunk/utils/lit/tests/shtest-run-at-line.py Tue Apr 24 11:43:25
> 2018
> @@ -0,0 +1,74 @@
> +# Check that -vv makes the line number of the failing RUN command clear.
> +# (-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 %s
> +#
> +# END.
> +
> +
> +# CHECK: Testing: 4 tests
> +
> +
> +# In the case of the external shell, we check for only RUN lines in
> stderr in
> +# case some shell implementations format "set -x" output differently.
> +
> +# CHECK-LABEL: FAIL: shtest-run-at-line :: external-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: Command Output (stderr)
> +# CHECK: RUN: at line 1
> +# CHECK: RUN: at line 2
> +# CHECK-NOT: RUN
> +
> +# CHECK-LABEL: FAIL: shtest-run-at-line :: external-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: Command Output (stderr)
> +# CHECK: RUN: at line 1
> +# CHECK: RUN: at line 3
> +# CHECK: RUN: at line 5
> +# CHECK-NOT: RUN
> +
> +
> +# 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: Command Output (stdout)
> +# CHECK: $ ":" "RUN: at line 1"
> +# CHECK-NEXT: $ "true"
> +# CHECK-NEXT: $ ":" "RUN: at line 2"
> +# CHECK-NEXT: $ "false"
> +# CHECK-NOT: RUN
> +
> +# 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: Command Output (stdout)
> +# CHECK: $ ":" "RUN: at line 1"
> +# CHECK-NEXT: $ ":" "first" "line" "continued" "to" "second" "line"
> +# CHECK-NEXT: $ ":" "RUN: at line 3"
> +# CHECK-NEXT: $ "echo" "foo bar"
> +# CHECK-NEXT: $ "FileCheck" "{{.*}}"
> +# CHECK-NEXT: $ ":" "RUN: at line 5"
> +# CHECK-NEXT: $ "echo" "foo baz"
> +# CHECK-NEXT: $ "FileCheck" "{{.*}}"
> +# CHECK-NOT: RUN
>
> Modified: llvm/trunk/utils/lit/tests/shtest-shell.py
> URL: http://llvm.org/viewvc/llvm-
> project/llvm/trunk/utils/lit/tests/shtest-
> shell.py?rev=330755&r1=330754&r2=330755&view=diff
> ==========================================================================
> ====
> --- llvm/trunk/utils/lit/tests/shtest-shell.py (original)
> +++ llvm/trunk/utils/lit/tests/shtest-shell.py Tue Apr 24 11:43:25 2018
> @@ -26,6 +26,14 @@
> # CHECK: error: command failed with exit status: 1
> # CHECK: ***
>
> +# CHECK: FAIL: shtest-shell :: colon-error.txt
> +# CHECK: *** TEST 'shtest-shell :: colon-error.txt' FAILED ***
> +# CHECK: $ ":"
> +# CHECK: # command stderr:
> +# CHECK: Unsupported: ':' cannot be part of a pipeline
> +# CHECK: error: command failed with exit status: 127
> +# CHECK: ***
> +
> # CHECK: FAIL: shtest-shell :: diff-error-0.txt
> # CHECK: *** TEST 'shtest-shell :: diff-error-0.txt' FAILED ***
> # CHECK: $ "diff" "diff-error-0.txt" "diff-error-0.txt"
> @@ -153,7 +161,7 @@
> #
> # CHECK: FAIL: shtest-shell :: error-1.txt
> # CHECK: *** TEST 'shtest-shell :: error-1.txt' FAILED ***
> -# CHECK: shell parser error on: 'echo "missing quote'
> +# CHECK: shell parser error on: ': \'RUN: at line 3\'; echo "missing
> quote'
> # CHECK: ***
>
> # CHECK: FAIL: shtest-shell :: error-2.txt
> @@ -219,4 +227,4 @@
> # CHECK: PASS: shtest-shell :: sequencing-0.txt
> # CHECK: XFAIL: shtest-shell :: sequencing-1.txt
> # CHECK: PASS: shtest-shell :: valid-shell.txt
> -# CHECK: Failing Tests (26)
> +# CHECK: Failing Tests (27)
>
> Modified: llvm/trunk/utils/lit/tests/unit/TestRunner.py
> URL: http://llvm.org/viewvc/llvm-
> project/llvm/trunk/utils/lit/tests/unit/TestRunner.py?rev=330755&r1=330754
> &r2=330755&view=diff
> ==========================================================================
> ====
> --- llvm/trunk/utils/lit/tests/unit/TestRunner.py (original)
> +++ llvm/trunk/utils/lit/tests/unit/TestRunner.py Tue Apr 24 11:43:25 2018
> @@ -47,7 +47,7 @@ class TestIntegratedTestKeywordParser(un
>
> @staticmethod
> def make_parsers():
> - def custom_parse(line_number, line, output):
> + def custom_parse(line_number, line, output, keyword):
> if output is None:
> output = []
> output += [part for part in line.split(' ') if part.strip()]
> @@ -99,8 +99,8 @@ class TestIntegratedTestKeywordParser(un
> 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(), 'baz')
> - self.assertEqual(value[1].strip(), 'foo bar')
> + self.assertEqual(value[0].strip(), ": 'MY_RUN: at line 4'; baz")
> + self.assertEqual(value[1].strip(), ": 'MY_RUN: at line 7'; foo
> bar")
>
> def test_custom(self):
> parsers = self.make_parsers()
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
More information about the llvm-commits
mailing list