[libcxx] Simplify back-deployment testing
authorLouis Dionne <ldionne@apple.com>
Wed, 9 Sep 2020 20:14:56 +0000 (16:14 -0400)
committerLouis Dionne <ldionne@apple.com>
Thu, 10 Sep 2020 12:17:26 +0000 (08:17 -0400)
commitec46cfefe80d58cdc7068ad4e4f8efde6d94d835
treefe6d028991467d816671c79d632752b533792b46
parent8c0bbbade169d9fda6cac8f181660009599a7656
[libcxx] Simplify back-deployment testing

The needs of back-deployment testing currently require two different
ways of running the test suite: one based on the deployment target,
and one based on the target triple. Since the triple includes all the
information we need, it's better to have just one way of doing things.

Furthermore, `--param platform=XXX` is also supersedded by using the
target triple. Previously, this parameter would serve the purpose of
controling XFAILs for availability markup errors, however it is possible
to achieve the same thing by using with_system_cxx_lib only and using
.verify.cpp tests instead, as explained in the documentation changes.

The motivation for this change is twofold:
1. This part of the Lit config has always been really confusing and
   complicated, and it has been a source of bugs in the past. I have
   simplified it iteratively in the past, but the complexity is still
   there.
2. The deployment-target detection started failing in weird ways in
   recent Clangs, breaking our CI. Instead of band-aid patching the
   issue, I decided to remove the complexity altogether by using target
   triples even on Apple platforms.

A follow-up to this commit will bring the test suite in line with
the recommended way of handling availability markup tests.
libcxx/docs/DesignDocs/AvailabilityMarkup.rst
libcxx/test/configs/legacy.cfg.in
libcxx/utils/ci/macos-backdeployment.sh
libcxx/utils/libcxx/test/config.py
libcxx/utils/libcxx/test/target_info.py
libcxxabi/test/lit.site.cfg.in
libunwind/test/lit.site.cfg.in