[libcxx] r215883 - [libcxx] Add UNSUPPORTED tag to lit. It mirrors REQUIRES.

Eric Fiselier eric at efcs.ca
Sun Aug 17 23:43:06 PDT 2014


Author: ericwf
Date: Mon Aug 18 01:43:06 2014
New Revision: 215883

URL: http://llvm.org/viewvc/llvm-project?rev=215883&view=rev
Log:
[libcxx] Add UNSUPPORTED tag to lit. It mirrors REQUIRES.

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

Modified:
    libcxx/trunk/test/lit.cfg

Modified: libcxx/trunk/test/lit.cfg
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/lit.cfg?rev=215883&r1=215882&r2=215883&view=diff
==============================================================================
--- libcxx/trunk/test/lit.cfg (original)
+++ libcxx/trunk/test/lit.cfg Mon Aug 18 01:43:06 2014
@@ -64,6 +64,7 @@ class LibcxxTestFormat(lit.formats.FileB
     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:
@@ -72,6 +73,9 @@ class LibcxxTestFormat(lit.formats.FileB
                 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.
@@ -89,6 +93,13 @@ class LibcxxTestFormat(lit.formats.FileB
                     "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)
 





More information about the cfe-commits mailing list