[libc++] Create a small DSL for defining Lit features and parameters
authorLouis Dionne <ldionne@apple.com>
Fri, 17 Apr 2020 13:19:49 +0000 (09:19 -0400)
committerLouis Dionne <ldionne@apple.com>
Mon, 27 Apr 2020 13:56:04 +0000 (09:56 -0400)
commit6d58030c8c7d481d08a549246fd3103aceb61c7b
tree7727e8a9bde58f306b9ad0054c87bf45ac9b0b74
parent9671f6e8d5edb07cb0dd0bd38fc2c3d29960458f
[libc++] Create a small DSL for defining Lit features and parameters

This allows defining Lit features that can be enabled or disabled based
on compiler support, and parameters that are passed on the command line.

The main benefits are:
- Feature detection is entirely based on the substitutions provided in
  the TestingConfig object, which is simpler and decouples it from the
  complicated compiler emulation infrastructure.
- The syntax is declarative, which makes it easy to see what features
  and parameters are accepted by the test suite. This is significantly
  less entangled than the current config.py logic.
- Since feature detection is based on substitutions, it works really
  well on top of the new format, and custom Lit configurations can be
  created easily without being based on `config.py`.

Differential Revision: https://reviews.llvm.org/D78381
libcxx/test/libcxx/selftest/dsl/dsl.sh.py [new file with mode: 0644]
libcxx/test/libcxx/selftest/dsl/lit.local.cfg [new file with mode: 0644]
libcxx/utils/libcxx/test/dsl.py [new file with mode: 0644]