test(hibernate): #76 slice 3 — V2 hibernate→resume VM check (PASS)
All checks were successful
Check / eval (push) Successful in 4m11s
All checks were successful
Check / eval (push) Successful in 4m11s
Add checks.hibernate: a runNixOSTest modeled on nixpkgs' hibernate.nix, wired to the actual risk #76 introduces — coexistence with the zram swap that oom.nix now enables by default. It imports oom.nix, puts the disk swap at a lower priority than zram with an explicit boot.resumeDevice, and uses systemd-initrd. The test drives a full hibernate -> power-off -> resume -> crash cycle: a volatile ramfs marker survives resume but NOT a crash-boot (proving genuine resume), and it asserts zram sits at priority 100 while the disk swap is lower, so the hibernate image lands on disk rather than volatile zram. What QEMU genuinely can't do — feed a boot-time resume_offset for a btrfs swapfile (offset only exists after first-boot allocation) or drive a LUKS-initrd unlock — stays a V3 laptop check (HARDWARE-QUEUE, dev box already runs that exact layout), plus the no-swap notify in a real session. With this, all V0/V1/V2 work on #76 is done; #76 collapses to a [blocked:hw] stub and the design record moves to ROADMAP. Verification: V2 PASS — nix build .#checks.x86_64-linux.hibernate built the driver fresh and exited 0. nix flake check --no-build green. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -17,6 +17,24 @@ Template:
|
||||
|
||||
---
|
||||
|
||||
## 2026-07-10 — #76 slice 3: hibernate VM test (V2 PASS) → #76 agent-complete
|
||||
- **Task:** BACKLOG #76 slice 3 — the mandatory V2 hibernate test + V3 queue.
|
||||
- **Did:** Added `checks.hibernate` (flake.nix), modeled on nixpkgs'
|
||||
hibernate.nix but wired to Nomarchy's #76 risk: imports oom.nix (zram
|
||||
default-on), disk swap at lower priority + explicit `boot.resumeDevice`,
|
||||
systemd-initrd. Test drives hibernate→power-off→resume→crash: ramfs marker
|
||||
survives resume, a crash-boot loses it (real resume, not a survivor), and
|
||||
asserts zram@100 + disk-swap<100 so the image lands on disk not volatile
|
||||
zram. Queued the V3 laptop steps (real LUKS+@swap+offset resume + no-swap
|
||||
notify) in HARDWARE-QUEUE. Collapsed #76 to a `[blocked:hw]` stub; design
|
||||
record → ROADMAP § "Hibernation + zram by default".
|
||||
- **Verified:** **V2 PASS** — `nix build .#checks.x86_64-linux.hibernate`
|
||||
built the driver fresh and exited 0 (all assertions held). `nix flake
|
||||
check --no-build` green.
|
||||
- **Pending:** only V3 (dev box / laptop) — #76's last check; close on PASS.
|
||||
- **Next suggestion:** #76 is now blocked:hw; NEXT head falls to LATER/
|
||||
PROPOSED triage or a QA sweep — pick per LOOP.md orientation next session.
|
||||
|
||||
## 2026-07-10 — #76 slice 2: Hibernate notify-on-failure
|
||||
- **Task:** BACKLOG #76 remaining slice 2 — per the settled "keep row, notify
|
||||
on failure" call.
|
||||
|
||||
Reference in New Issue
Block a user