Repository navigation
Conversation
🔗 Helpful Links🧪 See artifacts and rendered test results at hud.pytorch.org/pr/pytorch/executorch/24650
Note: Links to docs will display an error until the docs builds have been completed. ❌ 1 New Failure, 7 Unrelated Failures, 3 Unclassified FailuresAs of commit f7fbd58 with merge base 0b776dd ( NEW FAILURE - The following job has failed:
UNCLASSIFIED FAILURES - DrCI could not classify the following jobs because the workflow did not run on the merge base. The failures may be pre-existing on trunk or introduced by this PR:
BROKEN TRUNK - The following jobs failed but were present on the merge base:👉 Rebase onto the `viable/strict` branch to avoid these failures
This comment was automatically generated by Dr. CI and updates every 15 minutes. |
|
@psiddh has exported this pull request. If you are a Meta employee, you can view the originating Diff in D129513640. |
This PR needs a
|
There was a problem hiding this comment.
🟢 Approval recommended
No active review issues are identified for the Android instrumentation CI hardening and functional/performance suite separation.
No open issues 🎉
What changed in this PR
This PR hardens ExecuTorch’s Android instrumentation CI and separates routine functional coverage from nightly LLM performance checks.
Changes:
- Require a nonempty passing suite and exactly one successful terminal result, with bounded execution and diagnostics that preserve the test status.
- Run functional tests for ordinary changes and performance tests nightly, while retaining full coverage for release, manual, and default reusable-workflow calls.
- Add harness and workflow regression tests without changing required check names.
| File | Description |
|---|---|
scripts/run_android_emulator.sh |
Adds suite selection, timeouts, strict result validation, and exit diagnostics. |
.github/workflows/pull.yml |
Selects functional or full coverage based on the triggering event and branch. |
.github/workflows/nightly.yml |
Adds a separate Android performance lane. |
.github/workflows/_android.yml |
Adds suite inputs, harness tests, execution limits, and diagnostic uploads. |
.ci/scripts/tests/test_run_android_emulator.py |
Covers harness outcomes, timeout behavior, diagnostics, and workflow routing. |
Review effort: Balanced
…orch#24650) Summary: Android instrumentation can report success without a completed passing suite, and unbounded device waits can prevent useful diagnostics. Require a nonempty passing summary and one successful terminal result, bound transport and execution phases, and retain diagnostics without masking the original test status. Keep functional instrumentation blocking ordinary changes while running LLM performance checks in a separate nightly lane. Release pushes, release-targeted pull requests, manual runs, and default reusable-workflow calls retain full coverage. Required check names and branch protection are unchanged. Differential Revision: D129513640
1baa005 to
4e4c3b9
Compare
…orch#24650) Summary: Android instrumentation can report success without a completed passing suite, and unbounded device waits can prevent useful diagnostics. Require a nonempty passing summary and one successful terminal result, bound transport and execution phases, and retain diagnostics without masking the original test status. Keep functional instrumentation blocking ordinary changes while running LLM performance checks in a separate nightly lane. Release pushes, release-targeted pull requests, manual runs, and default reusable-workflow calls retain full coverage. Required check names and branch protection are unchanged. Differential Revision: D129513640
4e4c3b9 to
aa276c9
Compare
…orch#24650) Summary: Android instrumentation can report success without a completed passing suite, and unbounded device waits can prevent useful diagnostics. Require a nonempty passing summary and one successful terminal result, bound transport and execution phases, and retain diagnostics without masking the original test status. Keep functional instrumentation blocking ordinary changes while running LLM performance checks in a separate nightly lane. Release pushes, release-targeted pull requests, manual runs, and default reusable-workflow calls retain full coverage. Required check names and branch protection are unchanged. Differential Revision: D129513640
aa276c9 to
72e8e89
Compare
…orch#24650) Summary: Android instrumentation can report success without a completed passing suite, and unbounded device waits can prevent useful diagnostics. Require a nonempty passing summary and one successful terminal result, bound transport and execution phases, and retain diagnostics without masking the original test status. Keep functional instrumentation blocking ordinary changes while running LLM performance checks in a separate nightly lane. Release pushes, release-targeted pull requests, manual runs, and default reusable-workflow calls retain full coverage. Required check names and branch protection are unchanged. Differential Revision: D129513640
72e8e89 to
a804e47
Compare
| trap 'exit 130' INT | ||
| trap 'exit 131' QUIT | ||
| trap 'exit 141' PIPE | ||
| trap 'exit 143' TERM |
| until adb_with_timeout shell \ | ||
| 'test "$(getprop sys.boot_completed)" = "1" && cmd package list packages >/dev/null && sm list-volumes all >/dev/null'; do | ||
| if ((SECONDS >= ready_deadline)); then | ||
| echo "Emulator framework did not become ready before the deadline" >&2 | ||
| exit 1 | ||
| fi | ||
| sleep_with_deadline 5 | ||
| adb_with_timeout wait-for-device || true | ||
| done |
a804e47 to
af12fe5
Compare
…orch#24650) Summary: Android instrumentation can report success without a completed passing suite, and unbounded device waits can prevent useful diagnostics. Require a nonempty passing summary and one successful terminal result, bound transport and execution phases, and retain diagnostics without masking the original test status. Keep functional instrumentation blocking ordinary changes while running LLM performance checks in a separate nightly lane. Release pushes, release-targeted pull requests, manual runs, and default reusable-workflow calls retain full coverage. Required check names and branch protection are unchanged. Differential Revision: D129513640
…orch#24650) Summary: Android instrumentation can report success without a completed passing suite, and unbounded device waits can prevent useful diagnostics. Require a nonempty passing summary and one successful terminal result, bound transport and execution phases, and retain diagnostics without masking the original test status. Keep functional instrumentation blocking ordinary changes while running LLM performance checks in a separate nightly lane. Release pushes, release-targeted pull requests, manual runs, and default reusable-workflow calls retain full coverage. Required check names and branch protection are unchanged. Differential Revision: D129513640
af12fe5 to
ef5ec31
Compare
…orch#24650) Summary: Android instrumentation can report success without a completed passing suite, and unbounded device waits can prevent useful diagnostics. Require a nonempty passing summary and one successful terminal result, bound transport and execution phases, and retain diagnostics without masking the original test status. Keep functional instrumentation blocking ordinary changes while running LLM performance checks in a separate nightly lane. Release pushes, release-targeted pull requests, manual runs, and default reusable-workflow calls retain full coverage. Required check names and branch protection are unchanged. Keep the default LLM configuration test bounded by caller cancellation, while requiring real generated output and valid statistics. If a test timeout leaves native generation active, abort the instrumentation process instead of letting subsequent tests reuse its native state. Original per-test timeout durations are unchanged. Differential Revision: D129513640
ef5ec31 to
f92392e
Compare
…orch#24650) Summary: Android instrumentation can report success without a completed passing suite, and unbounded device waits can prevent useful diagnostics. Require a nonempty passing summary and one successful terminal result, bound transport and execution phases, and retain diagnostics without masking the original test status. Keep functional instrumentation blocking ordinary changes while running LLM performance checks in a separate nightly lane. Release pushes, release-targeted pull requests, manual runs, and default reusable-workflow calls retain full coverage. Required check names and branch protection are unchanged. Keep the default LLM configuration test bounded by caller cancellation, while requiring real generated output and valid statistics. If a test timeout leaves native generation active, abort the instrumentation process instead of letting subsequent tests reuse its native state. Original per-test timeout durations are unchanged. Differential Revision: D129513640
f92392e to
f7fbd58
Compare


Summary:
Android instrumentation can report success without a completed passing suite, and unbounded device waits can prevent useful diagnostics. Require a nonempty passing summary and one successful terminal result, bound transport and execution phases, and retain diagnostics without masking the original test status.
Keep functional instrumentation blocking ordinary changes while running LLM performance checks in a separate nightly lane. Release pushes, release-targeted pull requests, manual runs, and default reusable-workflow calls retain full coverage. Required check names and branch protection are unchanged.
Keep the default LLM configuration test bounded by caller cancellation, while requiring real generated output and valid statistics. If a test timeout leaves native generation active, abort the instrumentation process instead of letting subsequent tests reuse its native state. Original per-test timeout durations are unchanged.
Differential Revision: D129513640