Instead, use the `%target-swift-5.1-abi-triple` substitution to compile the tests
for deployment to the minimum OS versions required for use of _Concurrency APIs.
* Enable running tests from test/Concurrency/ directory in freestanding/minimal presets
* Mark failing Concurrency tests as XFAIL/SKIP on freestanding/minimal
Change the order of paths provided for `DYLD_LIBRARY_PATH` when running
tests for the back-deployed concurrency library, so they supersede the
ones in `/usr/lib/swift`. This way, we can test the back-deployed
concurrency library even on OS's that have the concurrency library in
them. It's not a complete test, because the standard library and
runtime will still vary, but can reproduce many failures more easily.
When using the back-deployed concurrency library, set the lit feature
`back_deploy_concurrency`. Update some tests that are unsupported with
back-deployment to check this.
Finally, add some logging when the concurrency runtime cannot be
tested at all, to help with debugging CI in the future.
We won't look for async functions that can't be used due to availability
unless the availability checking is disabled. Need to disable the
availability checking due to the minimum deploy target being too low for
concurrency.
These were previously disabled due to the UB that caused the tests to
fail. Now that this has been fixed, restore these tests to running
state in line with the other targets.
The concurrency runtime now deploys back to macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, which corresponds to the 5.1 release of the stdlib.
Adjust macro usages accordingly.
The back-deployed concurrency libraries and older Swift runtimes are
not compatible, so turn off runtime exclusivity checking when running on
older systems. Fixes rdar://84274148.
Certain traps can't be supported on WASI, such as expectations for crashes, `setjmp` use, dynamic linking, multi-threading etc. These tests are marked as `UNSUPPORTED` when targeting Wasm/WASI.
Rather than blanket-disabling concurrency tests when we aren't using a
just-built concurrency library, enable them whenever we have a
suitable concurrency runtime, either just-built, in the OS, or via the
back-deployment libraries.
These tests do not use the Dispatch swift module. There is no need to
use the `%import-libdispatch` macro. This is required to try to enable
these tests on Windows.
The implemented semantics are that:
1. Tasks have separate exclusivity access sets.
2. Any synchronous context that creates tasks will have its exclusive access set
merged into the Tasks while the Task is running.
rdar://80492364