[libc++][libc++abi] Add tests for vendor-specific properties
authorLouis Dionne <ldionne.2@gmail.com>
Tue, 28 Sep 2021 19:54:41 +0000 (15:54 -0400)
committerLouis Dionne <ldionne.2@gmail.com>
Wed, 29 Sep 2021 21:22:37 +0000 (17:22 -0400)
commit9892d1644f62cf8f5133ee0d2ebafb56f6500cc1
tree59b19a16f0b35ac6fd3084f58c9f26303abe0b7f
parentaf10d6f350ff3e92c6ffae66cc9dac36884cdd55
[libc++][libc++abi] 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++.

Differential Revision: https://reviews.llvm.org/D110736
23 files changed:
libcxx/cmake/caches/Apple.cmake
libcxx/test/configs/legacy.cfg.in
libcxx/test/configs/libcxx-trunk-shared.cfg.in
libcxx/test/configs/libcxx-trunk-static.cfg.in
libcxx/test/libcxx/vendor/apple/system-install-properties.sh.cpp [new file with mode: 0644]
libcxx/test/std/strings/c.strings/cuchar.pass.cpp
libcxx/test/std/utilities/charconv/charconv.from.chars/integral.bool.fail.cpp
libcxx/test/std/utilities/charconv/charconv.from.chars/integral.pass.cpp
libcxx/test/std/utilities/charconv/charconv.from.chars/integral.roundtrip.pass.cpp
libcxx/test/std/utilities/charconv/charconv.to.chars/integral.bool.fail.cpp
libcxx/test/std/utilities/charconv/charconv.to.chars/integral.pass.cpp
libcxx/test/std/utilities/function.objects/func.search/func.search.bm/default.pass.cpp
libcxx/test/std/utilities/function.objects/func.search/func.search.bm/hash.pass.cpp
libcxx/test/std/utilities/function.objects/func.search/func.search.bm/hash.pred.pass.cpp
libcxx/test/std/utilities/function.objects/func.search/func.search.bm/pred.pass.cpp
libcxx/test/std/utilities/function.objects/func.search/func.search.bmh/default.pass.cpp
libcxx/test/std/utilities/function.objects/func.search/func.search.bmh/hash.pass.cpp
libcxx/test/std/utilities/function.objects/func.search/func.search.bmh/hash.pred.pass.cpp
libcxx/test/std/utilities/function.objects/func.search/func.search.bmh/pred.pass.cpp
libcxx/utils/libcxx/test/config.py
libcxx/utils/libcxx/test/params.py
libcxxabi/test/lit.site.cfg.in
libcxxabi/test/vendor/apple/system-install-properties.sh.cpp [new file with mode: 0644]