test_case ~outcomes and reach: name the cases a property must exercise, see how often each was hit, and fail when one never is, so a generator that silently stops covering a case is caught (@samoht)verdict, a check over the whole campaign (such as "every outcome was reached") run once after all properties; AFL never feeds it inputs, so a campaign-wide check no longer turns into a fuzzing crash (#3, @samoht)--gen-corpus for suites with several tests: each seed now replays the test it was made for, so afl-cmin accepts the corpus instead of reporting "No instrumentation detected"; regenerate a corpus written by 0.3 (#3, @samoht)--gen-corpus DIR is a command-line option: --help lists it, it takes --gen-corpus=DIR, and a missing directory is refused by name instead of reading as an unknown option (#6, @samoht, reported by @patricoferris in #2)afl-fuzz (#6, @samoht, reported by @patricoferris in #2)--gen-corpus came up short on, and fail when no test could be seeded at all, instead of printing a count that reads like a complete corpus (@samoht)calendar example out of dune runtest: the property it demonstrates finds a genuine bug in calendar, which about half of all seeds hit, so the release failed opam CI on the compilers whose default seed found it (@samoht)Fork of Crowbar, renamed to Alcobar.
samoht/alcobar (maintainer: Thomas Gazagnaire).ocamlformat (version 0.29.0).test_case and run replace the old add_test interface; property tests run via Alcotest.run_with_args, AFL mode is preserved by detecting a file argument. Examples now build as executables with an explicit runtest rule, so test binaries can be invoked directly with CLI flags.--gen-corpus DIR flag generates seed corpus files from passing test runs, capturing the exact bytes consumed by generators.ALCOBAR_TIMEOUT env var, --timeout flag); defaults to 2 seconds. Use --timeout 0 to disable.--budget SECONDS); iteration stops when the budget is exhausted. Defaults to 2 seconds. Use --budget 0 to disable.src/ to lib/.fuzz.ml plus a fuzz_<lib>.ml[i] module exporting a suite value.%{dune-warnings} for dev flags.Build and compatibility fixes.
New generators, printers and port to dune.
Initial release