Skip to content

fix: kernel-boot tests 5/5 pass#1

Merged
sigilante merged 1 commit intomasterfrom
fix/kernel-boot-tests
Mar 22, 2026
Merged

fix: kernel-boot tests 5/5 pass#1
sigilante merged 1 commit intomasterfrom
fix/kernel-boot-tests

Conversation

@sigilante
Copy link
Copy Markdown
Owner

Summary

Fixes the 4 failing kernel-boot integration tests.

Root Causes

  1. QEMU raspi4b requires -m 2G — without it, PILL_BASE (0x10000000 = 256MB) is inaccessible. Added to all QEMU invocations in Makefile, tests/kernel-boot.sh, and tests/run_tests.sh.

  2. KERNEL must be typed explicitlycold_start points to word_quit, not word_kernel. Updated boot_pill() and boot_pill_event42() helpers to send KERNEL\n after boot.

  3. set -e + [[ VERBOSE ]] && cmd — when VERBOSE=0, the && short-circuits with exit code 1, aborting the script after the first test. Fixed with || true.

  4. pill_load reverted to simple qnbytes > 0 check — the magic sentinel approach crashed when accessing PILL_BASE through a C function (QEMU raspi4b memory quirk).

Result

5/5 passed

All 376 REPL tests continue to pass.

- Add -m 2G to all QEMU invocations (raspi4b requires exactly 2GiB RAM)
- boot_pill() and boot_pill_event42() send 'KERNEL\n' after boot
  (cold_start → word_quit; KERNEL must be typed explicitly)
- Increase timeouts: boot_pill 8s, boot_pill_event42 10s
- Fix set -e abort: [[ VERBOSE ]] && cmd || true in check()
- pill_load: revert to simple qnbytes>0 check (no magic sentinel)
- mkpill.py: revert to PILL v2 format (no TRNT magic bytes)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@sigilante sigilante merged commit e51a6cf into master Mar 22, 2026
2 checks passed
@sigilante sigilante deleted the fix/kernel-boot-tests branch March 22, 2026 03:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant