tests: Add SQLite integration coverage from canonical sources - #2002
Open
thedataking wants to merge 5 commits into
Open
tests: Add SQLite integration coverage from canonical sources#2002thedataking wants to merge 5 commits into
thedataking wants to merge 5 commits into
Conversation
thedataking
force-pushed
the
perl/integration-test-sqlite
branch
from
September 8, 2026 02:33
cce7db1 to
be8873d
Compare
thedataking
marked this pull request as ready for review
September 8, 2026 03:24
thedataking
force-pushed
the
perl/integration-test-sqlite
branch
from
September 8, 2026 03:34
be8873d to
e53b57e
Compare
ahomescu
approved these changes
Sep 9, 2026
ahomescu
reviewed
Sep 9, 2026
ahomescu
left a comment
Contributor
There was a problem hiding this comment.
Review findings (7), posted inline. The two that matter most: the json and parsenumber testsets compare a constant hash, and --fail-on-error is unique to this conf.yml.
thedataking
force-pushed
the
perl/integration-test-sqlite
branch
from
September 10, 2026 02:18
e53b57e to
3130ace
Compare
thedataking
force-pushed
the
perl/integration-test-sqlite
branch
3 times, most recently
from
September 10, 2026 07:11
4c9c71e to
9abad44
Compare
Pin SQLite 3.53.4 from the official source mirror to provide the canonical source tree and upstream workloads for integration coverage.
Build libsqlite3.a with --disable-amalgamation so the integration harness translates the individual library source files. Generate sources before recording the compilation database to exclude host build tools. Enable R-tree support for the spatial workload.
Run definition reorganization and the name, import, label, cast, and literal cleanup transforms on translated SQLite, then compile the result to exercise refactoring across the library modules.
Run five upstream speedtest workloads against native and Rust archives before and after refactoring, comparing result counts and hashes. Use the same native C callers to exercise both libraries' public C ABI. Add always-active SQL checks for transactions, triggers, foreign keys, blobs, JSON/JSONB, numeric parsing, window functions, and integrity. Check data and WAL journal-mode persistence after reopening. Explicit JSON and numeric assertions replace upstream workloads that do not hash results or reliably report SQL errors. Use jq to read Cargo's configured target directory and rustc to determine the Rust archive's native link dependencies.
Check out the SQLite submodule and add it to the integration project list so both Clang configurations exercise its translation, refactoring, and runtime behavior. Install jq for the test driver's Cargo metadata lookup.
thedataking
force-pushed
the
perl/integration-test-sqlite
branch
from
September 10, 2026 07:19
9abad44 to
98b8a8e
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Add SQLite 3.53.4 to the integration harness and both Clang CI configurations. Build the official source submodule with
--disable-amalgamationto exercise translation across individual source files. Generate sources before recording the compilation database to exclude host build tools.Compare result counts and hashes for five upstream speedtest workloads (
main,cte,orm,fp, andrtree) against native and translated libraries before and after refactoring. Always-active SQL assertions cover transactions, triggers, foreign keys, blobs, JSON/JSONB, large integers and floating-point parsing, window functions, integrity, and data and WAL journal-mode persistence after reopening. These explicit JSON and numeric checks replace upstream workloads that do not hash results or reliably report SQL errors. Both libraries use the same native C callers to exercise their public C ABI.Use
jqto read Cargo's configured output directory and rustc to determine the Rust archive's native link dependencies.Depends on the transpiler fixes in #2001.