From f14927e98e23a3c1806eeb12b89252c35e77c1ff Mon Sep 17 00:00:00 2001 From: Louis Dionne Date: Tue, 4 Dec 2018 19:31:08 +0000 Subject: [PATCH] [libcxx] Always enable availability in the lit test suite. Summary: 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. Reviewers: EricWF, mclow.lists Subscribers: christof, jkorous, dexonsmith, libcxx-commits Differential Revision: https://reviews.llvm.org/D55079 llvm-svn: 348296 --- libcxx/docs/DesignDocs/AvailabilityMarkup.rst | 6 ++---- libcxx/utils/libcxx/test/config.py | 13 +------------ 2 files changed, 3 insertions(+), 16 deletions(-) diff --git a/libcxx/docs/DesignDocs/AvailabilityMarkup.rst b/libcxx/docs/DesignDocs/AvailabilityMarkup.rst index 750798f..4ddef13 100644 --- a/libcxx/docs/DesignDocs/AvailabilityMarkup.rst +++ b/libcxx/docs/DesignDocs/AvailabilityMarkup.rst @@ -65,14 +65,12 @@ availability. 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 diff --git a/libcxx/utils/libcxx/test/config.py b/libcxx/utils/libcxx/test/config.py index 2d29dd4..bdedd51 100644 --- a/libcxx/utils/libcxx/test/config.py +++ b/libcxx/utils/libcxx/test/config.py @@ -133,7 +133,6 @@ class Configuration(object): 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 @@ class Configuration(object): 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 @@ class Configuration(object): 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 @@ class Configuration(object): 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') -- 2.7.4