RUN check-final QEMU='/tmp/build-an-os-tools/bin/qemu-system-i386' QEMU_COMMON='-machine pc-i440fx-7.2 -accel tcg -cpu qemu32 -smp 1 -m 64M -bios /tmp/build-an-os-tools/root2/usr/share/seabios/bios-256k.bin -L /tmp/build-an-os-tools/root2/usr/share/qemu -boot order=c,strict=on -nic none -no-reboot' GDB='/tmp/build-an-os-tools/bin/gdb-multiarch' python3 tools/check-final.py D30 image sha256=4c4a315af550ee8f38dd8c1fa5fd2c067d2a4077d28b793b67fc36edae5e48d2 D30 demo size=1212 sha256=a246a279682e38bea0a2613800599f69d4dd54161b6e2bf2dc95dbe6ae1f5474 PASS: Day30 first run, QMP hard reset, fresh process and cleanup RUN check-window QEMU='/tmp/build-an-os-tools/bin/qemu-system-i386' QEMU_COMMON='-machine pc-i440fx-7.2 -accel tcg -cpu qemu32 -smp 1 -m 64M -bios /tmp/build-an-os-tools/root2/usr/share/seabios/bios-256k.bin -L /tmp/build-an-os-tools/root2/usr/share/qemu -boot order=c,strict=on -nic none -no-reboot' GDB='/tmp/build-an-os-tools/bin/gdb-multiarch' python3 tools/check-window.py PASS: Day28 z-order, focus, title drag, restore and routed input RUN check-mouse QEMU='/tmp/build-an-os-tools/bin/qemu-system-i386' QEMU_COMMON='-machine pc-i440fx-7.2 -accel tcg -cpu qemu32 -smp 1 -m 64M -bios /tmp/build-an-os-tools/root2/usr/share/seabios/bios-256k.bin -L /tmp/build-an-os-tools/root2/usr/share/qemu -boot order=c,strict=on -nic none -no-reboot' GDB='/tmp/build-an-os-tools/bin/gdb-multiarch' python3 tools/check-mouse.py PASS: Day27 shared PS/2 routing, packets, clipping and cascaded EOI RUN check-graphics-text QEMU='/tmp/build-an-os-tools/bin/qemu-system-i386' QEMU_COMMON='-machine pc-i440fx-7.2 -accel tcg -cpu qemu32 -smp 1 -m 64M -bios /tmp/build-an-os-tools/root2/usr/share/seabios/bios-256k.bin -L /tmp/build-an-os-tools/root2/usr/share/qemu -boot order=c,strict=on -nic none -no-reboot' GDB='/tmp/build-an-os-tools/bin/gdb-multiarch' python3 tools/check-graphics-text.py PASS: Day26 paged backbuffer, safe clipping and 8x8 text terminal RUN check-graphics QEMU='/tmp/build-an-os-tools/bin/qemu-system-i386' QEMU_COMMON='-machine pc-i440fx-7.2 -accel tcg -cpu qemu32 -smp 1 -m 64M -bios /tmp/build-an-os-tools/root2/usr/share/seabios/bios-256k.bin -L /tmp/build-an-os-tools/root2/usr/share/qemu -boot order=c,strict=on -nic none -no-reboot' GDB='/tmp/build-an-os-tools/bin/gdb-multiarch' python3 tools/check-graphics.py PASS: Day25 Mode 13h, BootInfo v2, visible pixels, bounds and fail-closed setup RUN check-pm QEMU='/tmp/build-an-os-tools/bin/qemu-system-i386' QEMU_COMMON='-machine pc-i440fx-7.2 -accel tcg -cpu qemu32 -smp 1 -m 64M -bios /tmp/build-an-os-tools/root2/usr/share/seabios/bios-256k.bin -L /tmp/build-an-os-tools/root2/usr/share/qemu -boot order=c,strict=on -nic none -no-reboot' sh tools/check-pm.sh BootInfo v1: 6 E820 entries; [(0, 654336, 1, 1), (654336, 1024, 2, 1), (983040, 65536, 2, 1), (1048576, 65929216, 1, 1), (66977792, 131072, 2, 1), (4294705152, 262144, 2, 1)] PASS: protected-mode registers, BootInfo bytes, E820 map, VGA/serial PM marker, forced A20 failure, bad-GDT #GP(0008) -> #DF -> triple fault RUN check-pipe QEMU='/tmp/build-an-os-tools/bin/qemu-system-i386' QEMU_COMMON='-machine pc-i440fx-7.2 -accel tcg -cpu qemu32 -smp 1 -m 64M -bios /tmp/build-an-os-tools/root2/usr/share/seabios/bios-256k.bin -L /tmp/build-an-os-tools/root2/usr/share/qemu -boot order=c,strict=on -nic none -no-reboot' GDB='/tmp/build-an-os-tools/bin/gdb-multiarch' python3 tools/check-pipe.py PASS: Day24 bounded pipe, backpressure, EOF, broken pipe, rollback and recovery RUN check-shell QEMU='/tmp/build-an-os-tools/bin/qemu-system-i386' QEMU_COMMON='-machine pc-i440fx-7.2 -accel tcg -cpu qemu32 -smp 1 -m 64M -bios /tmp/build-an-os-tools/root2/usr/share/seabios/bios-256k.bin -L /tmp/build-an-os-tools/root2/usr/share/qemu -boot order=c,strict=on -nic none -no-reboot' GDB='/tmp/build-an-os-tools/bin/gdb-multiarch' python3 tools/check-shell.py PASS: Day23 Shell normal, parser boundaries, bad ELF, child fault and recovery RUN check-fd QEMU='/tmp/build-an-os-tools/bin/qemu-system-i386' QEMU_COMMON='-machine pc-i440fx-7.2 -accel tcg -cpu qemu32 -smp 1 -m 64M -bios /tmp/build-an-os-tools/root2/usr/share/seabios/bios-256k.bin -L /tmp/build-an-os-tools/root2/usr/share/qemu -boot order=c,strict=on -nic none -no-reboot' GDB='/tmp/build-an-os-tools/bin/gdb-multiarch' sh tools/check-fd.sh PASS: real QEMU PS/2 input woke the fd reader without polling The target architecture is set to "i386". 0x0000fff0 in ?? () Hardware assisted breakpoint 1 at 0x108f0d: file kernel/task.c, line 1522. Breakpoint 1, fd_exit_closed_observed () at kernel/task.c:1522 1522 { __asm__ volatile("nop" ::: "memory"); } PASS: faulting child closed every fd before ZOMBIE publication Hardware assisted breakpoint 2 at 0x1092fa: file kernel/task.c, line 1687. Breakpoint 2, fd_demo_done () at kernel/task.c:1687 1687 { __asm__ volatile("nop" ::: "memory"); } PASS: independent/shared offsets, short EOF, limits, rollback, exit cleanup and page recovery verified The target architecture is set to "i386". 0x0000fff0 in ?? () Hardware assisted breakpoint 1 at 0x1092fa: file kernel/task.c, line 1687. Breakpoint 1, fd_demo_done () at kernel/task.c:1687 1687 { __asm__ volatile("nop" ::: "memory"); } PASS: six ELF allocation failures plus kernel-stack failure rolled back mapped refs, then recovered The target architecture is set to "i386". 0x00105d54 in idle_once () at kernel/task.c:637 637 } PASS: terminal reader blocked in trap depth 1, idle PIT advanced, HMP keys produced ab\n [Inferior 1 (process 1) detached] RUN check-fat QEMU='/tmp/build-an-os-tools/bin/qemu-system-i386' QEMU_COMMON='-machine pc-i440fx-7.2 -accel tcg -cpu qemu32 -smp 1 -m 64M -bios /tmp/build-an-os-tools/root2/usr/share/seabios/bios-256k.bin -L /tmp/build-an-os-tools/root2/usr/share/qemu -boot order=c,strict=on -nic none -no-reboot' GDB='/tmp/build-an-os-tools/bin/gdb-multiarch' sh tools/check-fat.sh PASS: FAT16 geometry, root filtering, offset reads and non-contiguous 2->9->4 chain verified PASS: FAT demo reaches original blocking keyboard consumer PASS: loop FAT corruption rejected PASS: short FAT corruption rejected PASS: badbpb FAT corruption rejected PASS: mirror FAT corruption rejected PASS: rootbound FAT corruption rejected PASS: dirhi FAT corruption rejected PASS: emptycluster FAT corruption rejected PASS: badcluster FAT corruption rejected PASS: reserved FAT corruption rejected PASS: outofrange FAT corruption rejected PASS: oversize FAT corruption rejected RUN check-block QEMU='/tmp/build-an-os-tools/bin/qemu-system-i386' QEMU_COMMON='-machine pc-i440fx-7.2 -accel tcg -cpu qemu32 -smp 1 -m 64M -bios /tmp/build-an-os-tools/root2/usr/share/seabios/bios-256k.bin -L /tmp/build-an-os-tools/root2/usr/share/qemu -boot order=c,strict=on -nic none -no-reboot' GDB='/tmp/build-an-os-tools/bin/gdb-multiarch' IMAGE_SECTORS='16384' PAYLOAD_MAX_BYTES='131072' sh tools/check-block.sh PASS: IDENTIFY, MBR, two patterned sectors and range rejection verified PASS: block demo reaches original blocking keyboard consumer PASS: timeout failure is diagnosed and channel fails closed PASS: nodrq failure is diagnosed and channel fails closed PASS: error failure is diagnosed and channel fails closed RUN check-process QEMU='/tmp/build-an-os-tools/bin/qemu-system-i386' QEMU_COMMON='-machine pc-i440fx-7.2 -accel tcg -cpu qemu32 -smp 1 -m 64M -bios /tmp/build-an-os-tools/root2/usr/share/seabios/bios-256k.bin -L /tmp/build-an-os-tools/root2/usr/share/qemu -boot order=c,strict=on -nic none -no-reboot' GDB='/tmp/build-an-os-tools/bin/gdb-multiarch' PAYLOAD_MAX_BYTES='131072' sh tools/check-process.sh The target architecture is set to "i386". 0x0000fff0 in ?? () Hardware assisted breakpoint 1 at 0x1080b1: file kernel/task.c, line 1146. Breakpoint 1, process_bootstrap_observed () at kernel/task.c:1146 1146 { __asm__ volatile("nop" ::: "memory"); } PASS: parent blocked inside top-level wait while BADPTR remained zombie and COUNT runnable Hardware assisted breakpoint 2 at 0x1081ef: file kernel/task.c, line 1149. Breakpoint 2, process_demo_done () at kernel/task.c:1149 1149 { __asm__ volatile("nop" ::: "memory"); } PASS: two rounds, bad status retries, PID reuse protection, orphan adoption and complete recovery verified Hardware assisted breakpoint 3 at 0x101d54: file kernel/keyboard.c, line 227. Breakpoint 3, keyboard_ready () at kernel/keyboard.c:227 227 void keyboard_ready(void) { __asm__ volatile("" ::: "memory"); } PASS: process demo reaches original blocking keyboard consumer The target architecture is set to "i386". 0x0000fff0 in ?? () Hardware assisted breakpoint 1 at 0x1081ef: file kernel/task.c, line 1149. Breakpoint 1, process_demo_done () at kernel/task.c:1149 1149 { __asm__ volatile("nop" ::: "memory"); } PASS: seven ELF allocation failures plus kernel-stack failure rolled back, then normal spawn recovered RUN check-syscall QEMU='/tmp/build-an-os-tools/bin/qemu-system-i386' QEMU_COMMON='-machine pc-i440fx-7.2 -accel tcg -cpu qemu32 -smp 1 -m 64M -bios /tmp/build-an-os-tools/root2/usr/share/seabios/bios-256k.bin -L /tmp/build-an-os-tools/root2/usr/share/qemu -boot order=c,strict=on -nic none -no-reboot' sh tools/check-syscall.sh The target architecture is set to "i386". 0x0000fff0 in ?? () Hardware assisted breakpoint 1 at 0x10a0ea: file kernel/syscall.c, line 286. Breakpoint 1, syscall_dispatch (frame=0x13efb4) at kernel/syscall.c:286 286 KASSERT((frame->cs & 3) == 3 && frame->vector == 128 && frame->error == 0); PASS: CPL3 int80 used DPL3 interrupt gate; 76-byte frame, post-INT EIP, GPR and saved IF/DF/CF verified Hardware assisted breakpoint 2 at 0x107469: file kernel/task.c, line 817. Breakpoint 2, syscall_demo_done () at kernel/task.c:817 817 { __asm__ volatile("" ::: "memory"); } PASS: write/yield, copy-to-user and all return paths verified; bad DPL gate isolated; survivor and page recovery verified Hardware assisted breakpoint 3 at 0x101d54: file kernel/keyboard.c, line 227. Breakpoint 3, keyboard_ready () at kernel/keyboard.c:227 227 void keyboard_ready(void) { __asm__ volatile("" ::: "memory"); } PASS: syscall demo reaches original blocking keyboard consumer RUN check-elf QEMU='/tmp/build-an-os-tools/bin/qemu-system-i386' QEMU_COMMON='-machine pc-i440fx-7.2 -accel tcg -cpu qemu32 -smp 1 -m 64M -bios /tmp/build-an-os-tools/root2/usr/share/seabios/bios-256k.bin -L /tmp/build-an-os-tools/root2/usr/share/qemu -boot order=c,strict=on -nic none -no-reboot' GDB='/tmp/build-an-os-tools/bin/gdb-multiarch' sh tools/check-elf.sh The target architecture is set to "i386". 0x0000fff0 in ?? () Hardware assisted breakpoint 1 at 0x40000080 Breakpoint 1, 0x40000080 in ?? () PASS: dynamic ELF entry reached CPL3 with private CR3, RO code and RW data Hardware assisted breakpoint 2 at 0x40000091 Breakpoint 2, 0x40000091 in ?? () PASS: C entry stack alignment, clear DF, initialized data and 5000-byte BSS verified Hardware assisted breakpoint 3 at 0x107ba2: file kernel/task.c, line 986. Breakpoint 3, elf_demo_done () at kernel/task.c:986 986 { __asm__ volatile("nop" ::: "memory"); } PASS: 34 malformed ELF cases, all allocation failures and task-stack rollback recovered Hardware assisted breakpoint 4 at 0x101d54: file kernel/keyboard.c, line 227. Breakpoint 4, keyboard_ready () at kernel/keyboard.c:227 227 void keyboard_ready(void) { __asm__ volatile("" ::: "memory"); } PASS: ELF demo reaches original blocking keyboard consumer RUN check-memory QEMU='/tmp/build-an-os-tools/bin/qemu-system-i386' QEMU_COMMON='-machine pc-i440fx-7.2 -accel tcg -cpu qemu32 -smp 1 -m 64M -bios /tmp/build-an-os-tools/root2/usr/share/seabios/bios-256k.bin -L /tmp/build-an-os-tools/root2/usr/share/qemu -boot order=c,strict=on -nic none -no-reboot' KERNEL_MEMORY_MAX_BYTES='262144' sh tools/check-memory.sh The target architecture is set to "i386". 0x0000fff0 in ?? () Hardware assisted breakpoint 1 at 0x102af7: file kernel/memory.c, line 114. Breakpoint 1, memory_demo_done () at kernel/memory.c:114 114 void memory_demo_done(void) { __asm__ volatile("" : : : "memory"); } PASS: guest allocation, exhaustion, patterns, invalid free, recovered bitmaps; pages=16064 end=0x11f8d0 Hardware assisted breakpoint 2 at 0x101d54: file kernel/keyboard.c, line 227. Breakpoint 2, keyboard_ready () at kernel/keyboard.c:227 227 void keyboard_ready(void) { __asm__ volatile("" ::: "memory"); } PASS: memory demo returns to keyboard_ready [Inferior 1 (process 1) detached] RUN check-runtime-limit QEMU='/tmp/build-an-os-tools/bin/qemu-system-i386' QEMU_COMMON='-machine pc-i440fx-7.2 -accel tcg -cpu qemu32 -smp 1 -m 64M -bios /tmp/build-an-os-tools/root2/usr/share/seabios/bios-256k.bin -L /tmp/build-an-os-tools/root2/usr/share/qemu -boot order=c,strict=on -nic none -no-reboot' PAYLOAD_MAX_BYTES='131072' KERNEL_MEMORY_MAX_BYTES='262144' sh tools/check-runtime-limit.sh The target architecture is set to "i386". 0x0000fff0 in ?? () Hardware assisted breakpoint 1 at 0x100000 Breakpoint 1, 0x00100000 in _start () PASS: stage2 dirtied BSS beyond old 64 KiB runtime limit Hardware assisted breakpoint 2 at 0x10005b: file kernel/main.c, line 33. Breakpoint 2, kernel_main (info=0x5000) at kernel/main.c:33 33 console_init(); /* entry cleared BSS/set stack; UART and VGA precede diagnostics. */ PASS: entry cleared full BSS and exact 256 KiB runtime image entered C Hardware assisted breakpoint 3 at 0x107ba2: file kernel/task.c, line 986. Breakpoint 3, elf_demo_done () at kernel/task.c:986 986 { __asm__ volatile("nop" ::: "memory"); } PASS: exact-cap image completed allocator, user, syscall and ELF regressions The target architecture is set to "i386". 0x0000fff0 in ?? () Hardware assisted breakpoint 1 at 0x100000 Breakpoint 1, 0x00100000 in _start () PASS: exact 128 KiB file crossed real-mode segments, checksum and protected-mode copy PASS: oversized file and memory headers rejected before payload copy RUN check-keyboard QEMU='/tmp/build-an-os-tools/bin/qemu-system-i386' QEMU_COMMON='-machine pc-i440fx-7.2 -accel tcg -cpu qemu32 -smp 1 -m 64M -bios /tmp/build-an-os-tools/root2/usr/share/seabios/bios-256k.bin -L /tmp/build-an-os-tools/root2/usr/share/qemu -boot order=c,strict=on -nic none -no-reboot' sh tools/check-keyboard.sh PASS: HMP real IRQ1 editing/Shift/Caps/Pause/PrintScreen, paused-consumer overflow, reset and LINE: ok