From 56381a3b0c5178a73a7ad714a54dab5ab47e0ffa Mon Sep 17 00:00:00 2001 From: Aleksandr Nogikh Date: Mon, 14 Oct 2024 15:26:12 +0200 Subject: pkg/runtest: rely on pkg/manager seed loading logic It will help us catch broken seeds right in TestParse(). --- pkg/manager/seeds.go | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) (limited to 'pkg/manager') diff --git a/pkg/manager/seeds.go b/pkg/manager/seeds.go index 80248f04c..1e674c2f9 100644 --- a/pkg/manager/seeds.go +++ b/pkg/manager/seeds.go @@ -56,7 +56,7 @@ func LoadSeeds(cfg *mgrconfig.Config, immutable bool) Seeds { go func() { defer wg.Done() for inp := range inputs { - inp.Prog, inp.Err = LoadProg(cfg.Target, inp.Data) + inp.Prog, inp.Err = ParseSeed(cfg.Target, inp.Data) outputs <- inp } }() @@ -178,13 +178,21 @@ func versionToFlags(version uint64) fuzzer.ProgFlags { return corpusFlags } -func LoadProg(target *prog.Target, data []byte) (*prog.Prog, error) { - p, err := target.Deserialize(data, prog.NonStrict) +func ParseSeed(target *prog.Target, data []byte) (*prog.Prog, error) { + return parseProg(target, data, prog.NonStrict) +} + +func ParseSeedStrict(target *prog.Target, data []byte) (*prog.Prog, error) { + return parseProg(target, data, prog.Strict) +} + +func parseProg(target *prog.Target, data []byte, mode prog.DeserializeMode) (*prog.Prog, error) { + p, err := target.Deserialize(data, mode) if err != nil { return nil, err } if len(p.Calls) > prog.MaxCalls { - return nil, fmt.Errorf("longer than %d calls", prog.MaxCalls) + return nil, fmt.Errorf("longer than %d calls (%d)", prog.MaxCalls, len(p.Calls)) } // For some yet unknown reasons, programs with fail_nth > 0 may sneak in. Ignore them. for _, call := range p.Calls { -- cgit mrf-deployment