[BUG] Fixture generator ignores an invalid explicit selection #4

Closed
opened 2026-09-15 16:13:55 +02:00 by erikinkinen · 0 comments
Owner

Summary

The host filesystem-fixture resolver silently ignores an unavailable explicit generator path and chooses another checkout's generator. A mistyped test configuration can therefore produce fixtures from a source the caller did not select.

Reproduction

At the affected revision, make the repository's usual fixture generator available, leave ERIX_INTEGRATION_DIR unset, set ERIX_GENERATE_BLOCK_TEST_DISK to an absolute path that does not exist, and call test_fixtures::generate_block_test_disk_script(). The original function was compiled unchanged into a small host probe. It returned an existing fallback script instead of rejecting the requested path. The probe did not execute the returned script.

Expected and actual behavior

Expected: reject a missing, relative, unavailable or non-file explicit generator selection before invoking any fixture tool. Actual: the resolver returns another existing generator and allows subsequent fixture execution to continue with different source inputs. Missing selection also triggers implicit checkout discovery.

Environment and identity

  • E2fsd source: dbf4cf3ef5; the resolver bytes are unchanged in the current dependency-alignment worktree.
  • Host Linux x86_64, Rust 1.97.1. No EriX image or VM was involved.
  • The host caller already owns the test workspace and tool execution. This report concerns configuration/source selection; no guest capability change or privilege escalation was observed.
  • Last known working revision: unknown.

Evidence and prior checks

Explicit fixture selection checkpoint — 15 September 2026

Signed da51754b1c871dfdee81c20920a8074ac105a4cb requires an explicitly selected absolute fixture generator, removes implicit checkout discovery and the obsolete directory selector, and selects/hashes the original generator in CI. Three new regressions and actual resolver probes pass. All six default/all-feature/production development/release configurations pass 264 tests each, strict host/native Clippy, six native builds, formatting, private rustdoc and canonical documentation checks with no warnings. Existing dependency pins align with the signed runtime graph. Both current production ELFs retain the declared entry and state arena. The earlier omitted-checker configuration failure is retained separately. Push/review CI 176/177 passes with four complete classified logs (233,890 bytes), no warnings, and 264 passing tests in each CI test run. The explicit generator-selection defect is fixed in the published feature branch; product VM and full guest build acceptance remain separate. Product VM and full guest build acceptance remain pending. Review: #3.

The original resolver probe exited successfully and returned a different existing script for the unavailable explicit selection. No fallback script was executed by the probe. Separately, the initial local dependency test run passed 260 tests and failed one because its caller omitted the already-required ERIX_E2FSCK input; that configuration error is retained and is distinct from this resolver defect. Existing CI already selects and hashes the checker correctly.

Tracking

Related audit: #1. Remove implicit generator discovery and the obsolete directory-selector fallback, select the exact generator explicitly in CI, document the caller inputs, and add refusal/selection regressions. Retain all original failures and complete the supported strict matrix and component CI before closing this report.

## Summary The host filesystem-fixture resolver silently ignores an unavailable explicit generator path and chooses another checkout's generator. A mistyped test configuration can therefore produce fixtures from a source the caller did not select. ## Reproduction At the affected revision, make the repository's usual fixture generator available, leave ERIX_INTEGRATION_DIR unset, set ERIX_GENERATE_BLOCK_TEST_DISK to an absolute path that does not exist, and call test_fixtures::generate_block_test_disk_script(). The original function was compiled unchanged into a small host probe. It returned an existing fallback script instead of rejecting the requested path. The probe did not execute the returned script. ## Expected and actual behavior Expected: reject a missing, relative, unavailable or non-file explicit generator selection before invoking any fixture tool. Actual: the resolver returns another existing generator and allows subsequent fixture execution to continue with different source inputs. Missing selection also triggers implicit checkout discovery. ## Environment and identity - E2fsd source: dbf4cf3ef54c723a7701a083376b048dd7a5085c; the resolver bytes are unchanged in the current dependency-alignment worktree. - Host Linux x86_64, Rust 1.97.1. No EriX image or VM was involved. - The host caller already owns the test workspace and tool execution. This report concerns configuration/source selection; no guest capability change or privilege escalation was observed. - Last known working revision: unknown. ## Evidence and prior checks ### Explicit fixture selection checkpoint — 15 September 2026 Signed `da51754b1c871dfdee81c20920a8074ac105a4cb` requires an explicitly selected absolute fixture generator, removes implicit checkout discovery and the obsolete directory selector, and selects/hashes the original generator in CI. Three new regressions and actual resolver probes pass. All six default/all-feature/production development/release configurations pass 264 tests each, strict host/native Clippy, six native builds, formatting, private rustdoc and canonical documentation checks with no warnings. Existing dependency pins align with the signed runtime graph. Both current production ELFs retain the declared entry and state arena. The earlier omitted-checker configuration failure is retained separately. Push/review CI 176/177 passes with four complete classified logs (233,890 bytes), no warnings, and 264 passing tests in each CI test run. The explicit generator-selection defect is fixed in the published feature branch; product VM and full guest build acceptance remain separate. Product VM and full guest build acceptance remain pending. Review: https://git.erikinkinen.fi/erix/e2fsd/pulls/3. The original resolver probe exited successfully and returned a different existing script for the unavailable explicit selection. No fallback script was executed by the probe. Separately, the initial local dependency test run passed 260 tests and failed one because its caller omitted the already-required ERIX_E2FSCK input; that configuration error is retained and is distinct from this resolver defect. Existing CI already selects and hashes the checker correctly. ## Tracking Related audit: https://git.erikinkinen.fi/erix/e2fsd/issues/1. Remove implicit generator discovery and the obsolete directory-selector fallback, select the exact generator explicitly in CI, document the caller inputs, and add refusal/selection regressions. Retain all original failures and complete the supported strict matrix and component CI before closing this report.
Sign in to join this conversation.
No description provided.