### Testing
- **47 host-side unit tests** — `test_utils.c` (28) + `test_security.c` (19)
-- **20 QEMU smoke tests** — 4-CPU expect-based (includes ICMP ping network test)
+- **35 QEMU smoke tests** — 4-CPU expect-based (file I/O, signals, memory mgmt, IPC, devices, procfs, networking)
- **16-check test battery** — multi-disk ATA (hda+hdb+hdd), VFS mount, ping, diskfs ops (`make test-battery`)
- **Static analysis** — cppcheck, sparse, gcc -fanalyzer
- **GDB scripted checks** — heap/PMM/VGA integrity
See [POSIX_ROADMAP.md](docs/POSIX_ROADMAP.md) for a detailed checklist.
-**All 31 planned POSIX tasks are complete**, plus 10+ additional features: DOOM port, uid/gid/euid/egid, framebuffer, raw keyboard, fd-backed mmap, kernel stack guards, FAT12/16/32 full RW, ext2 full RW, ICMP ping, kernel command line parser. ~103K lines of C/ASM/headers across 255 commits. The kernel covers **~95%** of the core POSIX interfaces needed for a practical Unix-like system.
+**All 31 planned POSIX tasks are complete**, plus 17 additional features (48 total). ~103K lines of C/ASM/headers across 256+ commits. The kernel covers **~95%** of the core POSIX interfaces needed for a practical Unix-like system. All 35 smoke tests, 16 battery checks, and 47 host unit tests pass clean.
### Remaining work for full POSIX compliance
- **Full `ld.so`** — relocation processing for shared libraries (`dlopen`/`dlsym`)
| Feature | Status | Notes |
|---------|--------|-------|
| ELF32 loader | [x] | Secure with W^X + ASLR; supports `ET_EXEC` + `ET_DYN` + `PT_INTERP` |
-| `/bin/init.elf` (smoke tests) | [x] | Comprehensive test suite (19+ checks) |
+| `/bin/init.elf` (smoke tests) | [x] | Comprehensive test suite (35 checks: file I/O, signals, memory, IPC, devices, procfs) |
| `/bin/echo` | [x] | argv/envp test |
| `/bin/sh` | [x] | POSIX sh-compatible shell; builtins, pipes, redirects, `$PATH` search |
| `/bin/cat` | [x] | |
All four testing layers are **implemented and operational**:
- **Static analysis** (`make check`): cppcheck + sparse + gcc -fanalyzer (59 x86 C files)
-- **QEMU smoke tests** (`make test`): expect-based, 20 checks (incl. ICMP ping), 4-CPU SMP, 90s timeout
+- **QEMU smoke tests** (`make test`): expect-based, 35 checks (file I/O, signals, memory, IPC, devices, procfs, networking), 4-CPU SMP, 90s timeout
- **Test battery** (`make test-battery`): 16 checks across 5 QEMU scenarios — multi-disk ATA, VFS mount, ping, diskfs
- **Host unit tests** (`make test-host`): 47 tests — `test_utils.c` (28) + `test_security.c` (19)
- **GDB scripted checks** (`make test-gdb`): heap/PMM/VGA integrity validation
```makefile
make check # cppcheck + sparse + gcc -fanalyzer
-make test # QEMU + expect automated smoke test (20 checks incl. ICMP ping)
+make test # QEMU + expect automated smoke test (35 checks incl. ICMP ping)
make test-battery # Full test battery: multi-disk ATA, VFS mount, ping, diskfs (16 checks)
make test-host # Host-side unit tests for pure functions
make test-gdb # QEMU + GDB scripted checks (optional)