b22934fe0d
Browser SD files are persisted in OPFS (web/sdstore.js) and edited in the Files tab. At boot the browser builds a deterministic 64 MiB FAT32 image (web/fat32.js) with nested directories and VFAT long names, then mounts it as a raw block device, bypassing QEMU's broken populated-vvfat WASM coroutine path. Guest writes mutate only the ephemeral image. Exposes a hidden #frame-generation indicator that increments on every e-ink flush, so automation can wait on real display updates instead of fixed sleeps. Adds tests/ with a Makefile runner: 'make test' for JS + FAT32/mtools checks, 'make browser-test' for a headless-Firefox boot of the official CrossPoint 1.4.1 firmware that navigates to Test/example.txt. Bumps third_party/qemu to the SPI-SD/CMD13 fixes and updates README/ROADMAP/ISSUES for the new architecture.
18 lines
518 B
Makefile
18 lines
518 B
Makefile
.PHONY: test unit fat32 browser
|
|
|
|
test: unit fat32
|
|
|
|
unit:
|
|
cd .. && node scripts/test-web.mjs
|
|
|
|
fat32:
|
|
node generate-fat32-fixture.mjs
|
|
mdir -i ../_scratch/test-fat32.img :: >/dev/null
|
|
mdir -i ../_scratch/test-fat32.img ::/Test >/dev/null
|
|
mdir -i ../_scratch/test-fat32.img ::/Books >/dev/null
|
|
test "$$(mtype -i ../_scratch/test-fat32.img ::/Test/example.txt)" = "hello from OPFS"
|
|
test "$$(mtype -i ../_scratch/test-fat32.img '::/Books/A long book filename.txt')" = "chapter one"
|
|
|
|
browser:
|
|
./run-browser-raw-sd.sh
|