These are common utilities used when testing with lit, so it makes sense to
always include them so in these cases we can use them for testing purposes.
Build a separate compiler-rt instance for running the tests. It is built
and tested against an installed toolchain instead of the llvm-build-dir.
Install everything we need to run tests (CMake modules, FileCheck, etc.)
into the toolchain directory.
Add synthetic target 'all' for llvm-install-components. Also we must set
LLVM_INSTALL_UTILS=ON, so the utilities required by tests (e.g.,
FileCheck) are included in the install target.
LLDB's CMake build forces these values when building on MacOS. It seems
saner to me to set them in build-script than to force them in the CMake
configuration.
Merging the CoreFoundation build into the Foundation build results in
the build tree layout to change. Adjust the parameters for that to
allow a migration.
The manipulation of host-test and skip-android-host was a little
different than the equivalent skip-ios-host and similar variables. These
changes make them closer and allows executing only the compiler tests,
but skip the test that need an Android device to run.
- Disables the upload command of the tests if the subset is the
non-executable tests. The non-executable test do not need to be
uploaded, and in the case of Android, a device doesn't need to be
connected, so trying to connect to one will fail.
- Fix a problem where the swift_interpreter feature was removed without
first checking if it was really added.
- Only enable the host tests (the compiler tests) in the Android CI
preset (there's no device attached to that server, but currently only
the Linux tests were being executed, which doesn't make a lot of
sense).
- Move the decision about which platform support device/host tests into
the platform themselves, which allows Android to have device/host
tests. Also modify a little bit the logic around enabling/disabling
the test suite to allow running only the host tests of a platform.
- Fix the suffix name for the target of non-executable tests in a couple
of places.
I recently enabled TSan interceptors for libdispatch on non-Apple
platforms in upstream. This is on by default on Apple platforms. Let's
try to switch it on for other platforms too.
Some shell commands when building ICU weren't using call which handles
the dry-run parameter, and were trying to execute.
NOTE: there's some invocations to xcrun inside $() which are not using
dry-run, but since those are mostly query commands, and left them alone
(they don't work on Linux, but nobody should use those codepaths in
Linux).