[PATCH] D55079: [libcxx] Always enable availability in the lit test suite.

Louis Dionne via Phabricator reviews at reviews.llvm.org
Thu Nov 29 14:54:34 PST 2018


ldionne created this revision.
ldionne added reviewers: EricWF, mclow.lists.
Herald added subscribers: libcxx-commits, dexonsmith, jkorous, christof.

Running the tests without availability enabled doesn't really make sense:
availability annotations allow catching errors at compile-time instead
of link-time. Running the tests without availability enabled allows
confirming that a test breaks at link-time under some configuration,
but it is more useful to instead check that it should fail at compile-time.

Always enabling availability in the lit test suite will greatly simplify
XFAILs and troubleshooting of failing tests, which is currently a giant
pain because we have these two levels of possible failure: link-time and
compile-time.


Repository:
  rCXX libc++

https://reviews.llvm.org/D55079

Files:
  libcxx/docs/DesignDocs/AvailabilityMarkup.rst
  libcxx/utils/libcxx/test/config.py


Index: libcxx/utils/libcxx/test/config.py
===================================================================
--- libcxx/utils/libcxx/test/config.py
+++ libcxx/utils/libcxx/test/config.py
@@ -133,7 +133,6 @@
         self.configure_cxx()
         self.configure_triple()
         self.configure_deployment()
-        self.configure_availability()
         self.configure_src_root()
         self.configure_obj_root()
         self.configure_cxx_stdlib_under_test()
@@ -311,12 +310,6 @@
         self.lit_config.note(
             "inferred use_system_cxx_lib as: %r" % self.use_system_cxx_lib)
 
-    def configure_availability(self):
-        # See https://libcxx.llvm.org/docs/DesignDocs/AvailabilityMarkup.html
-        self.with_availability = self.get_lit_bool('with_availability', False)
-        self.lit_config.note(
-            "inferred with_availability as: %r" % self.with_availability)
-
     def configure_cxx_stdlib_under_test(self):
         self.cxx_stdlib_under_test = self.get_lit_conf(
             'cxx_stdlib_under_test', 'libc++')
@@ -414,11 +407,10 @@
                 self.add_deployment_feature('with_system_cxx_lib')
 
         # Configure the availability markup checks features.
-        if self.with_availability:
+        if self.use_deployment:
             self.config.available_features.add('availability_markup')
             self.add_deployment_feature('availability_markup')
 
-        if self.use_system_cxx_lib or self.with_availability:
             self.config.available_features.add('availability')
             self.add_deployment_feature('availability')
 
@@ -582,9 +574,6 @@
             self.cxx.flags += ['-arch', arch]
             self.cxx.flags += ['-m' + name + '-version-min=' + version]
 
-        # Disable availability unless explicitly requested
-        if not self.with_availability:
-            self.cxx.flags += ['-D_LIBCPP_DISABLE_AVAILABILITY']
         # FIXME(EricWF): variant_size.pass.cpp requires a slightly larger
         # template depth with older Clang versions.
         self.cxx.addFlagIfSupported('-ftemplate-depth=270')
Index: libcxx/docs/DesignDocs/AvailabilityMarkup.rst
===================================================================
--- libcxx/docs/DesignDocs/AvailabilityMarkup.rst
+++ libcxx/docs/DesignDocs/AvailabilityMarkup.rst
@@ -65,14 +65,12 @@
   the test-suite against the host system library. Alternatively a path to the
   directory containing a specific prebuilt libc++ can be used, for example:
   `--param=use_system_cxx_lib=/path/to/macOS/10.8/`.
-* The `with_availability` boolean parameter enables the availability markup.
 
 Tests can be marked as XFAIL based on multiple features made available by lit:
 
 
-* if either `use_system_cxx_lib` or `with_availability` is passed to lit,
-  assuming `--param=platform=macosx10.8` is passed as well the following
-  features will be available:
+* if `use_system_cxx_lib` is passed to lit, assuming `--param=platform=macosx10.8`
+  is passed as well the following features will be available:
 
   - availability
   - availability=x86_64


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D55079.175971.patch
Type: text/x-patch
Size: 3085 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/libcxx-commits/attachments/20181129/3b90e651/attachment.bin>


More information about the libcxx-commits mailing list