Skip to content

Adopt SQLite project unit test harness#692

Open
brandonpayton wants to merge 14 commits into
mainfrom
integration/kad-wtb-sqlite-testing
Open

Adopt SQLite project unit test harness#692
brandonpayton wants to merge 14 commits into
mainfrom
integration/kad-wtb-sqlite-testing

Conversation

@brandonpayton

@brandonpayton brandonpayton commented Jun 13, 2026

Copy link
Copy Markdown
Member

Summary

Adopts the SQLite project-unit harness work from PR #5 into Kandelo and records
both-host validation status against SQLite's official full permutation.

This PR adds scripts/run-sqlite-project-unit-tests.sh, documents the harness in
the porting guide, disables accidental default browser syscall tracing for the
SQLite demo runner, improves browser artifact snapshotting, fixes browser VFS
open-unlink lifetime behavior, and stabilizes the browser threaded-sorter path
used by sort4.test.

Validation Status

Current completion target: SQLite official full permutation on both Node and
browser. The larger all permutation is tracked separately as kad-29m.

Full hard-count report: test-runs/gastown-sqlite-epic-synthesis/final-hard-counts.md.

Node full snapshot:

  • Command: /bin/bash scripts/dev-shell.sh /bin/bash scripts/run-sqlite-project-unit-tests.sh --host node --permutation full --jobs 2 --timeout-ms 21600000 --results-root test-runs/gastown-sqlite-node-full-pr5
  • Artifacts: test-runs/gastown-sqlite-node-full-pr5/{command.log,host-status.tsv,node/summary.txt,node/failures.tsv,node/testrunner.db,node/testrunner.log}
  • Runner status: node 143, command exit_status=1 after summary write.
  • Hard counts: 1394 jobs total, 0 done, 0 failed, 0 omit/skip, 1 running, 1393 ready, 0 cases, 0 case errors.
  • kad-36g fixed the Mach-O exec-resolution wedge that caused this snapshot. No later full-suite Node DB is present in the final artifact set.

Browser full snapshot:

  • Command: bash scripts/run-sqlite-project-unit-tests.sh --host browser --permutation full --jobs 2 --timeout-ms 21600000 --results-root test-runs/gastown-sqlite-browser-full-pr5-snapshot
  • Artifacts: test-runs/gastown-sqlite-browser-full-pr5-snapshot/{run.log,host-status.tsv,combined-summary.md,browser/summary.txt,browser/failures.tsv,browser/testrunner.db,browser/testrunner.log}
  • Runner status: browser 1, page navigation/reload while Playwright was waiting in page.evaluate().
  • Hard counts: 1393 jobs total, 58 done, 4 failed, 0 omit/skip, 2 running, 1329 ready, 20066 cases, 1004 case errors.
  • The SQLite testrunner records done, failed, omit, running, and ready; it does not record XFAIL/XPASS/flaky fields.

Focused Superseding Results

The browser full snapshot's failed/running rows were followed by focused reruns:

Host Test Focused result Follow-up
browser sysfault.test PASS, 1365 cases / 0 errors Original full-snapshot failures did not reproduce after rebuild.
browser writecrash.test FAIL, 158 cases / 1 error kad-wtb.19: browser executable visibility/materialization after repeated crash-child iterations.
node writecrash.test PASS, 995 cases / 0 errors Node comparison passes.
browser walfault.test FAIL, 1 recorded case / 1 error kad-wtb.20: browser Tcl abort plus kernel munmap trap.
node walfault.test TIME/RUNNING, 0 cases / 0 errors Did not hit the browser abort path before timeout.
node like.test PASS, 159 cases / 0 errors Original browser like-14.2 concern is timing-threshold behavior.
browser like.test default cap PASS twice, 159 cases / 0 errors each Diagnostic 16384-page comparison fails adjacent timing case like-14.1, not like-14.2.
browser savepoint6.test PASS, 8007 cases / 0 errors Fixed by SharedFS open-unlink/rename-over lifetime handling.
browser sort4.test PASS, 11 cases / 0 errors Browser threaded-sorter crash/stall fixed by kad-wtb.9.
node sort4.test FAIL, 11 cases / 5 errors kad-wtb.21: Node temp database open failures in sort4-2.3/2.4/2.5/2.6/2.8.

No SQLite test was skipped or xfailed as a substitute for runtime/platform work.

Artifacts

  • Node full snapshot: test-runs/gastown-sqlite-node-full-pr5/
  • Browser full snapshot: test-runs/gastown-sqlite-browser-full-pr5-snapshot/
  • Epic synthesis: test-runs/gastown-sqlite-epic-synthesis/summary.md
  • Final hard counts: test-runs/gastown-sqlite-epic-synthesis/final-hard-counts.md
  • LIKE focused artifacts: test-runs/kad-wtb13-like-*
  • Fault/crash focused report: test-runs/gastown-sqlite-browser-full-pr5-snapshot/browser-fault-recheck.md

Test Verification

Latest child branches recorded the full Kandelo gate suite before merge into
integration/kad-wtb-sqlite-testing: cargo test -p kandelo --target aarch64-apple-darwin --lib, cd host && npx vitest run,
scripts/run-libc-tests.sh, scripts/run-posix-tests.sh, and
scripts/dev-shell.sh bash scripts/check-abi-version.sh.

@brandonpayton brandonpayton force-pushed the integration/kad-wtb-sqlite-testing branch from 93ef2b4 to 92cd505 Compare June 13, 2026 12:47
@github-actions

github-actions Bot commented Jun 13, 2026

Copy link
Copy Markdown

Phase B-1 matrix build status — pr-692-staging

ABI v15. 66 built, 0 failed, 66 total.

Package Arch Status Sha
libcurl wasm32 built ce011fa0
libcxx wasm32 built cb86af2e
libcxx wasm64 built 6a6ad11d
libpng wasm32 built 72185039
libxml2 wasm32 built df935363
libxml2 wasm64 built 98da11bb
ncurses wasm32 built 7e3c0e90
openssl wasm32 built a500b5dc
openssl wasm64 built e4db922d
sqlite wasm32 built 621a54bc
sqlite wasm64 built 5bcb5605
zlib wasm32 built 40932d64
zlib wasm64 built 4ebfa8c2
bash wasm32 built 2f184714
bc wasm32 built 679b5b57
bzip2 wasm32 built d25eab2e
coreutils wasm32 built 2f577527
curl wasm32 built 8958e33c
dash wasm32 built 5ae935a3
diffutils wasm32 built 6283becf
dinit wasm32 built c007ac0a
fbdoom wasm32 built a07b454d
file wasm32 built 02b42883
findutils wasm32 built 2264e878
gawk wasm32 built 263d59ae
git wasm32 built 0398f88b
grep wasm32 built 06cfacd3
gzip wasm32 built f1ea005c
kandelo-sdk wasm32 built be92ea52
kernel wasm32 built 98e21a05
less wasm32 built a7db2115
lsof wasm32 built 23cde9ae
m4 wasm32 built a8e81cc0
make wasm32 built 3ade5be8
mariadb wasm32 built b98ae7c6
mariadb wasm64 built ed07a0b9
msmtpd wasm32 built 263d33ef
nano wasm32 built 844e9bbe
netcat wasm32 built 72fd3e91
nethack wasm32 built 93ed633b
nginx wasm32 built 8ef1852a
php wasm32 built 31f3844d
posix-utils-lite wasm32 built fa6d1074
sed wasm32 built 498dd764
spidermonkey wasm32 built fc097aa8
tar wasm32 built 20922362
tcl wasm32 built cb2a2699
unzip wasm32 built a27a6076
userspace wasm32 built 9eb2c94c
vim wasm32 built b8621f5b
wget wasm32 built d8367779
xz wasm32 built 8f63492f
zip wasm32 built 0e37cb2a
zstd wasm32 built ae08e187
lamp wasm32 built 4abe20e8
mariadb-test wasm32 built 3a1dce84
mariadb-vfs wasm32 built e655616c
mariadb-vfs wasm64 built 255bfde1
nethack-browser-bundle wasm32 built b33d5459
node wasm32 built 288ce1f6
rootfs wasm32 built 04a457ae
spidermonkey-node wasm32 built 2ac80e33
vim-browser-bundle wasm32 built 6c746258
wordpress wasm32 built 7255dced
shell wasm32 built 2451b31b
node-vfs wasm32 built f799a4df

Auto-generated; replaced on each push. Raw data in the publish-status workflow artifact.

Return the active thread id for gettid/set_tid_address and keep clone helper state consistent in host tests.

Add a wasm32posix pthread_create overlay that preserves 16-byte shadow-stack alignment after reserving startup arguments, so variadic calls in worker threads read 64-bit arguments correctly.

Cover the SQLite sorter-temp failure mode with a pthread regression that exercises va_arg(uint64_t) and snprintf(%llx%c) from a worker thread.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant