7 releases
Uses new Rust 2024
| 0.1.6 | Jan 27, 2026 |
|---|---|
| 0.1.5 | Jan 26, 2026 |
#581 in Database interfaces
61KB
1.5K
SLoC
duckdb-slt
A Rust-based sqllogictest runner for DuckDB.
Install
cargo install duckdb-slt
Or using binary install:
cargo binstall duckdb-slt
Usage
Run one or more sqllogictest files:
duckdb-slt tests/fixtures/pass.slt
duckdb-slt suite/a.slt suite/b.slt
Run using a glob pattern
duckdb-slt "tests/fixtures/pass*.slt"
Set a working directory for resolving relative paths:
duckdb-slt --workdir suite tests/a.slt
Enable extensions before running tests:
duckdb-slt --extensions json tests/fixtures/pass.slt
Short forms:
duckdb-slt -e json -w suite tests/fixtures/pass.slt
Run an extension's integration tests (example extension: quack):
duckdb-slt.exe -e ./target/release/quack.duckdb_extension -u -w "$(CURDIR)" "$(CURDIR)/test/sql/*.test"
Show help and version:
duckdb-slt --help
duckdb-slt --version
CLI
Options:
--db <PATH>: DuckDB database file path (defaults to in-memory)-u, --allow-unsigned-extensions: allow loading unsigned DuckDB extensions (risky; opt-in)-e, --extensions <EXT>: enable extensions before running tests (repeatable)-w, --workdir <DIR>: set working directory before resolving relative paths--fail-fast: stop after the first test mismatch
Extensions
Each --extensions <EXT> entry runs INSTALL then LOAD, in command-line order.
Supported forms:
json(name)spatial@community(named repository)custom_extension@https://my-extension-repo.example(custom repository URL)path/to/ext.duckdb_extension(local extension file)
Compatibility Notes
Not all keywords/directives added in duckdb-sqllogictest-python are supported.
duckdb-slt at the moment only supports:
requirewith the notable distinction that it only attempts to LOAD the extension, the installation of it needs to be done by using the extensions option.
Exit Codes
0: all tests passed2: at least one test failed due to an expectation mismatch1: runtime error (I/O error, DuckDB error, invalid configuration, invalid CLI usage)
License
MIT. See LICENSE.
Dependencies
~35–48MB
~682K SLoC