Commit graph

4 commits

Author SHA1 Message Date
Ruud van Asseldonk
2dbd9ae3d8 Update seed_fuzz_corpus for new fuzzers
Well, "new", they have been there for a while, but apparently I forgot
to update this script.
2025-03-02 20:51:55 +01:00
Ruud van Asseldonk
9216b44900 Adjust the schema of the fuzzer, expand corpus
I accidentally reused the mode letter for typecheck and for toml export.
So now is maybe a good time to create a copy of every input, reorder the
modes, then minimize the corpus again.
2024-02-15 22:25:49 +01:00
Ruud van Asseldonk
041308291d Prepend fuzz header from seed_fuzz_corpus.py
Without this, the inputs are immediately discarded by the fuzzer -- so
it turns out this seeding was not doing anything all the time! When I
run it now, it crashes instantly with a SIGSGEV. It is not caught by
libfuzzer itself so I can't see which input is crashing, but I suspect
it's my stack overflow example. Let's handle that and see if I can still
make the fuzzer crash.
2023-12-17 22:38:52 +01:00
Ruud van Asseldonk
d068e20d77 Add a script to seed the fuzz corpus from goldens
The fuzzer is having a hard time discovering interesting inputs to
key_by. So far it discovered that it can do

    [true].key_by({}.key_by)

which works, because {}.key_by(true) does not fail because the input is
empty, so it returns and empty dict, and then the output is {{}: true}.
But the fuzzer has not yet discovered that key_by is supposed to receive
a lambda, and it's not producing any interesting groupings.

But we do have a corpus of goldens that covers these cases. They are not
as small as the fuzz inputs, but they might be a good starting point. So
let's add a script to seed the fuzz corpus. So far I'm still not
impressed, but maybe I am just impatient and I need to let the fuzzer
run a bit longer.
2023-12-01 01:07:44 +01:00