Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[tests] Apple mobile test coverage improvements #84254

Open
4 of 26 tasks
kotlarmilos opened this issue Apr 3, 2023 · 2 comments
Open
4 of 26 tasks

[tests] Apple mobile test coverage improvements #84254

kotlarmilos opened this issue Apr 3, 2023 · 2 comments
Assignees
Labels
area-Infrastructure-mono os-ios Apple iOS tracking This issue is tracking the completion of other related issues.
Milestone

Comments

@kotlarmilos
Copy link
Member

kotlarmilos commented Apr 3, 2023

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:

Scalability

The primary goal is to improve the overall test build and execution speed. List of tasks:

Reliability

The primary goal is to establish a stable infrastructure environment for test execution. List of tasks:

Monitoring

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.

@kotlarmilos kotlarmilos added test-enhancement Improvements of test source code area-Infrastructure-mono os-ios Apple iOS labels Apr 3, 2023
@kotlarmilos kotlarmilos added this to the Future milestone Apr 3, 2023
@kotlarmilos kotlarmilos self-assigned this Apr 3, 2023
@ghost
Copy link

ghost commented Apr 3, 2023

Tagging subscribers to 'os-ios': @steveisok, @akoeplinger
See info in area-owners.md if you want to be subscribed.

Issue Details

Description

This issue aims to expand the coverage of iOS runtime tests and improve the build process.

Expand runtime tests coverage on iOS

Currently, only tracing/eventpipe is running on iOS/iOSSimulator using interpreter as a fallback. This issue aims to expand the coverage of iOS runtime tests by including other testing groups and enabling full AOT compilation.

Parallel AOT compilation

To improve build time, the AOT compilation could be moved to Helix and executed simultaneously before the test execution. Additionally, unifying AOT compilation in one target would improve code maintenance as several targets use MonoAOTCompiler and AppleAppBuilderTask tasks.

Split build and test execution

To mitigate various transient issues, build and test execution could be divided into separate steps. The test build should build the repository, create tests, and zip artifacts (as done in build-test-job.yml). The test execution should download the artifacts, unzip them, and send the tests to Helix for AOT compilation and execution (as done in run-test-job.yml).

Tasks

  • Identify other testing groups that could be executed on iOS/iOSSimulator and enable full AOT compilation for iOS/iOSSimulator tests
    • baseservices
    • JIT
    • GC
    • ilverify
    • Interop
    • Loader
    • tracing
  • Move AOT compilation to Helix and execute it in parallel with test execution
  • Unify AOT compilation to improve code maintenance
  • Separate build and test execution into separate builds
Author: kotlarmilos
Assignees: kotlarmilos
Labels:

test-enhancement, area-Infrastructure-mono, os-ios

Milestone: Future

@kotlarmilos
Copy link
Member Author

To mitigate various transient issues, build and test execution could be divided into separate steps. The test build should build the runtime and tests, and zip artifacts. The test execution should download the artifacts, unzip them, and send the tests to Helix for AOT compilation and execution. Additionally, a single build could be shared across runtime, library, and functional tests.

@steveisok I think you mentioned once this may not be a good approach. My assumption is that it may reduce costs and development time in cases when transient issues occur. What could be the potential downsides of such an approach? Are there some bottlenecks?

@kotlarmilos kotlarmilos changed the title [mono][tests] Enhance iOS runtime tests coverage [tests] Apple mobile test coverage improvements Feb 14, 2024
@kotlarmilos kotlarmilos added tracking This issue is tracking the completion of other related issues. and removed test-enhancement Improvements of test source code labels Feb 14, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area-Infrastructure-mono os-ios Apple iOS tracking This issue is tracking the completion of other related issues.
Projects
None yet
Development

No branches or pull requests

7 participants