differential-fuzzer
Porównuj wyniki Turso z SQLite, aby wyłapać błędy w logice bazy danych
Instalacja
Wybierz klienta i sklonuj repozytorium do odpowiedniego katalogu skilli.
Instalacja
O skillu
Differential Fuzzer to narzędzie do testowania poprawności bazy danych Turso. Generuje losowe instrukcje SQL i porównuje ich wyniki z SQLite, aby znaleźć rozbieżności i błędy. Umożliwia uruchamianie testów jednorazowo lub w pętli ciągłej, z możliwością ustawienia seed dla powtarzalności, liczby instrukcji, tabel i kolumn. Przydatne dla deweloperów pracujących nad Turso, którzy chcą upewnić się, że ich implementacja bazy danych zachowuje się identycznie jak SQLite.
Jak używać
Przejdź do katalogu projektu Turso i zlokalizuj folder
testing/differential-oracle/fuzzer/, gdzie znajduje się narzędzie.Uruchom podstawowy test za pomocą polecenia
cargo run --bin differential_fuzzer. Domyślnie wykonuje 100 losowych instrukcji SQL z losowym seed.Aby powtórzyć test z tym samym zestawem instrukcji, użyj flagi
--seedz konkretną liczbą, na przykładcargo run --bin differential_fuzzer -- --seed 12345.Dostosuj parametry testu według potrzeb: użyj
-ndla liczby instrukcji (np.-n 1000),-tdla liczby tabel (np.-t 5),-cdla liczby kolumn na tabelę (np.-c 10). Dodaj--verbose, aby wyświetlić każdą wygenerowaną instrukcję SQL.Jeśli chcesz debugować błędy, dodaj flagę
--keep-files, aby zachować pliki.dbna dysku po zakończeniu testu.Do ciągłego testowania uruchom fuzzer w trybie pętli poleceniem
cargo run --bin differential_fuzzer -- loop, które będzie działać nieskończenie, lubcargo run --bin differential_fuzzer -- loop 50, aby wykonać 50 iteracji.