differential-fuzzer

Compare Turso and SQLite results for generated SQL statements.

23.8k|1.2k|Updated Aug 26, 2023
One-click install
npx skills add https://github.com/tursodatabase/turso --skill differential-fuzzer
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: differential-fuzzer
Source: https://github.com/tursodatabase/turso/tree/main/.claude/skills/differential-fuzzer
Command: npx skills add https://github.com/tursodatabase/turso --skill differential-fuzzer

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

The differential fuzzer validates Turso results against SQLite by automatically generating a broad set of SQL statements and flagging mismatches, helping developers catch correctness bugs early.

Core Features & Use Cases

  • Cross-engine validation: compares results between Turso and SQLite for generated queries.
  • Flexible fuzzing scenarios: supports single runs and loop-based continuous fuzzing to stress-test databases.
  • Debuggable outputs: records failed statements and schema at failure for reproduction and debugging.

Quick Start

Execute cargo run --bin differential_fuzzer to start a basic fuzzing session. You can adjust the seed with --seed and control the number of statements with -n. To preserve outputs for debugging, use --keep-files.

Frequently Asked Questions about differential-fuzzer

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I validate SQL query results in Rust against SQLite?

You can validate SQL query results by running cross-engine differential fuzzing, which automatically generates SQL statements and compares Turso outputs against SQLite to flag result mismatches.

What is cross-engine differential fuzzing for database testing?

Cross-engine differential fuzzing is a validation technique that generates broad sets of SQL statements and compares results between Turso and SQLite to catch correctness bugs early in development.

How do I run a continuous fuzzing loop to stress-test a SQLite database?

You can run continuous loop fuzzing by executing the differential_fuzzer binary via cargo run, using the --seed flag to adjust generation and -n to control the number of SQL statements executed.

Can I reproduce SQL validation failures found during fuzzing?

Yes, you can reproduce failures by using the --keep-files flag, which preserves output artifacts including the failed SQL statements and database schema at the point of failure for debugging.

Do I need the Rust toolchain to run SQL differential fuzzing in CI?

Yes, the Rust toolchain is required to run the differential_fuzzer binary locally or in CI environments, as the fuzzing workflow is built and executed through cargo.

Why does my Turso database return different results than SQLite for generated queries?

Differences occur when Turso outputs mismatch SQLite results during automated SQL generation, indicating a correctness bug that the differential fuzzer records for reproduction and debugging.