Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
tursodatabase avatar

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 testing

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs945
repo stars23.5k
Security audit3 / 3 scanners passed
Last updatedJuly 28, 2026
Repositorytursodatabase/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

SKILL.mdMarkdownGitHub ↗

Testing Guide

Test Types & When to Use

TypeLocationUse Case
.sqltesttesting/sqltests/tests/SQL compatibility. Preferred for new tests
TCL .testtesting/Legacy SQL compat (being phased out)
Rust integrationtests/integration/Regression tests, complex scenarios
Fuzztests/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 test

Writing 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 test

Output: 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.

Testing & QAbackendtesting

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.