Skip to content

SQLite tests: run all-mode jobs and preserve truthful outcomes#783

Closed
brandonpayton wants to merge 10 commits into
gascity/kd-cfo/kd-c5i.8-reproduce-wave40-node-shard01-fk-stack-overflow-wedgefrom
gascity/kd-cfo/kd-c5i.8.1-fix-browser-sqllimits1-testrunner-outcome-list-accountin
Closed

SQLite tests: run all-mode jobs and preserve truthful outcomes#783
brandonpayton wants to merge 10 commits into
gascity/kd-cfo/kd-c5i.8-reproduce-wave40-node-shard01-fk-stack-overflow-wedgefrom
gascity/kd-cfo/kd-c5i.8.1-fix-browser-sqllimits1-testrunner-outcome-list-accountin

Conversation

@brandonpayton

@brandonpayton brandonpayton commented Jun 27, 2026

Copy link
Copy Markdown
Member

Stacked on #781. This PR keeps the SQLite test-harness work separate from the runtime and package fixes extracted from #769.

What #907 already landed

#907 landed the PHP batch and the platform fixes it needed, including the mmap/munmap work and the Vitest worker configuration. This PR does not replay those changes.

What remains here

  • run SQLite all-mode child jobs through a resolved guest shell on Node and Chromium;
  • select Kandelo's helper-script launcher without pretending Tcl is OpenBSD;
  • keep browser pipe draining and job classification aligned with Node;
  • preserve the exported testrunner.db, WAL, and SHM evidence instead of rewriting it from console logs;
  • emit explicit passed, failed, skipped, incomplete, and unattributed outcome lists;
  • fail the wrapper when a child, case, report, parser, or incomplete job fails; and
  • close Chromium and Vite after both successful and failed browser runs.

What was deliberately removed

ABI and package artifacts

This PR does not change the ABI, package metadata, package revisions, or committed package artifacts. The browser validation rebuilds its generated SQLite test VFS image from current resolved inputs, but that image is not part of the diff.

Validation run

  • scripts/dev-shell.sh bash tests/scripts/sqlite-case-outcomes.sh
  • focused Vitest for host/test/sqlite-testrunner-patch.test.ts: 2 passed
  • host declaration typecheck
  • standalone TypeScript check for scripts/browser-sqlite-official-runner.ts
  • ABI snapshot/version check
  • shell syntax and git diff --check
  • Node all-mode sqllimits1: 3,117 cases, 0 errors
  • Chromium all-mode sqllimits1: 3,117 cases, 0 errors
  • Node and Chromium --explain checks
  • empty-selection check: correctly exits 1
  • synthetic Node/browser outcome matrix covering success, case errors, failed, ready, empty, halted, parser-failure, and explain states
  • archived 20,066-case browser database: parsed read-only without changing the DB, WAL, or SHM evidence

Validation not run

  • the complete SQLite all permutation inventory;
  • a fresh full host Vitest run and the complete non-slow browser suite in this isolated worktree;
  • the browser asset check, which still needs the repository's full fetched binary set;
  • a manual ./run.sh browser pass; and
  • performance benchmarks. This PR makes no performance claim.

@github-actions

Copy link
Copy Markdown

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

ABI v15. 64 built, 3 failed, 67 total.

Package Arch Status Sha
libcurl wasm32 built bec46d0b
libcxx wasm32 built c331e742
libcxx wasm64 built c844f6bb
libpng wasm32 built 641c37b6
libxml2 wasm32 built be6e19ba
libxml2 wasm64 failed
openssl wasm32 built e31a4e3f
openssl wasm64 built 03668e32
sqlite wasm32 built f83e9b39
sqlite wasm64 built 59fbbacc
zlib wasm32 built 728c7909
zlib wasm64 built a3dc0e46
bc wasm32 built af5a6ede
bzip2 wasm32 built fa17baf1
coreutils wasm32 built b6d8b93b
curl wasm32 built 1b8bc0c7
dash wasm32 built c2cd98b6
diffutils wasm32 built 47b7c330
dinit wasm32 built c24f75d5
fbdoom wasm32 built 2bfcce51
file wasm32 built 6089029f
findutils wasm32 built 9f2625fe
gawk wasm32 built a29ca70e
git wasm32 built 09108998
grep wasm32 built f4ee8e96
gzip wasm32 built 38fb8ddf
kandelo-sdk wasm32 built fffef875
kernel wasm32 built f269adc7
less wasm32 built ccaa6c7d
lsof wasm32 built 0a4102c9
m4 wasm32 built 0770227d
make wasm32 built ad203925
mariadb wasm32 built 8027a3be
mariadb wasm64 built cf4ef8a7
modeset wasm32 failed
msmtpd wasm32 built 60d1dfe8
nano wasm32 built 75164b0c
ncurses wasm32 built ffd48fef
netcat wasm32 built 3b05b016
nginx wasm32 built 4fd44cf0
php wasm32 built 4c082bef
posix-utils-lite wasm32 built f280f251
sed wasm32 built 122e4e69
spidermonkey wasm32 built 1e70624f
tar wasm32 built dbb8b117
tcl wasm32 built 0376be28
unzip wasm32 built 5699385b
userspace wasm32 built d4f9fe28
vim wasm32 built 25e9ff9c
wget wasm32 built f79e283d
xz wasm32 built 03a0a427
zip wasm32 built 27175dfb
zstd wasm32 built d0933168
bash wasm32 built 15989fa1
mariadb-test wasm32 built d837a7e8
mariadb-vfs wasm32 built daf28d6f
mariadb-vfs wasm64 built 1b8ca84e
nethack wasm32 built a700934f
node wasm32 built 1604ae9b
spidermonkey-node wasm32 built bdd092b9
vim-browser-bundle wasm32 built 62531f22
nethack-browser-bundle wasm32 built bb8c62ae
rootfs wasm32 built 9f2461ad
shell wasm32 failed
lamp wasm32 built befeafef
node-vfs wasm32 built aac70179
wordpress wasm32 built 7b88108d

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

@brandonpayton

Copy link
Copy Markdown
Member Author

Recording the current head before reconstruction: dbabf108047c9d94a912806acc636eb4a18def6f. I’m restacking the browser result-harvest work after the focused SQLite limit patches, without #769 ancestry. The branch will be updated with --force-with-lease.

@brandonpayton brandonpayton force-pushed the gascity/kd-cfo/kd-c5i.8-reproduce-wave40-node-shard01-fk-stack-overflow-wedge branch from 152c9a2 to 9e3fd3f Compare July 13, 2026 19:16
Select Kandelo's helper launcher explicitly instead of presenting Tcl as OpenBSD, and keep browser pipe draining aligned with the Node harness.
SQLite includes ordinary Omitted lines in ntest. Add only detail-only skip entries when computing selected-case totals.
Use the repository binary resolver for dash so ABI and fork-instrumentation guards apply. Keep SQLITE_TEST_SHELL as an explicit override.
Treat report generation as part of the run result, preserve an earlier runner failure, and classify done jobs with case errors consistently on Node and browser.
Set the eventual process status without bypassing finally, so normal and failing runs both close Chromium and stop Vite.
@brandonpayton brandonpayton force-pushed the gascity/kd-cfo/kd-c5i.8.1-fix-browser-sqllimits1-testrunner-outcome-list-accountin branch from dbabf10 to f758ecb Compare July 13, 2026 19:42
@brandonpayton brandonpayton changed the title test(sqlite): repair browser sqllimits1 outcome harvest SQLite tests: run all-mode jobs and preserve truthful outcomes Jul 13, 2026
@brandonpayton

Copy link
Copy Markdown
Member Author

Closing this focused source PR because its unique SQLite harness work is now carried by #934 at exact green head 260d75d5adc31b327f5591229dbfbb287d395fd6. #934 consolidates this PR’s ten incremental commits into two coherent purpose commits: all-mode execution and truthful outcome evidence. The full staging and browser gates passed. This is not a claim that this branch was merged verbatim.

@brandonpayton brandonpayton deleted the gascity/kd-cfo/kd-c5i.8.1-fix-browser-sqllimits1-testrunner-outcome-list-accountin branch July 14, 2026 02:42
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