[PR #1639] [MERGED] test(android): preserve reason in JADX cleanup-failure teardown poll #4716

Closed
opened 2026-10-31 00:54:18 +00:00 by bsakaguchi · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/morluto/rea/pull/1639
Author: @Totopo27
Created: 10/10/2026
Status: ✅ Merged
Merged: 10/10/2026
Merged by: @morluto

Base: main ← Head: fix/jadx-cleanup-reason


📝 Commits (1)

  • daafe04 test(android): preserve reason in JADX cleanup-failure teardown poll

📊 Changes

1 file changed (+13 additions, -2 deletions)

View changed files

📝 tests/fixtures/android/jadx.ts (+13 -2)

📄 Description

Summary

Fixes #1441

Retain the complete ProviderProcessStopResult in the createJadxProtocolFixture teardown poll hook (tests/fixtures/android/jadx.ts) so an incomplete teardown failure diagnostic includes the underlying reason.

Problem and expected behavior

When the owned subprocess cleanup fails during the JADX cleanup-failure test fixture, the teardown assertion used not.toMatchObject({ status: "incomplete" }). This discarded the reason field from ProviderProcessStopResult (which holds { status: "incomplete", reason: string }), producing an uninformative error expected 'incomplete' not to be 'incomplete' on CI without diagnosing why process cleanup failed.

Expected behavior: If process supervisor stop remains incomplete during teardown, the polling assertion surfaces the specific reason so failure diagnostics remain actionable.

Change and scope

  • Updated the expect.poll assertion in tests/fixtures/android/jadx.ts to inspect the full stop result and throw with Owned process cleanup incomplete: ${stopped.reason} if status is "incomplete".

Contract and boundary impact

  • Semantic owner and earliest changed stage: Test fixtures (tests/fixtures/android/jadx.ts)
  • CLI and MCP/tool-catalog contract: none
  • Provider, bridge, target-format, or platform compatibility: none
  • Evidence, artifact, provenance, or reconstruction contract: none
  • Process execution, authorization, cleanup, or containment impact: preserves failure reasons during test process group teardown
  • Generated metadata (docs/public/product-catalog.json), package, or installation impact: none

Evidence and regression coverage

  • Tests added or updated: tests/fixtures/android/jadx.ts
  • Base reproduction or other evidence: Observed in CI shard failure logs referenced in Issue #1441
  • User-visible CLI/MCP output: none
  • Remaining proof gaps: none

Validation performed

  • git diff tests/fixtures/android/jadx.ts — verified 15-line diff.
  • gentle-ai review assess — evaluated diff risk: medium (executable_change), under budget.

Compatibility, safety, and release

  • Breaking changes or migration steps: none
  • Real Hopper/Ghidra, browser, or OS coverage: none
  • Package or release metadata impact: none
  • Security, privacy, process, or containment review: none

Review checklist

  • This PR addresses a concrete problem or an agreed enhancement.
  • The PR has one focused outcome and the title follows type(scope): outcome.
  • Related issue is linked, or the reason for not linking one is stated above.
  • Tests cover changed observable behavior and meaningful failure paths.
  • Owning docs, contracts, and generated metadata are updated where needed.
  • User-visible CLI/MCP changes include representative output.
  • I checked the final diff for secrets, unrelated cleanup, and unsupported claims.

🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/morluto/rea/pull/1639 **Author:** [@Totopo27](https://github.com/Totopo27) **Created:** 10/10/2026 **Status:** ✅ Merged **Merged:** 10/10/2026 **Merged by:** [@morluto](https://github.com/morluto) **Base:** `main` ← **Head:** `fix/jadx-cleanup-reason` --- ### 📝 Commits (1) - [`daafe04`](https://github.com/morluto/rea/commit/daafe0495c46d23aa6f454c17fd8e6ca153e374c) test(android): preserve reason in JADX cleanup-failure teardown poll ### 📊 Changes **1 file changed** (+13 additions, -2 deletions) <details> <summary>View changed files</summary> 📝 `tests/fixtures/android/jadx.ts` (+13 -2) </details> ### 📄 Description ## Summary Fixes #1441 Retain the complete `ProviderProcessStopResult` in the `createJadxProtocolFixture` teardown poll hook (`tests/fixtures/android/jadx.ts`) so an incomplete teardown failure diagnostic includes the underlying `reason`. ## Problem and expected behavior When the owned subprocess cleanup fails during the JADX cleanup-failure test fixture, the teardown assertion used `not.toMatchObject({ status: "incomplete" })`. This discarded the `reason` field from `ProviderProcessStopResult` (which holds `{ status: "incomplete", reason: string }`), producing an uninformative error `expected 'incomplete' not to be 'incomplete'` on CI without diagnosing why process cleanup failed. Expected behavior: If process supervisor stop remains incomplete during teardown, the polling assertion surfaces the specific `reason` so failure diagnostics remain actionable. ## Change and scope - Updated the `expect.poll` assertion in `tests/fixtures/android/jadx.ts` to inspect the full stop result and throw with `Owned process cleanup incomplete: ${stopped.reason}` if status is `"incomplete"`. ## Contract and boundary impact - Semantic owner and earliest changed stage: Test fixtures (`tests/fixtures/android/jadx.ts`) - CLI and MCP/tool-catalog contract: none - Provider, bridge, target-format, or platform compatibility: none - Evidence, artifact, provenance, or reconstruction contract: none - Process execution, authorization, cleanup, or containment impact: preserves failure reasons during test process group teardown - Generated metadata (`docs/public/product-catalog.json`), package, or installation impact: none ## Evidence and regression coverage - Tests added or updated: `tests/fixtures/android/jadx.ts` - Base reproduction or other evidence: Observed in CI shard failure logs referenced in Issue #1441 - User-visible CLI/MCP output: none - Remaining proof gaps: none ## Validation performed - `git diff tests/fixtures/android/jadx.ts` — verified 15-line diff. - `gentle-ai review assess` — evaluated diff risk: medium (`executable_change`), under budget. ## Compatibility, safety, and release - Breaking changes or migration steps: none - Real Hopper/Ghidra, browser, or OS coverage: none - Package or release metadata impact: none - Security, privacy, process, or containment review: none ## Review checklist - [x] This PR addresses a concrete problem or an agreed enhancement. - [x] The PR has one focused outcome and the title follows `type(scope): outcome`. - [x] Related issue is linked, or the reason for not linking one is stated above. - [x] Tests cover changed observable behavior and meaningful failure paths. - [x] Owning docs, contracts, and generated metadata are updated where needed. - [x] User-visible CLI/MCP changes include representative output. - [x] I checked the final diff for secrets, unrelated cleanup, and unsupported claims. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
bsakaguchi 2026-10-31 00:54:18 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
morluto/rea#4716
No description provided.