llvm-project/libcxxabi/test
Louis Dionne f6a74908a7 [runtimes] Add tests for vendor-specific properties
Vendors take libc++ and ship it in various ways. Some vendors might
ship it differently from what upstream LLVM does, i.e. the install
location might be different, some ABI properties might differ, etc.

In the past few years, I've come across several instances where
having a place to test some of these properties would have been
incredibly useful. I also just got bitten by the lack of tests
of that kind, so I'm adding some now.

The tests added by this commit for Apple platforms have numerous
TODOs that capture discrepancies between the upstream LLVM CMake
and the slightly-modified build we perform internally to produce
Apple's system libc++. In the future, the goal would be to upstream
all those differences so that it's possible to build a faithful
Apple system libc++ with the upstream LLVM sources only.

But this isn't only useful for Apple - this lays out the path for
any vendor being able to add their own checks (either upstream or
downstream) to libc++.

This is a re-application of 9892d1644f, which was reverted in 138dc27186
because it broke the build. The issue was that we didn't apply the required
changes to libunwind and our CI didn't notice it because we were not
running the libunwind tests. This has been fixed now, and we're running
the libunwind tests in CI now too.

Differential Revision: https://reviews.llvm.org/D110736
2021-10-07 15:46:20 -04:00
..
libcxxabi [libc++abi] Remove unnecessary atomic_support.h header from libc++abi 2021-09-21 19:55:21 -04:00
native/arm-linux-eabi [libc++] Move handling of the target triple to the DSL 2021-05-08 11:10:53 -04:00
support [libc++/abi] Clean up uses of <iostream> in the test suite 2020-10-13 20:25:33 -04:00
vendor/apple [runtimes] Add tests for vendor-specific properties 2021-10-07 15:46:20 -04:00
CMakeLists.txt [runtimes] Simplify how we set the target triple 2021-07-16 10:33:39 -04:00
backtrace_test.pass.cpp [runtimes] Use int main(int, char**) consistently in tests 2020-10-08 14:28:13 -04:00
catch_array_01.pass.cpp [runtimes] Use int main(int, char**) consistently in tests 2020-10-08 14:28:13 -04:00
catch_array_02.pass.cpp [runtimes] Use int main(int, char**) consistently in tests 2020-10-08 14:28:13 -04:00
catch_class_01.pass.cpp [runtimes] Use int main(int, char**) consistently in tests 2020-10-08 14:28:13 -04:00
catch_class_02.pass.cpp [runtimes] Use int main(int, char**) consistently in tests 2020-10-08 14:28:13 -04:00
catch_class_03.pass.cpp [libc++abi] Remove workarounds for missing -Wno-exceptions on older GCCs 2021-09-03 14:23:28 -04:00
catch_class_04.pass.cpp [libc++abi] Remove workarounds for missing -Wno-exceptions on older GCCs 2021-09-03 14:23:28 -04:00
catch_const_pointer_nullptr.pass.cpp [runtimes] Use int main(int, char**) consistently in tests 2020-10-08 14:28:13 -04:00
catch_function_01.pass.cpp [runtimes] Simplify how we specify XFAIL & friends based on the triple 2021-07-01 14:03:30 -04:00
catch_function_02.pass.cpp [runtimes] Use int main(int, char**) consistently in tests 2020-10-08 14:28:13 -04:00
catch_function_03.pass.cpp [libc++/abi] Fix broken Lit feature no-noexcept-function-type 2021-07-15 14:42:07 -04:00
catch_in_noexcept.pass.cpp [runtimes] Use int main(int, char**) consistently in tests 2020-10-08 14:28:13 -04:00
catch_member_data_pointer_01.pass.cpp [runtimes] Simplify how we specify XFAIL & friends based on the triple 2021-07-01 14:03:30 -04:00
catch_member_function_pointer_01.pass.cpp [runtimes] Use int main(int, char**) consistently in tests 2020-10-08 14:28:13 -04:00
catch_member_function_pointer_02.pass.cpp [libc++] Remove Lit annotations for unsupported GCC versions from the test suite 2021-08-12 13:30:47 -04:00
catch_member_pointer_nullptr.pass.cpp [runtimes] Simplify how we specify XFAIL & friends based on the triple 2021-07-01 14:03:30 -04:00
catch_multi_level_pointer.pass.cpp [runtimes] Simplify how we specify XFAIL & friends based on the triple 2021-07-01 14:03:30 -04:00
catch_pointer_nullptr.pass.cpp [runtimes] Simplify how we specify XFAIL & friends based on the triple 2021-07-01 14:03:30 -04:00
catch_pointer_reference.pass.cpp [libc++abi] Get rid of warnings when running the tests with GCC 2020-11-02 10:19:39 -05:00
catch_ptr.pass.cpp [libc++abi] Remove workarounds for missing -Wno-exceptions on older GCCs 2021-09-03 14:23:28 -04:00
catch_ptr_02.pass.cpp [libc++abi] Remove workarounds for missing -Wno-exceptions on older GCCs 2021-09-03 14:23:28 -04:00
catch_reference_nullptr.pass.cpp [runtimes] Use int main(int, char**) consistently in tests 2020-10-08 14:28:13 -04:00
cxa_bad_cast.pass.cpp [libc++abi] Get rid of warnings when running the tests with GCC 2020-11-02 10:19:39 -05:00
cxa_bad_typeid.pass.cpp [libc++abi] Get rid of warnings when running the tests with GCC 2020-11-02 10:19:39 -05:00
cxa_thread_atexit_test.pass.cpp [runtimes] Use int main(int, char**) consistently in tests 2020-10-08 14:28:13 -04:00
cxa_vec_new_overflow_PR41395.pass.cpp [runtimes] Simplify how we specify XFAIL & friends based on the triple 2021-07-01 14:03:30 -04:00
dynamic_cast.pass.cpp [libc++] Remove more test-suite workarounds for unsupported GCC versions 2021-08-20 13:26:43 -04:00
dynamic_cast3.pass.cpp [libc++] Remove more test-suite workarounds for unsupported GCC versions 2021-08-20 13:26:43 -04:00
dynamic_cast5.pass.cpp [libc++] Remove more test-suite workarounds for unsupported GCC versions 2021-08-20 13:26:43 -04:00
dynamic_cast14.pass.cpp [runtimes] Use int main(int, char**) consistently in tests 2020-10-08 14:28:13 -04:00
dynamic_cast_stress.pass.cpp [runtimes] Use int main(int, char**) consistently in tests 2020-10-08 14:28:13 -04:00
exception_object_alignment.2.pass.cpp [runtimes] Use int main(int, char**) consistently in tests 2020-10-08 14:28:13 -04:00
exception_object_alignment.pass.cpp [runtimes] Simplify how we specify XFAIL & friends based on the triple 2021-07-01 14:03:30 -04:00
forced_unwind1.pass.cpp [Unwind] Harmonise exception class for EHABI spec. 2021-09-02 11:31:03 +02:00
forced_unwind2.pass.cpp [Unwind] Harmonise exception class for EHABI spec. 2021-09-02 11:31:03 +02:00
guard_test_basic.pass.cpp [libc++abi] Get rid of warnings when running the tests with GCC 2020-11-02 10:19:39 -05:00
guard_threaded_test.pass.cpp [libc++] Introduce an indirection to create threads in the test suite 2020-11-27 11:54:19 -05:00
incomplete_type.sh.cpp [runtimes] Simplify how we specify XFAIL & friends based on the triple 2021-07-01 14:03:30 -04:00
inherited_exception.pass.cpp [libc++abi] Remove workarounds for missing -Wno-exceptions on older GCCs 2021-09-03 14:23:28 -04:00
lit.cfg.py [libc++abi] Allow specifying custom Lit config files 2020-06-25 12:15:15 -04:00
lit.site.cfg.in [runtimes] Add tests for vendor-specific properties 2021-10-07 15:46:20 -04:00
noexception1.pass.cpp [libc++] Remove the c++98 Lit feature from the test suite 2020-06-03 09:37:22 -04:00
noexception2.pass.cpp [libc++] Remove the c++98 Lit feature from the test suite 2020-06-03 09:37:22 -04:00
noexception3.pass.cpp [libc++] Remove the c++98 Lit feature from the test suite 2020-06-03 09:37:22 -04:00
noexception4.pass.cpp [libc++/abi/unwind] Rename Lit features for no exceptions to 'no-exceptions' 2020-04-22 08:25:27 -04:00
test_aux_runtime.pass.cpp [libc++/abi] Clean up uses of <iostream> in the test suite 2020-10-13 20:25:33 -04:00
test_aux_runtime_op_array_new.pass.cpp [runtimes] Simplify how we specify XFAIL & friends based on the triple 2021-07-01 14:03:30 -04:00
test_demangle.pass.cpp [demangle] Support for ISO/IEC TS 18661 binary floating point type 2021-09-23 11:02:58 +08:00
test_exception_address_alignment.pass.cpp [libc++] Remove test-suite annotations for unsupported Clang versions 2021-08-20 15:05:13 -04:00
test_exception_storage.pass.cpp [libcxxabi] Stub out 'sleep' call when _LIBCXXABI_HAS_NO_THREADS is defined. 2020-10-21 20:56:24 +01:00
test_fallback_malloc.pass.cpp [libcxxabi] Fix printf formats in a test. 2020-10-16 13:59:11 +01:00
test_guard.pass.cpp [libc++] Introduce an indirection to create threads in the test suite 2020-11-27 11:54:19 -05:00
test_vector1.pass.cpp [libc++/abi] Clean up uses of <iostream> in the test suite 2020-10-13 20:25:33 -04:00
test_vector2.pass.cpp [libc++/abi] Clean up uses of <iostream> in the test suite 2020-10-13 20:25:33 -04:00
test_vector3.pass.cpp [libc++abi] Get rid of warnings when running the tests with GCC 2020-11-02 10:19:39 -05:00
thread_local_destruction_order.pass.cpp [libc++] Add a CI job for macOS on arm64 hardware 🥳 2021-07-13 13:49:05 -04:00
uncaught_exception.pass.cpp [libc++/abi/unwind] Rename Lit features for no exceptions to 'no-exceptions' 2020-04-22 08:25:27 -04:00
uncaught_exceptions.pass.cpp [runtimes] Simplify how we specify XFAIL & friends based on the triple 2021-07-01 14:03:30 -04:00
unittest_demangle.pass.cpp [runtimes] Use int main(int, char**) consistently in tests 2020-10-08 14:28:13 -04:00
unwind_01.pass.cpp [runtimes] Use int main(int, char**) consistently in tests 2020-10-08 14:28:13 -04:00
unwind_02.pass.cpp [libc++] Add a job running GCC with C++11 2021-07-15 22:13:03 -04:00
unwind_03.pass.cpp [libc++] Add a job running GCC with C++11 2021-07-15 22:13:03 -04:00
unwind_04.pass.cpp [libc++] Add a job running GCC with C++11 2021-07-15 22:13:03 -04:00
unwind_05.pass.cpp [libc++] Add a job running GCC with C++11 2021-07-15 22:13:03 -04:00
unwind_06.pass.cpp [libc++] Remove more test-suite workarounds for unsupported GCC versions 2021-08-20 13:26:43 -04:00