[PR #7256] [CLOSED] test(android): cover native libraries below runtime-named ancestors #7751

Closed
opened 2026-11-03 13:40:08 +00:00 by bsakaguchi · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/morluto/rea/pull/7256
Author: @Leozz04
Created: 10/26/2026
Status: ❌ Closed

Base: main ← Head: test/android-nested-library-conventions


📝 Commits (1)

  • 93f9033 test(android): cover native libraries below runtime-named ancestors

📊 Changes

1 file changed (+41 additions, -0 deletions)

View changed files

📝 tests/boundary/filesystem/android/application.test.ts (+41 -0)

📄 Description

Summary

Add a filesystem-boundary regression for ordinary JNI-layout libraries nested below runtime-library-named ancestor directories. This extends coverage for the existing shared path-convention fix in 8ba739fd, associated with the already closed #6862.

Problem and expected behavior

An inert entry such as assets/libflutter.so/lib/arm64-v8a/libordinary.so is a native-library candidate by JNI layout. Its ancestor should neither add a Flutter runtime family nor replace its jni-library-convention bridge basis. Existing directory/text-descendant tests do not exercise this native-library descendant.

Change and scope

One test covers Flutter, Unity, React Native and Hermes ancestor names. It checks exact component membership, runtime families, all four JNI bridge candidates, inventory provenance and coverage. Only tests/boundary/filesystem/android/application.test.ts changes, with 41 added lines.

Contract and boundary impact

  • Owner: Android inventory-to-application projection boundary test.
  • Scope decision: not applicable to regression coverage within existing behavior.
  • CLI/MCP, provider, reconstruction, schema, dependency and generated-metadata contracts: unchanged.
  • The new test creates and reads its own synthetic ZIP through existing inventory/projection code. It uses the existing test-owned temporary-directory cleanup; it does not execute a target or contact a network service.

Evidence and regression coverage

On base c2b0c955cd9935886dc24fdb02c031f955476457, removing only the non-final/non-framework segment guard from nativeRuntimeConvention makes this test fail with extra flutter, react-native and unity families. All 11 preexisting Android tests still pass. Restoring the production helper returns the Android/Apple focused suite to green. The mutation is not included in the commit.

These inert entries are JNI-path candidates, not ELF-recognized binaries. ELF-outside-lib-layout fallback, real Android devices/providers and cross-platform execution remain unverified.

Validation performed

Linux x64, Node 24.22.1 / npm 11.16.0:

  • npm run test:focused -- tests/boundary/filesystem/android/application.test.ts tests/boundary/filesystem/appleApplication.test.ts: 24 passed across 2 files.
  • npm run check: failed at Knip on the existing unused isToolFamilyId re-export in src/contracts/toolFamilies.ts:54. Running npm run knip with the approved test addition removed reproduces the same failure on the clean base. That file is unchanged here; #7162 independently records the same main-baseline failure.
  • npm run check:fast, npm run verify:architecture-guards, npm run knip:production, and npm run lint:typed: passed. Production reachability reports advisory candidates. npm run verify:test-discovery: all 2566 test files discovered exactly once.
  • git diff --check and comparison against the approved one-file patch: passed.

Hosted checks will be reported separately from these local results. Full local suite and real-provider results are not claimed.

Compatibility, safety, and release

No behavior/API migration, new dependency, package metadata or release change. Fixtures contain synthetic, inert data and retain existing cleanup ownership.

AI assistance: OpenAI Codex prepared this test and ran the checks above. Human readiness remains pending below.

Author readiness

Human owner: @Leozz04

  • I reviewed the final diff and relevant existing code, understand the change and its edge cases, and take responsibility for the complete PR, including AI-assisted work.
  • I checked the evidence above, confirmed it supports the current change, and recorded meaningful validation gaps.
  • I declare this PR ready for initial maintainer review.

Before merge

  • This PR addresses a concrete problem or an agreed enhancement.
  • Material scope and authority questions are resolved, and any required maintainer scope decision covers the final diff.
  • 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/7256 **Author:** [@Leozz04](https://github.com/Leozz04) **Created:** 10/26/2026 **Status:** ❌ Closed **Base:** `main` ← **Head:** `test/android-nested-library-conventions` --- ### 📝 Commits (1) - [`93f9033`](https://github.com/morluto/rea/commit/93f9033cbf6763d99868eb69376901959b79c0a7) test(android): cover native libraries below runtime-named ancestors ### 📊 Changes **1 file changed** (+41 additions, -0 deletions) <details> <summary>View changed files</summary> 📝 `tests/boundary/filesystem/android/application.test.ts` (+41 -0) </details> ### 📄 Description ## Summary Add a filesystem-boundary regression for ordinary JNI-layout libraries nested below runtime-library-named ancestor directories. This extends coverage for the existing shared path-convention fix in [8ba739fd](https://github.com/morluto/rea/commit/8ba739fd3c7980b53aa715e70b418593912bc88b), associated with the already closed #6862. ## Problem and expected behavior An inert entry such as `assets/libflutter.so/lib/arm64-v8a/libordinary.so` is a native-library candidate by JNI layout. Its ancestor should neither add a Flutter runtime family nor replace its `jni-library-convention` bridge basis. Existing directory/text-descendant tests do not exercise this native-library descendant. ## Change and scope One test covers Flutter, Unity, React Native and Hermes ancestor names. It checks exact component membership, runtime families, all four JNI bridge candidates, inventory provenance and coverage. Only `tests/boundary/filesystem/android/application.test.ts` changes, with 41 added lines. ## Contract and boundary impact - Owner: Android inventory-to-application projection boundary test. - Scope decision: not applicable to regression coverage within existing behavior. - CLI/MCP, provider, reconstruction, schema, dependency and generated-metadata contracts: unchanged. - The new test creates and reads its own synthetic ZIP through existing inventory/projection code. It uses the existing test-owned temporary-directory cleanup; it does not execute a target or contact a network service. ## Evidence and regression coverage On base `c2b0c955cd9935886dc24fdb02c031f955476457`, removing only the non-final/non-framework segment guard from `nativeRuntimeConvention` makes this test fail with extra `flutter`, `react-native` and `unity` families. All 11 preexisting Android tests still pass. Restoring the production helper returns the Android/Apple focused suite to green. The mutation is not included in the commit. These inert entries are JNI-path candidates, not ELF-recognized binaries. ELF-outside-lib-layout fallback, real Android devices/providers and cross-platform execution remain unverified. ## Validation performed Linux x64, Node 24.22.1 / npm 11.16.0: - `npm run test:focused -- tests/boundary/filesystem/android/application.test.ts tests/boundary/filesystem/appleApplication.test.ts`: 24 passed across 2 files. - `npm run check`: failed at Knip on the existing unused `isToolFamilyId` re-export in `src/contracts/toolFamilies.ts:54`. Running `npm run knip` with the approved test addition removed reproduces the same failure on the clean base. That file is unchanged here; #7162 independently records the same main-baseline failure. - `npm run check:fast`, `npm run verify:architecture-guards`, `npm run knip:production`, and `npm run lint:typed`: passed. Production reachability reports advisory candidates. `npm run verify:test-discovery`: all 2566 test files discovered exactly once. - `git diff --check` and comparison against the approved one-file patch: passed. Hosted checks will be reported separately from these local results. Full local suite and real-provider results are not claimed. ## Compatibility, safety, and release No behavior/API migration, new dependency, package metadata or release change. Fixtures contain synthetic, inert data and retain existing cleanup ownership. AI assistance: OpenAI Codex prepared this test and ran the checks above. Human readiness remains pending below. ## Author readiness Human owner: @Leozz04 - [ ] I reviewed the final diff and relevant existing code, understand the change and its edge cases, and take responsibility for the complete PR, including AI-assisted work. - [ ] I checked the evidence above, confirmed it supports the current change, and recorded meaningful validation gaps. - [ ] I declare this PR ready for initial maintainer review. ## Before merge - [ ] This PR addresses a concrete problem or an agreed enhancement. - [ ] Material scope and authority questions are resolved, and any required maintainer scope decision covers the final diff. - [ ] 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. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
bsakaguchi 2026-11-03 13:40:08 +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#7751
No description provided.