Skip to content

Commit

Permalink
[libcxx] Add UNSUPPORTED tag to lit. It mirrors REQUIRES.
Browse files Browse the repository at this point in the history
Summary:
This patch adds support for // UNSUPPORTED: feature. If an excluded feature is found in the list of available features then the test is marked unsupported.

I hope to use this to mark test unsupported if the fail with msan on asan. As well as tests that fail in particular standard modes.


Reviewers: mclow.lists, danalbert

Reviewed By: danalbert

Subscribers: cfe-commits

Differential Revision: http://reviews.llvm.org/D4950

llvm-svn: 215883
  • Loading branch information
EricWF committed Aug 18, 2014
1 parent cd6ac3a commit 339bdc3
Showing 1 changed file with 11 additions and 0 deletions.
11 changes: 11 additions & 0 deletions libcxx/test/lit.cfg
Expand Up @@ -64,6 +64,7 @@ class LibcxxTestFormat(lit.formats.FileBasedTest):
def _execute(self, test, lit_config):
# Extract test metadata from the test file.
requires = []
unsupported = []
with open(test.getSourcePath()) as f:
for ln in f:
if 'XFAIL:' in ln:
Expand All @@ -72,6 +73,9 @@ class LibcxxTestFormat(lit.formats.FileBasedTest):
elif 'REQUIRES:' in ln:
items = ln[ln.index('REQUIRES:') + 9:].split(',')
requires.extend([s.strip() for s in items])
elif 'UNSUPPORTED:' in ln:
items = ln[ln.index('UNSUPPORTED:') + 12:].split(',')
unsupported.extend([s.strip() for s in items])
elif not ln.strip().startswith("//") and ln.strip():
# Stop at the first non-empty line that is not a C++
# comment.
Expand All @@ -89,6 +93,13 @@ class LibcxxTestFormat(lit.formats.FileBasedTest):
"Test requires the following features: %s" % (
', '.join(missing_required_features),))

unsupported_features = [f for f in unsupported
if f in test.config.available_features]
if unsupported_features:
return (lit.Test.UNSUPPORTED,
"Test is unsupported with the following features: %s" % (
', '.join(unsupported_features),))

# Evaluate the test.
return self._evaluate_test(test, lit_config)

Expand Down

0 comments on commit 339bdc3

Please sign in to comment.