From 07642bf10c06ec77b16b80cfb386715f5180c954 Mon Sep 17 00:00:00 2001 From: Dmitry Vyukov Date: Thu, 21 Oct 2021 19:40:01 +0200 Subject: syz-verifier: rename test_utils.go to utils_test.go test_utils.go must be parts of tests (used only by tests), rather than of the binary itself. Currently it is part of the binary since it does not end with _test.go. This works with go tool, but confuses bazel+glaze which does not want to add test_utils.go into the test target. --- syz-verifier/test_utils.go | 105 --------------------------------------------- syz-verifier/utils_test.go | 105 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 105 insertions(+), 105 deletions(-) delete mode 100644 syz-verifier/test_utils.go create mode 100644 syz-verifier/utils_test.go diff --git a/syz-verifier/test_utils.go b/syz-verifier/test_utils.go deleted file mode 100644 index 517d17232..000000000 --- a/syz-verifier/test_utils.go +++ /dev/null @@ -1,105 +0,0 @@ -// Copyright 2021 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. - -package main - -import ( - "io/ioutil" - "math/rand" - "os" - "testing" - "time" - - "github.com/google/syzkaller/pkg/ipc" - "github.com/google/syzkaller/pkg/osutil" - "github.com/google/syzkaller/prog" -) - -func createTestServer(t *testing.T) *RPCServer { - target, err := prog.GetTarget("test", "64") - if err != nil { - t.Fatalf("failed to initialise test target: %v", err) - } - vrf := Verifier{ - target: target, - choiceTable: target.DefaultChoiceTable(), - rnd: rand.New(rand.NewSource(time.Now().UnixNano())), - progIdx: 3, - reruns: 1, - } - vrf.resultsdir = makeTestResultDirectory(t) - vrf.stats = emptyTestStats() - srv, err := startRPCServer(&vrf) - if err != nil { - t.Fatalf("failed to initialise RPC server: %v", err) - } - return srv -} - -func getTestProgram(t *testing.T) *prog.Prog { - p := "breaks_returns()\n" + - "minimize$0(0x1, 0x1)\n" + - "test$res0()\n" - target := prog.InitTargetTest(t, "test", "64") - prog, err := target.Deserialize([]byte(p), prog.Strict) - if err != nil { - t.Fatalf("failed to deserialise test program: %v", err) - } - return prog -} - -func makeTestResultDirectory(t *testing.T) string { - dir, err := ioutil.TempDir("", "syz-verifier") - if err != nil { - t.Fatalf("failed to create results directory: %v", err) - } - t.Cleanup(func() { - os.RemoveAll(dir) - }) - return osutil.Abs(dir) -} - -func makeExecResult(pool int, errnos []int, flags ...int) *ExecResult { - r := &ExecResult{Pool: pool, Info: ipc.ProgInfo{Calls: []ipc.CallInfo{}}} - for _, e := range errnos { - r.Info.Calls = append(r.Info.Calls, ipc.CallInfo{Errno: e}) - } - - for idx, f := range flags { - r.Info.Calls[idx].Flags = ipc.CallFlags(f) - } - return r -} - -func makeExecResultCrashed(pool int) *ExecResult { - return &ExecResult{Pool: pool, Crashed: true} -} - -func emptyTestStats() *Stats { - return &Stats{ - Calls: map[string]*CallStats{ - "breaks_returns": {Name: "breaks_returns", States: map[ReturnState]bool{}}, - "minimize$0": {Name: "minimize$0", States: map[ReturnState]bool{}}, - "test$res0": {Name: "test$res0", States: map[ReturnState]bool{}}, - }, - } -} - -func makeCallStats(name string, occurrences, mismatches int, states map[ReturnState]bool) *CallStats { - return &CallStats{Name: name, - Occurrences: occurrences, - Mismatches: mismatches, - States: states} -} - -func returnState(errno int, flags ...int) ReturnState { - rs := ReturnState{Errno: errno} - if flags != nil { - rs.Flags = ipc.CallFlags(flags[0]) - } - return rs -} - -func crashedReturnState() ReturnState { - return ReturnState{Crashed: true} -} diff --git a/syz-verifier/utils_test.go b/syz-verifier/utils_test.go new file mode 100644 index 000000000..517d17232 --- /dev/null +++ b/syz-verifier/utils_test.go @@ -0,0 +1,105 @@ +// Copyright 2021 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. + +package main + +import ( + "io/ioutil" + "math/rand" + "os" + "testing" + "time" + + "github.com/google/syzkaller/pkg/ipc" + "github.com/google/syzkaller/pkg/osutil" + "github.com/google/syzkaller/prog" +) + +func createTestServer(t *testing.T) *RPCServer { + target, err := prog.GetTarget("test", "64") + if err != nil { + t.Fatalf("failed to initialise test target: %v", err) + } + vrf := Verifier{ + target: target, + choiceTable: target.DefaultChoiceTable(), + rnd: rand.New(rand.NewSource(time.Now().UnixNano())), + progIdx: 3, + reruns: 1, + } + vrf.resultsdir = makeTestResultDirectory(t) + vrf.stats = emptyTestStats() + srv, err := startRPCServer(&vrf) + if err != nil { + t.Fatalf("failed to initialise RPC server: %v", err) + } + return srv +} + +func getTestProgram(t *testing.T) *prog.Prog { + p := "breaks_returns()\n" + + "minimize$0(0x1, 0x1)\n" + + "test$res0()\n" + target := prog.InitTargetTest(t, "test", "64") + prog, err := target.Deserialize([]byte(p), prog.Strict) + if err != nil { + t.Fatalf("failed to deserialise test program: %v", err) + } + return prog +} + +func makeTestResultDirectory(t *testing.T) string { + dir, err := ioutil.TempDir("", "syz-verifier") + if err != nil { + t.Fatalf("failed to create results directory: %v", err) + } + t.Cleanup(func() { + os.RemoveAll(dir) + }) + return osutil.Abs(dir) +} + +func makeExecResult(pool int, errnos []int, flags ...int) *ExecResult { + r := &ExecResult{Pool: pool, Info: ipc.ProgInfo{Calls: []ipc.CallInfo{}}} + for _, e := range errnos { + r.Info.Calls = append(r.Info.Calls, ipc.CallInfo{Errno: e}) + } + + for idx, f := range flags { + r.Info.Calls[idx].Flags = ipc.CallFlags(f) + } + return r +} + +func makeExecResultCrashed(pool int) *ExecResult { + return &ExecResult{Pool: pool, Crashed: true} +} + +func emptyTestStats() *Stats { + return &Stats{ + Calls: map[string]*CallStats{ + "breaks_returns": {Name: "breaks_returns", States: map[ReturnState]bool{}}, + "minimize$0": {Name: "minimize$0", States: map[ReturnState]bool{}}, + "test$res0": {Name: "test$res0", States: map[ReturnState]bool{}}, + }, + } +} + +func makeCallStats(name string, occurrences, mismatches int, states map[ReturnState]bool) *CallStats { + return &CallStats{Name: name, + Occurrences: occurrences, + Mismatches: mismatches, + States: states} +} + +func returnState(errno int, flags ...int) ReturnState { + rs := ReturnState{Errno: errno} + if flags != nil { + rs.Flags = ipc.CallFlags(flags[0]) + } + return rs +} + +func crashedReturnState() ReturnState { + return ReturnState{Crashed: true} +} -- cgit mrf-deployment