[llvm-commits] [llvm] r166224 - in /llvm/trunk: docs/TestingGuide.html utils/lit/lit/ExampleTests/xfail-feature.c utils/lit/lit/TestRunner.py
Chandler Carruth
chandlerc at google.com
Fri Oct 19 01:11:33 PDT 2012
On Thu, Oct 18, 2012 at 1:43 PM, Daniel Dunbar <daniel at zuster.org> wrote:
> Author: ddunbar
> Date: Thu Oct 18 15:43:04 2012
> New Revision: 166224
>
> URL: http://llvm.org/viewvc/llvm-project?rev=166224&view=rev
> Log:
> lit: Allow XFAIL: lines to also refer to "features".
>
What's the motivation for this patch?
I would much rather continue to use directory structures and/or REQUIRES to
represent feature differences. This seems to add still more complexity to
the interface for writing a lit tests, and I'm worried about that already
and so interested in scrutinizing the use cases here....
>
> Added:
> llvm/trunk/utils/lit/lit/ExampleTests/xfail-feature.c
> Modified:
> llvm/trunk/docs/TestingGuide.html
> llvm/trunk/utils/lit/lit/TestRunner.py
>
> Modified: llvm/trunk/docs/TestingGuide.html
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/docs/TestingGuide.html?rev=166224&r1=166223&r2=166224&view=diff
>
> ==============================================================================
> --- llvm/trunk/docs/TestingGuide.html (original)
> +++ llvm/trunk/docs/TestingGuide.html Thu Oct 18 15:43:04 2012
> @@ -798,14 +798,15 @@
> <p>Sometimes it is necessary to mark a test case as "expected fail" or
> XFAIL.
> You can easily mark a test as XFAIL just by including <tt>XFAIL: </tt>
> on a
> line near the top of the file. This signals that the test case should
> succeed
> - if the test fails. Such test cases are counted separately by the
> testing tool. To
> - specify an expected fail, use the XFAIL keyword in the comments of the
> test
> - program followed by a colon and one or more regular expressions
> (separated by
> - a comma). The regular expressions allow you to XFAIL the test
> conditionally by
> - host platform. The regular expressions following the : are matched
> against the
> - target triplet for the host machine. If there is a match, the test is
> expected
> - to fail. If not, the test is expected to succeed. To XFAIL everywhere
> just
> - specify <tt>XFAIL: *</tt>. Here is an example of an <tt>XFAIL</tt>
> line:</p>
> + if the test fails. Such test cases are counted separately by the testing
> + tool. To specify an expected fail, use the XFAIL keyword in the
> comments of
> + the test program followed by a colon and one or more failure patterns.
> Each
> + failure pattern can be either '*' (to specify fail everywhere), or a
> part of a
> + target triple (indicating the test should fail on that platfomr), or
> the name
> + of a configurable feature (for example, "loadable_module").. If there
> is a
> + match, the test is expected to fail. If not, the test is expected to
> + succeed. To XFAIL everywhere just specify <tt>XFAIL: *</tt>. Here is an
> + example of an <tt>XFAIL</tt> line:</p>
>
> <div class="doc_code">
> <pre>
>
> Added: llvm/trunk/utils/lit/lit/ExampleTests/xfail-feature.c
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/utils/lit/lit/ExampleTests/xfail-feature.c?rev=166224&view=auto
>
> ==============================================================================
> --- llvm/trunk/utils/lit/lit/ExampleTests/xfail-feature.c (added)
> +++ llvm/trunk/utils/lit/lit/ExampleTests/xfail-feature.c Thu Oct 18
> 15:43:04 2012
> @@ -0,0 +1,4 @@
> +// This test should XPASS.
> +
> +// RUN: true
> +// XFAIL: some-feature-name
>
> Modified: llvm/trunk/utils/lit/lit/TestRunner.py
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/utils/lit/lit/TestRunner.py?rev=166224&r1=166223&r2=166224&view=diff
>
> ==============================================================================
> --- llvm/trunk/utils/lit/lit/TestRunner.py (original)
> +++ llvm/trunk/utils/lit/lit/TestRunner.py Thu Oct 18 15:43:04 2012
> @@ -370,10 +370,15 @@
>
> return executeCommand(command, cwd=cwd, env=test.config.environment)
>
> -def isExpectedFail(xfails, xtargets, target_triple):
> - # Check if any xfail matches this target.
> +def isExpectedFail(test, xfails, xtargets):
> + # If the xfail matches an available feature, it always fails.
> for item in xfails:
> - if item == '*' or item in target_triple:
> + if item in test.config.available_features:
> + return True
> +
> + # Otherwise, check if any xfail matches this target.
> + for item in xfails:
> + if item == '*' or item in test.suite.config.target_triple:
> break
> else:
> return False
> @@ -382,7 +387,7 @@
> #
> # FIXME: Rename XTARGET to something that makes sense, like XPASS.
> for item in xtargets:
> - if item == '*' or item in target_triple:
> + if item == '*' or item in test.suite.config.target_triple:
> return False
>
> return True
> @@ -491,7 +496,7 @@
> return (Test.UNSUPPORTED,
> "Test requires the following features: %s" % msg)
>
> - isXFail = isExpectedFail(xfails, xtargets,
> test.suite.config.target_triple)
> + isXFail = isExpectedFail(test, xfails, xtargets)
> return script,isXFail,tmpBase,execdir
>
> def formatTestOutput(status, out, err, exitCode, failDueToStderr, script):
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20121019/ca15a7ca/attachment.html>
More information about the llvm-commits
mailing list