From 84a6637d281c4e14578ff2f64d51ec2e995dd45e Mon Sep 17 00:00:00 2001 From: Dmitry Vyukov Date: Mon, 4 Dec 2017 11:10:12 +0100 Subject: pkg/report: add fuzz test Found 3 bugs already. Update #457 --- pkg/report/fuzz.go | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 pkg/report/fuzz.go (limited to 'pkg') diff --git a/pkg/report/fuzz.go b/pkg/report/fuzz.go new file mode 100644 index 000000000..b7f5ef2a5 --- /dev/null +++ b/pkg/report/fuzz.go @@ -0,0 +1,36 @@ +// Copyright 2017 syzkaller project authors. All rights reserved. +// Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file. + +// +build gofuzz + +package report + +import ( + "regexp" +) + +var reporter, _ = NewReporter("linux", "", "", nil, []*regexp.Regexp{regexp.MustCompile("foo")}) + +func FuzzLinux(data []byte) int { + containsCrash := reporter.ContainsCrash(data) + rep := reporter.Parse(data) + if containsCrash != (rep != nil) { + panic("ContainsCrash and Parse disagree") + } + if rep == nil { + return 0 + } + if rep.Title == "" { + panic("rep.Title == \"\"") + } + if len(rep.Report) == 0 { + panic("len(rep.Report) == 0") + } + if len(rep.Output) == 0 { + panic("len(rep.Output) == 0") + } + if rep.StartPos >= rep.EndPos { + panic("rep.StartPos >= rep.EndPos") + } + return 1 +} -- cgit mrf-deployment