llvm-project/libcxxabi/test
Louis Dionne 80a2ddf65c [libc++] Add an alternative Lit test format
This new test format is simpler and more flexible. It creates Lit ShTests
on the fly that reuse existing substitutions (like %{cxx}) instead of
having complex logic in Python to run the tests. This has the benefit
that virtually no coding is required to customize how the test suite is
run -- one can achieve pretty much anything by defining the appropriate
substitutions in a simple lit.cfg file.

For example, in order to run the tests on an embedded device after
building with a specific SDK, one can set the %{cxx} and %{compile_flags}
substitutions to use that SDK, and the %{exec} substitution to the ssh.py
script currently used for .sh.cpp tests with a remote executor. Dealing with
the SSHExecutor becomes unnecessary, since all tests are treated like ShTests.

As a side effect of this design, configuration files for the test
suite can be as simple as:

	config.substitutions.append(('%{cxx}', '<path-to-compiler>'))
	config.substitutions.append(('%{compile_flags}', '<flags>'))
	config.substitutions.append(('%{link_flags}', '<flags>'))
	config.substitutions.append(('%{exec}', '<script-to-execute>'))

This should allow storing lit.cfg files for various configurations
directly in the repository instead of relying on complicated logic
in config.py to set up the right flags. I've found numerous problems
in that logic in the past years, and it seems like having simple and
explicit configuration files for the configurations we support is
going to solve most of these problems. Specifically, I am hoping to
store configuration files for testing other Standard Libraries in
the repository.

Improving the interaction with the test suite configuration is still a
work in progress, so for now this test format reuses the substitutions and
available features that are set up by the current config.py.

This new test format should support pretty much everything that the current
test format supports, however it will not be enabled by default at first to
make sure we're satisfied with it. For a short period of time, the new format
will require `--param=use_new_format=True` to be enabled, however it is a very
short term goal to replace the current testing format entirely and to simplify
the configuration accordingly.

Differential Revision: https://reviews.llvm.org/D77338
2020-04-03 11:35:27 -04:00
..
libcxxabi [libc++abi] Remove unused lit feature 2020-03-26 13:14:51 -04:00
native/arm-linux-eabi [libc++/libc++abi] Properly delimit lit substitutions 2020-03-27 10:27:38 -04:00
support small follow-up to r368604 2019-08-12 19:19:29 +00:00
CMakeLists.txt Remove legacy CMake targets for libcxx and libcxxabi 2020-03-30 09:45:21 -04:00
backtrace_test.pass.cpp Update more file headers across all of the LLVM projects in the monorepo 2019-01-19 10:56:40 +00:00
catch_array_01.pass.cpp Update more file headers across all of the LLVM projects in the monorepo 2019-01-19 10:56:40 +00:00
catch_array_02.pass.cpp Update more file headers across all of the LLVM projects in the monorepo 2019-01-19 10:56:40 +00:00
catch_class_01.pass.cpp Update more file headers across all of the LLVM projects in the monorepo 2019-01-19 10:56:40 +00:00
catch_class_02.pass.cpp Update more file headers across all of the LLVM projects in the monorepo 2019-01-19 10:56:40 +00:00
catch_class_03.pass.cpp Update more file headers across all of the LLVM projects in the monorepo 2019-01-19 10:56:40 +00:00
catch_class_04.pass.cpp Update more file headers across all of the LLVM projects in the monorepo 2019-01-19 10:56:40 +00:00
catch_const_pointer_nullptr.pass.cpp Update more file headers across all of the LLVM projects in the monorepo 2019-01-19 10:56:40 +00:00
catch_function_01.pass.cpp Update more file headers across all of the LLVM projects in the monorepo 2019-01-19 10:56:40 +00:00
catch_function_02.pass.cpp Update more file headers across all of the LLVM projects in the monorepo 2019-01-19 10:56:40 +00:00
catch_function_03.pass.cpp Update more file headers across all of the LLVM projects in the monorepo 2019-01-19 10:56:40 +00:00
catch_in_noexcept.pass.cpp Update more file headers across all of the LLVM projects in the monorepo 2019-01-19 10:56:40 +00:00
catch_member_data_pointer_01.pass.cpp Update more file headers across all of the LLVM projects in the monorepo 2019-01-19 10:56:40 +00:00
catch_member_function_pointer_01.pass.cpp Update more file headers across all of the LLVM projects in the monorepo 2019-01-19 10:56:40 +00:00
catch_member_function_pointer_02.pass.cpp Update XFAIL list for new GCC versions 2019-09-13 18:43:29 +00:00
catch_member_pointer_nullptr.pass.cpp Update more file headers across all of the LLVM projects in the monorepo 2019-01-19 10:56:40 +00:00
catch_multi_level_pointer.pass.cpp Update more file headers across all of the LLVM projects in the monorepo 2019-01-19 10:56:40 +00:00
catch_pointer_nullptr.pass.cpp Update more file headers across all of the LLVM projects in the monorepo 2019-01-19 10:56:40 +00:00
catch_pointer_reference.pass.cpp Update more file headers across all of the LLVM projects in the monorepo 2019-01-19 10:56:40 +00:00
catch_ptr.pass.cpp Update more file headers across all of the LLVM projects in the monorepo 2019-01-19 10:56:40 +00:00
catch_ptr_02.pass.cpp Update more file headers across all of the LLVM projects in the monorepo 2019-01-19 10:56:40 +00:00
catch_reference_nullptr.pass.cpp Update more file headers across all of the LLVM projects in the monorepo 2019-01-19 10:56:40 +00:00
cxa_bad_cast.pass.cpp Update more file headers across all of the LLVM projects in the monorepo 2019-01-19 10:56:40 +00:00
cxa_bad_typeid.pass.cpp Update more file headers across all of the LLVM projects in the monorepo 2019-01-19 10:56:40 +00:00
cxa_thread_atexit_test.pass.cpp Update more file headers across all of the LLVM projects in the monorepo 2019-01-19 10:56:40 +00:00
cxa_vec_new_overflow_PR41395.pass.cpp Fix PR41395 - __cxa_vec_new may overflow in allocation size calculation. 2019-04-05 20:38:43 +00:00
dynamic_cast.pass.cpp Update more file headers across all of the LLVM projects in the monorepo 2019-01-19 10:56:40 +00:00
dynamic_cast3.pass.cpp libcxxabi: Rename .hpp files to .h 2019-08-12 19:11:23 +00:00
dynamic_cast5.pass.cpp libcxxabi: Rename .hpp files to .h 2019-08-12 19:11:23 +00:00
dynamic_cast14.pass.cpp libcxxabi: Rename .hpp files to .h 2019-08-12 19:11:23 +00:00
dynamic_cast_stress.pass.cpp libcxxabi: Rename .hpp files to .h 2019-08-12 19:11:23 +00:00
exception_object_alignment.2.pass.cpp [libcxxabi] Add a test for invalid assumptions on the alignment of exceptions 2019-05-17 14:53:29 +00:00
exception_object_alignment.pass.cpp Update more file headers across all of the LLVM projects in the monorepo 2019-01-19 10:56:40 +00:00
guard_test_basic.pass.cpp [libc++][libc++abi] Fix or suppress failing tests in single-threaded 2020-01-19 21:49:14 -05:00
guard_threaded_test.pass.cpp Attempt to fix flaky tests. 2019-05-02 13:22:55 +00:00
incomplete_type.sh.cpp [libc++abi] Fix remote execution of .sh.cpp tests 2020-04-01 10:09:07 -04:00
inherited_exception.pass.cpp Update more file headers across all of the LLVM projects in the monorepo 2019-01-19 10:56:40 +00:00
lit.cfg [libc++] Add an alternative Lit test format 2020-04-03 11:35:27 -04:00
lit.site.cfg.in [libcxxabi] Allow tests to link with static libc++abi/libc++ even if the shared version is present 2020-01-09 19:01:57 +03:00
noexception1.pass.cpp Update more file headers across all of the LLVM projects in the monorepo 2019-01-19 10:56:40 +00:00
noexception2.pass.cpp Update more file headers across all of the LLVM projects in the monorepo 2019-01-19 10:56:40 +00:00
noexception3.pass.cpp Update more file headers across all of the LLVM projects in the monorepo 2019-01-19 10:56:40 +00:00
noexception4.pass.cpp Update more file headers across all of the LLVM projects in the monorepo 2019-01-19 10:56:40 +00:00
test_aux_runtime.pass.cpp Update more file headers across all of the LLVM projects in the monorepo 2019-01-19 10:56:40 +00:00
test_aux_runtime_op_array_new.pass.cpp Update more file headers across all of the LLVM projects in the monorepo 2019-01-19 10:56:40 +00:00
test_demangle.pass.cpp [libcxxabi] NFC: Fix trivial typos in comments 2020-01-22 11:36:31 +08:00
test_exception_address_alignment.pass.cpp Update more file headers across all of the LLVM projects in the monorepo 2019-01-19 10:56:40 +00:00
test_exception_storage.pass.cpp libcxxabi: Rename .hpp files to .h 2019-08-12 19:11:23 +00:00
test_fallback_malloc.pass.cpp Update more file headers across all of the LLVM projects in the monorepo 2019-01-19 10:56:40 +00:00
test_guard.pass.cpp Update more file headers across all of the LLVM projects in the monorepo 2019-01-19 10:56:40 +00:00
test_vector1.pass.cpp Update more file headers across all of the LLVM projects in the monorepo 2019-01-19 10:56:40 +00:00
test_vector2.pass.cpp Update more file headers across all of the LLVM projects in the monorepo 2019-01-19 10:56:40 +00:00
test_vector3.pass.cpp Update more file headers across all of the LLVM projects in the monorepo 2019-01-19 10:56:40 +00:00
thread_local_destruction_order.pass.cpp Update more file headers across all of the LLVM projects in the monorepo 2019-01-19 10:56:40 +00:00
uncaught_exception.pass.cpp [libc++abi] Don't use a .sh.cpp test for uncaught_exception 2019-04-23 00:03:34 +00:00
uncaught_exceptions.pass.cpp [libc++] Make sure we re-export some missing libc++abi symbols from libc++ 2019-04-18 17:18:15 +00:00
unittest_demangle.pass.cpp Update more file headers across all of the LLVM projects in the monorepo 2019-01-19 10:56:40 +00:00
unwind_01.pass.cpp Update more file headers across all of the LLVM projects in the monorepo 2019-01-19 10:56:40 +00:00
unwind_02.pass.cpp Update more file headers across all of the LLVM projects in the monorepo 2019-01-19 10:56:40 +00:00
unwind_03.pass.cpp Update more file headers across all of the LLVM projects in the monorepo 2019-01-19 10:56:40 +00:00
unwind_04.pass.cpp Update more file headers across all of the LLVM projects in the monorepo 2019-01-19 10:56:40 +00:00
unwind_05.pass.cpp Update more file headers across all of the LLVM projects in the monorepo 2019-01-19 10:56:40 +00:00
unwind_06.pass.cpp P1152R4: Fix deprecation warnings in libc++ testsuite and in uses of is_invocable that would internally conjure up a deprecated function type. 2019-10-19 00:06:00 +00:00