Toolverse
Wszystkie skille

debug-fuzzer-failure

autor: noir-lang

Automatyczne debugowanie błędów fuzzerów SSA — od logu CI do naprawy w kilka minut

Instalacja

Wybierz klienta i sklonuj repozytorium do odpowiedniego katalogu skilli.

Instalacja

Szybkie info

Kategoria
Testowanie
Wyświetlenia
2

O skillu

Umożliwia szybkie znalezienie przyczyny błędów SSA fuzzerów w pipeline'u CI. Skill wyodrębnia przypadek reprodukcji z logów GitHub Actions, a następnie przeszukuje SSA passes, aby zidentyfikować, który z nich narusza semantykę kodu. Idealne dla deweloperów pracujących nad kompilatorami Noir, którzy muszą szybko przejść od czerwonego buildu do konkretnego pass'a zawierającego bug. Obsługuje fuzzer pass_vs_prev i podobne testy weryfikujące zachowanie semantyczne.

Jak używać

  1. Przygotuj link do GitHub Actions job'a, w którym fuzzer pass_vs_prev lub podobny test się nie powiódł. Link powinien mieć format https://github.com/noir-lang/noir/actions/runs/[ID]/job/[JOB_ID].

  2. Uruchom skill z adresem URL job'a jako wejście. Skill automatycznie pobierze logi z GitHub Actions i wyodrębni projekt Noir, który spowodował błąd.

  3. Zweryfikuj, że przypadek reprodukcji działa lokalnie — powinieneś otrzymać katalog zawierający src/main.nr (wygenerowany program) i Prover.toml (wartości wejściowe, które wyzwalają błąd).

  4. Użyj sub-skill'u bisect-ssa-pass, aby przeszukać SSA passes i znaleźć dokładnie ten, który narusza semantykę. Skill będzie testować poszczególne passes, aż do zidentyfikowania winnego.

  5. Przeanalizuj znaleziony pass i napraw bug w kodzie kompilera. Skill dostarcza wystarczających informacji, aby zrozumieć, które transformacje SSA powodują problem.

  6. Jeśli błąd pochodzi z fuzzerów innych niż pass_vs_prev, sprawdź nazwę testu w logach (format targets::u003cfuzzer_typeu003e::tests::fuzz_with_arbtest) i skonsultuj się z zespołem, ponieważ workflow może wymagać innego podejścia.

Podobne skille