Description
Description
This issue lists improvements in Apple mobile infrastructure and test coverage. The tasks are categorized into four main areas: test coverage, reliability, scalability, and monitoring.
Expand runtime tests coverage
The primary goal is to align test coverage with the production environments, ensuring validation across all scenarios. Currently, only legacy runtime tests are executed on Apple mobile platforms using the interpreter, with a subset of smoke tests executed with Native AOT. The library and functional tests utilize the Mono AOT compiler. List of tasks:
- Document and implement test environment that reflects production usage for runtime, library, and functional tests
- Enable building runtime, library, and functional tests locally with a single command
- Improve Mono test coverage
- [Apple mobile] Use merged runners for runtime tests #107118
- Implement Xunit runtime tests coverage using Mono runtime
- [mono][ios] Add a functional test for testing
SIGSEGV
signal chaining to default handler on iOS platforms #111150
- Improve Native AOT test coverage
- Update Native AOT pipeline to run merged tests
- Enable building/running libraries tests on iOS simulator and device with NativeAOT #81075
- [infra] Implement XHarness test discovery/running without the XunitFrontController #91871
- Enable building/running libraries tests on iOS simulator and device with NativeAOT #81075
- [NativeAOT] Enable running libraries and functional tests locally and on CI #93447
- [nativeaot][maccat] Add Native AOT runtime tests coverage on maccatalyst platforms #89437
- Investigate how we can configure NativeAOT runtime tests to include
Microsoft.NET.Sdk.props
and with itMicrosoft.NETCoreSdk.BundledVersions.props
which definesNETCoreSdkPortableRuntimeIdentifier
- [mono][ios] Missing support for building native libraries as part of tests #92129
Scalability
The primary goal is to improve the overall test build and execution speed. List of tasks:
- iOS runtime tests should use just-run xharness command instead of run #95060
- [infra] Enable trimming on Helix for Apple mobile #100669
- Enable trimming of runtime tests
- Enable fullAOT compilation ([mono][ios] Enable fullAOT mode for runtime tests #92523)
- [ios] Add support for multiple app bundles in the runtime pipeline for a test directory #89917
- Reduce test coverage redundancy between Apple mobile jobs and other non-mobile jobs
- [infra] Exclude 0-test groups to reduce the number of machines allocated on Helix #98213
Reliability
The primary goal is to establish a stable infrastructure environment for test execution. List of tasks:
- [tvos][test] mlaunch exited with 0, when test passed #95862
- [NativeAOT] Simplify build integration with external bundlers for Apple platforms #87187
- Failed USB connection via port 54050, error 61, in tvOS arm64 Release AllSubsets_Mono #82637
- Rename all the *.props, *.targets explicitly related to compilation on Helix - see comment
- Improve error and stacktrace logging
- Builds on Helix should not reuse
publish
folder for different builds tasks - see comment
Monitoring
- Add llvm check similar to this https://github.com/dotnet/runtime/pull/92644/files#diff-058f1e9bc8e4b23fb2d85884c92317671d13ecccb1cafa95f0f6c6430a600423 to the fullAOT jobs
The primary goal of monitoring should be enabling effective triage of active issues and tracking the reliability of tests and infrastructure over time. A list of tasks will be added.