diff options
author | Eric Fiselier <eric@efcs.ca> | 2016-12-05 23:16:07 +0000 |
---|---|---|
committer | Eric Fiselier <eric@efcs.ca> | 2016-12-05 23:16:07 +0000 |
commit | daf21c3f69f14507d12f2350592171151d480758 (patch) | |
tree | 6fe6aed895bfda00ae237424caad7b963c1b555b /libcxx/test/std/thread | |
parent | 800638fd67c05ca48317ef2ed28cefc5a685f0f3 (diff) | |
download | bcm5719-llvm-daf21c3f69f14507d12f2350592171151d480758.tar.gz bcm5719-llvm-daf21c3f69f14507d12f2350592171151d480758.zip |
Adjust libc++ test infastructure to fully support modules
This patch overhalls the libc++ test format/configuration in order to fully support modules. By "fully support" I mean get almost all of the tests passing. The main hurdle for doing this is handling tests that `#define _LIBCPP_FOO` macros to test a different configuration. This patch deals with these tests in the following ways:
1. For tests that define single `_LIBCPP_ABI_FOO` macros have been annotated with `// MODULES_DEFINES: _LIBCPP_ABI_FOO`. This allows the test suite to define the macro on the command line so it uses a different set of modules.
2. Tests for libc++'s debug mode (which define custom `_LIBCPP_ASSERT`) are automatically detected by the test suite and are compiled and run with modules disabled.
This patch also cleans up how the `CXXCompiler` helper class handles enabling/disabling language features.
NOTE: This patch uses `LIT` features which were only committed to LLVM today. If this patch breaks running the libc++ tests you probably need to update LLVM.
llvm-svn: 288728
Diffstat (limited to 'libcxx/test/std/thread')
22 files changed, 22 insertions, 39 deletions
diff --git a/libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.guard/variadic_adopt_lock.pass.cpp b/libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.guard/variadic_adopt_lock.pass.cpp index 1bf06bde1a4..81fc0d368f6 100644 --- a/libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.guard/variadic_adopt_lock.pass.cpp +++ b/libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.guard/variadic_adopt_lock.pass.cpp @@ -10,16 +10,13 @@ // UNSUPPORTED: libcpp-has-no-threads // UNSUPPORTED: c++98, c++03 -// FIXME: When modules are enabled we can't affect the contents of <mutex> -// by defining a macro -// XFAIL: -fmodules - // <mutex> // template <class ...Mutex> class lock_guard; // lock_guard(Mutex&..., adopt_lock_t); +// MODULES_DEFINES: _LIBCPP_ABI_VARIADIC_LOCK_GUARD #define _LIBCPP_ABI_VARIADIC_LOCK_GUARD #include <mutex> #include <cassert> diff --git a/libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.guard/variadic_assign.fail.cpp b/libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.guard/variadic_assign.fail.cpp index b3770fd97a1..1b4c9d4bfd5 100644 --- a/libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.guard/variadic_assign.fail.cpp +++ b/libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.guard/variadic_assign.fail.cpp @@ -10,16 +10,13 @@ // UNSUPPORTED: libcpp-has-no-threads // UNSUPPORTED: c++98, c++03 -// FIXME: When modules are enabled we can't affect the contents of <mutex> -// by defining a macro -// XFAIL: -fmodules - // <mutex> // template <class ...Mutex> class lock_guard; // lock_guard& operator=(lock_guard const&) = delete; +// MODULES_DEFINES: _LIBCPP_ABI_VARIADIC_LOCK_GUARD #define _LIBCPP_ABI_VARIADIC_LOCK_GUARD #include <mutex> diff --git a/libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.guard/variadic_copy.fail.cpp b/libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.guard/variadic_copy.fail.cpp index 13c30553d0e..c7fd0e94b77 100644 --- a/libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.guard/variadic_copy.fail.cpp +++ b/libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.guard/variadic_copy.fail.cpp @@ -10,16 +10,13 @@ // UNSUPPORTED: libcpp-has-no-threads // UNSUPPORTED: c++98, c++03 -// FIXME: When modules are enabled we can't affect the contents of <mutex> -// by defining a macro -// XFAIL: -fmodules - // <mutex> // template <class ...Mutex> class lock_guard; // lock_guard(lock_guard const&) = delete; +// MODULES_DEFINES: _LIBCPP_ABI_VARIADIC_LOCK_GUARD #define _LIBCPP_ABI_VARIADIC_LOCK_GUARD #include <mutex> diff --git a/libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.guard/variadic_mutex.fail.cpp b/libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.guard/variadic_mutex.fail.cpp index 7c3c98b6aca..1eef7e268fb 100644 --- a/libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.guard/variadic_mutex.fail.cpp +++ b/libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.guard/variadic_mutex.fail.cpp @@ -10,16 +10,13 @@ // UNSUPPORTED: libcpp-has-no-threads // UNSUPPORTED: c++98, c++03 -// FIXME: When modules are enabled we can't affect the contents of <mutex> -// by defining a macro -// XFAIL: -fmodules - // <mutex> // template <class ...Mutex> class lock_guard; // explicit lock_guard(Mutex&...); +// MODULES_DEFINES: _LIBCPP_ABI_VARIADIC_LOCK_GUARD #define _LIBCPP_ABI_VARIADIC_LOCK_GUARD #include <mutex> diff --git a/libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.guard/variadic_mutex.pass.cpp b/libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.guard/variadic_mutex.pass.cpp index ffb46cd2a9a..8d83ddf98c6 100644 --- a/libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.guard/variadic_mutex.pass.cpp +++ b/libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.guard/variadic_mutex.pass.cpp @@ -10,16 +10,13 @@ // UNSUPPORTED: libcpp-has-no-threads // UNSUPPORTED: c++98, c++03 -// FIXME: When modules are enabled we can't affect the contents of <mutex> -// by defining a macro -// XFAIL: -fmodules - // <mutex> // template <class ...Mutex> class lock_guard; // explicit lock_guard(mutex_type& m); +// MODULES_DEFINES: _LIBCPP_ABI_VARIADIC_LOCK_GUARD #define _LIBCPP_ABI_VARIADIC_LOCK_GUARD #include <mutex> #include <cassert> diff --git a/libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.guard/variadic_mutex_cxx03.pass.cpp b/libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.guard/variadic_mutex_cxx03.pass.cpp index d37968de772..0ad16e2856f 100644 --- a/libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.guard/variadic_mutex_cxx03.pass.cpp +++ b/libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.guard/variadic_mutex_cxx03.pass.cpp @@ -16,5 +16,6 @@ // dialects, including C++03, even though it is forward declared using // variadic templates. +// MODULES_DEFINES: _LIBCPP_ABI_VARIADIC_LOCK_GUARD #define _LIBCPP_ABI_VARIADIC_LOCK_GUARD #include "mutex.pass.cpp" // Use the existing non-variadic test diff --git a/libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.guard/variadic_types.pass.cpp b/libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.guard/variadic_types.pass.cpp index 21de6bfe2cc..600399d9793 100644 --- a/libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.guard/variadic_types.pass.cpp +++ b/libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.guard/variadic_types.pass.cpp @@ -10,10 +10,6 @@ // UNSUPPORTED: libcpp-has-no-threads // UNSUPPORTED: c++98, c++03 -// FIXME: When modules are enabled we can't affect the contents of <mutex> -// by defining a macro -// XFAIL: -fmodules - // <mutex> // template <class Mutex> @@ -24,6 +20,7 @@ // ... // }; +// MODULES_DEFINES: _LIBCPP_ABI_VARIADIC_LOCK_GUARD #define _LIBCPP_ABI_VARIADIC_LOCK_GUARD #include <mutex> #include <type_traits> diff --git a/libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.cons/mutex.pass.cpp b/libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.cons/mutex.pass.cpp index 7f5177328dc..f9a537085c3 100644 --- a/libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.cons/mutex.pass.cpp +++ b/libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.cons/mutex.pass.cpp @@ -10,7 +10,7 @@ // UNSUPPORTED: libcpp-has-no-threads // UNSUPPORTED: c++98, c++03, c++11 -// FLAKY_TEST +// FLAKY_TEST. // <shared_mutex> diff --git a/libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.cons/mutex_duration.pass.cpp b/libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.cons/mutex_duration.pass.cpp index 8e1d096edef..839e12dba68 100644 --- a/libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.cons/mutex_duration.pass.cpp +++ b/libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.cons/mutex_duration.pass.cpp @@ -10,7 +10,7 @@ // UNSUPPORTED: libcpp-has-no-threads // UNSUPPORTED: c++98, c++03, c++11 -// FLAKY_TEST +// FLAKY_TEST. // <shared_mutex> diff --git a/libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.cons/mutex_time_point.pass.cpp b/libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.cons/mutex_time_point.pass.cpp index 482e6e5d6a8..9401cea2ed1 100644 --- a/libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.cons/mutex_time_point.pass.cpp +++ b/libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.cons/mutex_time_point.pass.cpp @@ -10,7 +10,7 @@ // UNSUPPORTED: libcpp-has-no-threads // UNSUPPORTED: c++98, c++03, c++11 -// FLAKY_TEST +// FLAKY_TEST. // <shared_mutex> diff --git a/libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.unique/thread.lock.unique.cons/mutex_duration.pass.cpp b/libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.unique/thread.lock.unique.cons/mutex_duration.pass.cpp index 851eb3df0de..0939a579264 100644 --- a/libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.unique/thread.lock.unique.cons/mutex_duration.pass.cpp +++ b/libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.unique/thread.lock.unique.cons/mutex_duration.pass.cpp @@ -9,7 +9,7 @@ // // UNSUPPORTED: libcpp-has-no-threads -// FLAKY_TEST +// FLAKY_TEST. // <mutex> diff --git a/libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.unique/thread.lock.unique.cons/mutex_time_point.pass.cpp b/libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.unique/thread.lock.unique.cons/mutex_time_point.pass.cpp index ad81f8c9892..ceb29370182 100644 --- a/libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.unique/thread.lock.unique.cons/mutex_time_point.pass.cpp +++ b/libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.unique/thread.lock.unique.cons/mutex_time_point.pass.cpp @@ -9,7 +9,7 @@ // // UNSUPPORTED: libcpp-has-no-threads -// FLAKY_TEST +// FLAKY_TEST. // <mutex> diff --git a/libcxx/test/std/thread/thread.mutex/thread.mutex.requirements/thread.shared_mutex.requirements/thread.shared_mutex.class/lock.pass.cpp b/libcxx/test/std/thread/thread.mutex/thread.mutex.requirements/thread.shared_mutex.requirements/thread.shared_mutex.class/lock.pass.cpp index e8f91bcf066..0a6d6e3683e 100644 --- a/libcxx/test/std/thread/thread.mutex/thread.mutex.requirements/thread.shared_mutex.requirements/thread.shared_mutex.class/lock.pass.cpp +++ b/libcxx/test/std/thread/thread.mutex/thread.mutex.requirements/thread.shared_mutex.requirements/thread.shared_mutex.class/lock.pass.cpp @@ -10,7 +10,7 @@ // UNSUPPORTED: libcpp-has-no-threads // UNSUPPORTED: c++03, c++98, c++11, c++14 -// FLAKY_TEST +// FLAKY_TEST. // <shared_mutex> diff --git a/libcxx/test/std/thread/thread.mutex/thread.mutex.requirements/thread.shared_mutex.requirements/thread.shared_mutex.class/lock_shared.pass.cpp b/libcxx/test/std/thread/thread.mutex/thread.mutex.requirements/thread.shared_mutex.requirements/thread.shared_mutex.class/lock_shared.pass.cpp index b94089b77c9..b7edc50978d 100644 --- a/libcxx/test/std/thread/thread.mutex/thread.mutex.requirements/thread.shared_mutex.requirements/thread.shared_mutex.class/lock_shared.pass.cpp +++ b/libcxx/test/std/thread/thread.mutex/thread.mutex.requirements/thread.shared_mutex.requirements/thread.shared_mutex.class/lock_shared.pass.cpp @@ -10,7 +10,7 @@ // UNSUPPORTED: libcpp-has-no-threads // UNSUPPORTED: c++03, c++98, c++11, c++14 -// FLAKY_TEST +// FLAKY_TEST. // <shared_mutex> diff --git a/libcxx/test/std/thread/thread.mutex/thread.mutex.requirements/thread.shared_mutex.requirements/thread.shared_mutex.class/try_lock_shared.pass.cpp b/libcxx/test/std/thread/thread.mutex/thread.mutex.requirements/thread.shared_mutex.requirements/thread.shared_mutex.class/try_lock_shared.pass.cpp index 69dac5dd246..f615981bc94 100644 --- a/libcxx/test/std/thread/thread.mutex/thread.mutex.requirements/thread.shared_mutex.requirements/thread.shared_mutex.class/try_lock_shared.pass.cpp +++ b/libcxx/test/std/thread/thread.mutex/thread.mutex.requirements/thread.shared_mutex.requirements/thread.shared_mutex.class/try_lock_shared.pass.cpp @@ -10,7 +10,7 @@ // UNSUPPORTED: libcpp-has-no-threads // UNSUPPORTED: c++03, c++98, c++11, c++14 -// FLAKY_TEST +// FLAKY_TEST. // <shared_mutex> diff --git a/libcxx/test/std/thread/thread.mutex/thread.mutex.requirements/thread.sharedtimedmutex.requirements/thread.sharedtimedmutex.class/lock.pass.cpp b/libcxx/test/std/thread/thread.mutex/thread.mutex.requirements/thread.sharedtimedmutex.requirements/thread.sharedtimedmutex.class/lock.pass.cpp index 8f4e4908c8e..83979d4c4e5 100644 --- a/libcxx/test/std/thread/thread.mutex/thread.mutex.requirements/thread.sharedtimedmutex.requirements/thread.sharedtimedmutex.class/lock.pass.cpp +++ b/libcxx/test/std/thread/thread.mutex/thread.mutex.requirements/thread.sharedtimedmutex.requirements/thread.sharedtimedmutex.class/lock.pass.cpp @@ -10,7 +10,7 @@ // UNSUPPORTED: libcpp-has-no-threads // UNSUPPORTED: c++03, c++98, c++11 -// FLAKY_TEST +// FLAKY_TEST. // <shared_mutex> diff --git a/libcxx/test/std/thread/thread.mutex/thread.mutex.requirements/thread.sharedtimedmutex.requirements/thread.sharedtimedmutex.class/lock_shared.pass.cpp b/libcxx/test/std/thread/thread.mutex/thread.mutex.requirements/thread.sharedtimedmutex.requirements/thread.sharedtimedmutex.class/lock_shared.pass.cpp index 1a06f61b628..516f4319258 100644 --- a/libcxx/test/std/thread/thread.mutex/thread.mutex.requirements/thread.sharedtimedmutex.requirements/thread.sharedtimedmutex.class/lock_shared.pass.cpp +++ b/libcxx/test/std/thread/thread.mutex/thread.mutex.requirements/thread.sharedtimedmutex.requirements/thread.sharedtimedmutex.class/lock_shared.pass.cpp @@ -10,7 +10,7 @@ // UNSUPPORTED: libcpp-has-no-threads // UNSUPPORTED: c++03, c++98, c++11 -// FLAKY_TEST +// FLAKY_TEST. // <shared_mutex> diff --git a/libcxx/test/std/thread/thread.mutex/thread.mutex.requirements/thread.sharedtimedmutex.requirements/thread.sharedtimedmutex.class/try_lock_for.pass.cpp b/libcxx/test/std/thread/thread.mutex/thread.mutex.requirements/thread.sharedtimedmutex.requirements/thread.sharedtimedmutex.class/try_lock_for.pass.cpp index 024ed66b169..3d36911889b 100644 --- a/libcxx/test/std/thread/thread.mutex/thread.mutex.requirements/thread.sharedtimedmutex.requirements/thread.sharedtimedmutex.class/try_lock_for.pass.cpp +++ b/libcxx/test/std/thread/thread.mutex/thread.mutex.requirements/thread.sharedtimedmutex.requirements/thread.sharedtimedmutex.class/try_lock_for.pass.cpp @@ -10,7 +10,7 @@ // UNSUPPORTED: libcpp-has-no-threads // UNSUPPORTED: c++03, c++98, c++11 -// FLAKY_TEST +// FLAKY_TEST. // <shared_mutex> diff --git a/libcxx/test/std/thread/thread.mutex/thread.mutex.requirements/thread.sharedtimedmutex.requirements/thread.sharedtimedmutex.class/try_lock_shared.pass.cpp b/libcxx/test/std/thread/thread.mutex/thread.mutex.requirements/thread.sharedtimedmutex.requirements/thread.sharedtimedmutex.class/try_lock_shared.pass.cpp index 3a78d7bd79c..452fc3c19d6 100644 --- a/libcxx/test/std/thread/thread.mutex/thread.mutex.requirements/thread.sharedtimedmutex.requirements/thread.sharedtimedmutex.class/try_lock_shared.pass.cpp +++ b/libcxx/test/std/thread/thread.mutex/thread.mutex.requirements/thread.sharedtimedmutex.requirements/thread.sharedtimedmutex.class/try_lock_shared.pass.cpp @@ -10,7 +10,7 @@ // UNSUPPORTED: libcpp-has-no-threads // UNSUPPORTED: c++03, c++98, c++11 -// FLAKY_TEST +// FLAKY_TEST. // <shared_mutex> diff --git a/libcxx/test/std/thread/thread.mutex/thread.mutex.requirements/thread.sharedtimedmutex.requirements/thread.sharedtimedmutex.class/try_lock_shared_for.pass.cpp b/libcxx/test/std/thread/thread.mutex/thread.mutex.requirements/thread.sharedtimedmutex.requirements/thread.sharedtimedmutex.class/try_lock_shared_for.pass.cpp index 4c1bef310c5..f478a29367a 100644 --- a/libcxx/test/std/thread/thread.mutex/thread.mutex.requirements/thread.sharedtimedmutex.requirements/thread.sharedtimedmutex.class/try_lock_shared_for.pass.cpp +++ b/libcxx/test/std/thread/thread.mutex/thread.mutex.requirements/thread.sharedtimedmutex.requirements/thread.sharedtimedmutex.class/try_lock_shared_for.pass.cpp @@ -10,7 +10,7 @@ // UNSUPPORTED: libcpp-has-no-threads // UNSUPPORTED: c++03, c++98, c++11 -// FLAKY_TEST +// FLAKY_TEST. // <shared_mutex> diff --git a/libcxx/test/std/thread/thread.mutex/thread.mutex.requirements/thread.sharedtimedmutex.requirements/thread.sharedtimedmutex.class/try_lock_shared_until.pass.cpp b/libcxx/test/std/thread/thread.mutex/thread.mutex.requirements/thread.sharedtimedmutex.requirements/thread.sharedtimedmutex.class/try_lock_shared_until.pass.cpp index be0d0ca416c..f33edfc1a53 100644 --- a/libcxx/test/std/thread/thread.mutex/thread.mutex.requirements/thread.sharedtimedmutex.requirements/thread.sharedtimedmutex.class/try_lock_shared_until.pass.cpp +++ b/libcxx/test/std/thread/thread.mutex/thread.mutex.requirements/thread.sharedtimedmutex.requirements/thread.sharedtimedmutex.class/try_lock_shared_until.pass.cpp @@ -10,7 +10,7 @@ // UNSUPPORTED: libcpp-has-no-threads // UNSUPPORTED: c++03, c++98, c++11 -// FLAKY_TEST +// FLAKY_TEST. // <shared_mutex> diff --git a/libcxx/test/std/thread/thread.mutex/thread.mutex.requirements/thread.sharedtimedmutex.requirements/thread.sharedtimedmutex.class/try_lock_until.pass.cpp b/libcxx/test/std/thread/thread.mutex/thread.mutex.requirements/thread.sharedtimedmutex.requirements/thread.sharedtimedmutex.class/try_lock_until.pass.cpp index 1f4f352025e..d5715c76f45 100644 --- a/libcxx/test/std/thread/thread.mutex/thread.mutex.requirements/thread.sharedtimedmutex.requirements/thread.sharedtimedmutex.class/try_lock_until.pass.cpp +++ b/libcxx/test/std/thread/thread.mutex/thread.mutex.requirements/thread.sharedtimedmutex.requirements/thread.sharedtimedmutex.class/try_lock_until.pass.cpp @@ -10,7 +10,7 @@ // UNSUPPORTED: libcpp-has-no-threads // UNSUPPORTED: c++03, c++98, c++11 -// FLAKY_TEST +// FLAKY_TEST. // <shared_mutex> |