Repository navigation
Qualify exact loader map rejection and retain every case result - #12
Conversation
|
Important Draft PR not reviewedDraft PRs are not automatically reviewed by default.
To automatically review draft PRs, update your CodeRabbit configuration: reviews:
auto_review:
drafts: true
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Reviewer's GuideThe PR broadens boot-memory qualification from a single loader-version proof to eight loader admission cases, using production decoder paths with bounded post-exit fixtures and exact error/phase evidence. The harness now retains every case manifest, continues after failures, and aggregates the final result, while CI, tests, and documentation are updated without closing the remaining firmware map-growth, stale-key retry, or allocation-failure gaps. Sequence diagram for loader admission qualification and retained case resultssequenceDiagram
participant CI
participant Harness
participant Fixture
participant Loader
participant Kernel
CI->>Harness: test_boot_memory.py --loader-admission
loop Eight loader admission cases
Harness->>Fixture: apply bounded post-exit input
Harness->>Loader: decode_uefi_map
alt Exact BootMemoryError and rejection phase
Loader-->>Harness: BootMemoryError
Harness->>Harness: retain case manifest
else Wrong error, phase, case, or missing evidence
Loader-->>Harness: admission failure
Harness->>Harness: retain failed manifest
end
Harness->>Harness: continue to next case
end
Harness-->>CI: aggregate result after all cases
Harness--x Kernel: no kernel entry for loader rejection
File-Level Changes
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
5a4e6ac to
a9280b3
Compare
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: a9280b390e
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| mkdir -p build | ||
| python3 tools/test_boot_memory.py --case "${{ matrix.case }}" 2>&1 | tee build/boot-memory-run.log | ||
| if [ "${{ matrix.case }}" = loader-version ]; then | ||
| python3 tools/test_boot_memory.py --loader-admission 2>&1 | tee build/boot-memory-run.log |
There was a problem hiding this comment.
Give the grouped loader run an aggregate timeout
When several loader cases hang, this command cannot fulfill the new guarantee that all later cases are attempted and their manifests retained: each of the eight cases can spend the default 120 seconds in boot() (and up to 600 seconds building), while the entire boot-memory-admission job at line 324 is capped at 15 minutes, including dependency installation. Eight boot timeouts alone require 16 minutes, so GitHub Actions will cancel the job before the loop and artifact-upload step finish. Increase the job timeout or assign bounded per-case timeouts that fit the aggregate budget.
Useful? React with 👍 / 👎.
The loader had a live descriptor-version proof, while other decoder failures lacked exact guest qualification. Seven new fixtures cover invalid stride/length, empty and over-capacity maps, page-count overflow, alignment and overlap after the real firmware exit. Each requires its specific production decoder error before kernel entry; bounded stack-backed fixtures issue no post-exit allocation or boot-service call.
The harness now retains failed case manifests and continues the remaining cases before failing the overall run. Negative tests reject missing, duplicate, wrong-case, wrong-error and wrong-phase evidence, and inject a first-case timeout to prove later cases still run. CI's existing loader-version context runs all eight loader cases; the other five handoff contexts and repository policy names remain unchanged.
Validation: all 13 loader/handoff cases passed on clean a2e810e, all 177 Python tests passed, and docs, unsafe inventory and frozen checklist checks pass. Evidence and exact limits are recorded in docs/VERIFICATION.md. This advances F1.1 qualification but leaves firmware map-growth, stale exit-key retry and allocation-failure tests open. Checklist remains 53/100 and GenOS remains Experimental.
This PR targets main after #11 merged with all 83 required checks passing. The branch was rebased onto the identical integrated tree; its file tree is unchanged from local qualification. This boot qualification change needs its own remote checks.
Summary by Sourcery
Expand boot-memory qualification to cover exact loader map rejection outcomes and retain evidence across the complete loader test group.
New Features:
Bug Fixes:
Enhancements:
CI:
Documentation:
Tests: