aboutsummaryrefslogtreecommitdiffstats
path: root/pkg/manager/diff_test.go
diff options
context:
space:
mode:
authorAleksandr Nogikh <nogikh@google.com>2026-01-23 17:18:49 +0100
committerAleksandr Nogikh <nogikh@google.com>2026-01-23 20:35:29 +0000
commit4f25b9b48bdfbc7adeaf320f8d92067afe509b49 (patch)
treee66a51fc3786e8bb8abba5ca89cfc152a59e971f /pkg/manager/diff_test.go
parentb4afeb6fb8cde041ba03048f5e123ed3f304a5e6 (diff)
pkg/manager: split off diff fuzzer functionality
Move the code to a separate pkg/manager/diff package. Split the code into several files.
Diffstat (limited to 'pkg/manager/diff_test.go')
-rw-r--r--pkg/manager/diff_test.go122
1 files changed, 0 insertions, 122 deletions
diff --git a/pkg/manager/diff_test.go b/pkg/manager/diff_test.go
deleted file mode 100644
index a73c31ffb..000000000
--- a/pkg/manager/diff_test.go
+++ /dev/null
@@ -1,122 +0,0 @@
-// Copyright 2025 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 manager
-
-import (
- "fmt"
- "testing"
-
- "github.com/google/syzkaller/pkg/mgrconfig"
- "github.com/google/syzkaller/pkg/osutil"
- "github.com/stretchr/testify/assert"
- "github.com/stretchr/testify/require"
-)
-
-func TestPatchFocusAreas(t *testing.T) {
- cfg := &mgrconfig.Config{
- KernelSrc: t.TempDir(),
- }
- require.NoError(t, osutil.FillDirectory(cfg.KernelSrc, map[string]string{
- "header.h": `Test`,
- "a.c": `#include <header.h>
-int main(void) { }`,
- "b.c": `int main(void) { }`,
- "c.c": `int main(void) { }`,
- }))
-
- baseHashes, patchedHashes := dummySymbolHashes(), dummySymbolHashes()
- baseHashes["function"] = "hash1"
- patchedHashes["function"] = "hash2"
-
- PatchFocusAreas(cfg, [][]byte{
- []byte(`diff --git a/b.c b/b.c
-index 103167d..fbf7a68 100644
---- a/b.c
-+++ b/b.c
-@@ -1 +1 @@
--int main(void) { }
-\ No newline at end of file
-+int main(void) { return 1; }
-\ No newline at end of file`),
- // Also, emulate an update to header.h.
- []byte(`diff --git a/header.h b/header.h
-index 103167d..fbf7a68 100644
---- a/header.h
-+++ b/header.h
-@@ -1 +1 @@
--Test
-\ No newline at end of file
-+Test2
-\ No newline at end of file`),
- }, baseHashes, patchedHashes)
-
- assert.Equal(t, []mgrconfig.FocusArea{
- {
- Name: symbolsArea,
- Filter: mgrconfig.CovFilterCfg{
- Functions: []string{"^function$"},
- },
- Weight: 6.0,
- },
- {
- Name: filesArea,
- Filter: mgrconfig.CovFilterCfg{
- Files: []string{"b.c", "header.h"},
- },
- Weight: 3.0,
- },
- {
- Name: includesArea,
- Filter: mgrconfig.CovFilterCfg{
- Files: []string{"a.c"},
- },
- Weight: 2.0,
- },
- {
- Weight: 1.0,
- },
- }, cfg.Experimental.FocusAreas)
-}
-
-func dummySymbolHashes() map[string]string {
- ret := map[string]string{}
- for i := 0; i < 100; i++ {
- ret[fmt.Sprint(i)] = fmt.Sprint(i)
- }
- return ret
-}
-
-func TestModifiedSymbols(t *testing.T) {
- t.Run("too many changed", func(t *testing.T) {
- ret := modifiedSymbols(map[string]string{
- "functionA": "hash1",
- "functionB": "hash2",
- }, map[string]string{
- "functionA": "hash1",
- "functionB": "hash is not hash2",
- })
- assert.Empty(t, ret)
- })
- t.Run("less than threshold", func(t *testing.T) {
- base, patched := dummySymbolHashes(), dummySymbolHashes()
- base["function"] = "hash1"
- patched["function"] = "hash2"
- base["function2"] = "hash1"
- patched["function2"] = "hash2"
- assert.Equal(t, []string{"function", "function2"}, modifiedSymbols(base, patched))
- })
-}
-
-func TestNeedReproForTitle(t *testing.T) {
- for title, skip := range map[string]bool{
- "no output from test machine": false,
- "SYZFAIL: read failed": false,
- "lost connection to test machine": false,
- "INFO: rcu detected stall in clone": false,
- "WARNING in arch_install_hw_breakpoint": true,
- "KASAN: slab-out-of-bounds Write in __bpf_get_stackid": true,
- } {
- assert.Equal(t, skip, needReproForTitle(title), "title=%q", title)
- }
-}