
Testing
- 945 installs
- 23.5k repo stars
- Updated July 28, 2026
- tursodatabase/turso
testing is a Claude Code skill that teaches developers how to write effective .sqltest files, convert legacy TCL tests, and run the full Turso database engine test suite for SQL compatibility and regression coverage.
About
testing is the Turso database engine testing guide for contributors who must prove SQL compatibility before merging changes. The skill prioritizes new .sqltest files under testing/sqltests/tests/, explains when to keep legacy TCL .test files in testing/, and covers Rust integration tests in tests/integration/ plus fuzz targets in tests/fuzz/ for edge-case discovery. Developers converting .test to .sqltest get migration guidance because TCL tests are being phased out. Reach for testing when adding SQL compat cases, debugging failing engine tests, or running the full Turso test suite locally during database engine development.
- 4 distinct test types with clear use-case guidance including .sqltest (preferred), TCL .test, Rust integration, and fuzz
- Preferred .sqltest format that runs the same test cases against multiple backends (CLI, Rust bindings, etc.)
- Complete instructions for running the full test suite, single tests, and Rust unit/integration tests
- Concrete .sqltest file syntax examples with @database, test blocks, and expect result formatting
- Migration path from legacy TCL tests to the modern .sqltest format using the convert command
Testing by the numbers
- 945 all-time installs (skills.sh)
- +49 installs in the week ending Jul 28, 2026 (Skillselion tracking)
- Ranked #540 of 2,184 Testing & QA skills by installs in the Skillselion catalog
- Security screen: MEDIUM risk (skills.sh audit)
- Data as of Jul 28, 2026 (Skillselion catalog sync)
npx skills add https://github.com/tursodatabase/turso --skill testingAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 945 |
|---|---|
| repo stars | ★ 23.5k |
| Security audit | 3 / 3 scanners passed |
| Last updated | July 28, 2026 |
| Repository | tursodatabase/turso ↗ |
How do you write sqltest files for Turso database?
Learn how to write effective.sqltest files, convert legacy TCL tests, and run the full test suite for a database engine like Turso.
Who is it for?
Database engine contributors working on Turso who need the correct test type, file location, and run commands for SQL compatibility work.
Skip if: Application-level unit tests in app codebases unrelated to the Turso engine repository or teams not modifying SQL engine behavior.
When should I use this skill?
The user asks about .sqltest files, TCL .test conversion, running Turso test suites, or SQL compatibility testing for the database engine.
What you get
.sqltest compatibility cases, converted legacy tests, passing Rust integration runs, and fuzz coverage for Turso engine changes.
- .sqltest test files
- converted compatibility tests
- passing engine test suite runs
By the numbers
- Defines four test types: .sqltest, TCL .test, Rust integration, and fuzz
- TCL .test files under testing/ are being phased out in favor of sqltests
Files
Testing Guide
Test Types & When to Use
| Type | Location | Use Case |
|---|---|---|
.sqltest | testing/sqltests/tests/ | SQL compatibility. Preferred for new tests |
TCL .test | testing/ | Legacy SQL compat (being phased out) |
| Rust integration | tests/integration/ | Regression tests, complex scenarios |
| Fuzz | tests/fuzz/ | Complex features, edge case discovery |
Note: TCL tests are being phased out in favor of testing/sqltests. The .sqltest format allows the same test cases to run against multiple backends (CLI, Rust bindings, etc.).
Running Tests
# Main test suite (TCL compat, sqlite3 compat, Python wrappers)
make test
# Single TCL test
make test-single TEST=select.test
# SQL test runner
make -C testing/sqltests run-cli
# OR
cargo run -p test-runner -- run <test-file or directory>
# Rust unit/integration tests (full workspace)
cargo testWriting Tests
.sqltest (Preferred)
@database :default:
test example-addition {
SELECT 1 + 1;
}
expect {
2
}
test example-multiple-rows {
SELECT id, name FROM users WHERE id < 3;
}
expect {
1|alice
2|bob
}Location: testing/sqltests/tests/*.sqltest
You must start converting TCL tests with the convert command from the test runner (e.g cargo run -- convert <TCL_test_path> -o <out_dir>). It is not always accurate, but it will convert most of the tests. If some conversion emits a warning you will have to write by hand whatever is missing from it (e.g unroll a for each loop by hand). Then you need to verify the tests work by running them with make -C testing/sqltests run-rust, and adjust their output if something was wrong with the conversion. Also, we use harcoded databases in TCL, but with .sqltest we generate the database with a different seed, so you will probably need to change the expected test result to match the new database query output. Avoid changing the SQL statements from the test, just change the expected result
TCL
do_execsql_test_on_specific_db {:memory:} test-name {
SELECT 1 + 1;
} {2}Location: testing/*.test
Rust Integration
// tests/integration/test_foo.rs
#[test]
fn test_something() {
let conn = Connection::open_in_memory().unwrap();
// ...
}Key Rules
- Every functional change needs a test
- Test must fail without change, pass with it
- Prefer in-memory DBs:
:memory:(sqltest) or{:memory:}(TCL) - Don't invent new test formats. Follow existing patterns
- Write tests first when possible
Test Database Schema
testing/system/testing.db has users and products tables. See docs/testing.md for schema.
Logging During Tests
RUST_LOG=none,turso_core=trace make testOutput: testing/system/test.log. Warning: very verbose.
Related skills
How it compares
Use testing for Turso engine SQL compat work rather than generic application test frameworks like Jest or Vitest.
FAQ
Which test format should new Turso SQL tests use?
testing directs Turso contributors to add SQL compatibility cases as .sqltest files under testing/sqltests/tests/, which is the preferred format over legacy TCL .test files.
Where do Turso fuzz and integration tests live?
testing places Rust integration tests in tests/integration/ for regression scenarios and fuzz targets in tests/fuzz/ for complex feature edge-case discovery.
Is Testing safe to install?
skills.sh reports 3 of 3 security scanners passed. Review the Security Audits panel on this page before installing in production.