import "github.com/google/syzkaller/pkg/bisect"
const NumTests = 10 // number of tests we do per commit
type Config struct { Trace io.Writer Fix bool BinDir string DebugDir string Kernel KernelConfig Syzkaller SyzkallerConfig Repro ReproConfig Manager mgrconfig.Config }
type KernelConfig struct { Repo string Branch string Commit string Cmdline string Sysctl string Config []byte Userspace string }
type Result struct { Commits []*vcs.Commit Report *report.Report Commit *vcs.Commit NoopChange bool IsRelease bool }
Result describes bisection result:
- if bisection is conclusive, the single cause/fix commit in Commits - for cause bisection report is the crash on the cause commit - for fix bisection report is nil - Commit is nil - NoopChange is set if the commit did not cause any change in the kernel binary (bisection result it most likely wrong) - Bisected to a release commit - if bisection is inconclusive, range of potential cause/fix commits in Commits - report is nil in such case - Commit is nil - if the crash still happens on the oldest release/HEAD (for cause/fix bisection correspondingly) - no commits in Commits - the crash report on the oldest release/HEAD; - Commit points to the oldest/latest commit where crash happens.
Run does the bisection and returns either the Result, or, if the crash is not reproduced on the start commit, an error.
Package bisect imports 10 packages (graph) and is imported by 2 packages. Updated 2019-12-15. Refresh now. Tools for package owners.