Repository navigation
E2E Suites EN
Language: English | E2E-Suites
The deep tests that gate a release. All of them drive a real QEMU boot through pexpect on the serial console.
28 checks: boot banner, boot-complete, exception self-test 3/3,
command count 233, uname tag forms, heaptest, fstest, cryptotest,
crashlog, l1test, and every run <userprog> (hello, fork, exec,
pipe, signal, select, mmap variants, dynamic linking: so_test,
dlsym_test, pie_test, reloc_test, p3, g6, g7...).
python3 tools/run_fix4_regression.py build/opencube.iso out.log
14 scenarios (S1-S14). The two that matter most:
-
S12 (Intel TCO): q35 +
-no-reboot; asserts the TCO discovery line (Intel TCO found: PMBASE=... TCOBASE=...), arms the watchdog, starves it, asserts the REAL reset and the second boot. - S13 (ACPI WDAT): same shape through the WDAT table entries.
Plus klog write/flush/rotate/filter chains (threshold 4096 ->
kernel.log + kernel.log.1 real generation), watchdog policy kill
(a starver task is killed with a log record while the kernel
survives), and health (JSON export validity, 3-spinner CPU alarm
CPU-LOCKED with the kernel alive).
The in-guest sshd needs host/client keys on the /etc volume - the
suite (or you) seed them with host_keygen_etc. Then a paramiko
client from the host performs the full login + session + command
round-trip: 5/5 ALL PASS is the gate.
wget https://<reference-host>/ from inside the guest against a
reference TLS server: handshake OK, GET received, body saved,
close_notify clean. 7 checks (handshake, cert chain, body bytes,
close semantics, timings).
SSH and HTTPS suites assume a seeded etc.img. Build it once per
test cycle:
make etc.img # 32 MiB FAT32 + opencube.conf
# then inside a first boot: host_keygen_etc (writes SSH keys)
The QEMU run-* make targets attach it automatically.