github.com/google/syzkaller@v0.0.0-20251211124644-a066d2bc4b02/syz-cluster/pkg/triage/git_test.go (about) 1 // Copyright 2024 syzkaller project authors. All rights reserved. 2 // Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file. 3 4 package triage 5 6 import ( 7 "path/filepath" 8 "testing" 9 10 "github.com/google/syzkaller/pkg/osutil" 11 "github.com/google/syzkaller/pkg/vcs" 12 "github.com/google/syzkaller/syz-cluster/pkg/api" 13 "github.com/stretchr/testify/assert" 14 ) 15 16 func TestGitTreeOpsHead(t *testing.T) { 17 baseDir := t.TempDir() 18 repo := vcs.MakeTestRepo(t, baseDir) 19 // Emulate the behavior of the kernel-disk machinery. 20 osutil.WriteFile(filepath.Join(baseDir, "file.txt"), []byte("Some content")) 21 repo.Git("add", "file.txt") 22 head1 := repo.CommitChange("first head") 23 repo.SetTag("mainline/main") 24 osutil.WriteFile(filepath.Join(baseDir, "file.txt"), []byte("Another content")) 25 repo.Git("add", "file.txt") 26 head2 := repo.CommitChange("second head") 27 repo.SetTag("second/main") 28 // Verify that the right commits are queried. 29 ops, err := NewGitTreeOps(baseDir, false) 30 assert.NoError(t, err) 31 commit, err := ops.HeadCommit(&api.Tree{Name: "mainline", Branch: "main"}) 32 assert.NoError(t, err) 33 assert.Equal(t, head1.Hash, commit.Hash) 34 commit, err = ops.HeadCommit(&api.Tree{Name: "second", Branch: "main"}) 35 assert.NoError(t, err) 36 assert.Equal(t, head2.Hash, commit.Hash) 37 } 38 39 func TestGitTreeOpsApply(t *testing.T) { 40 baseDir := t.TempDir() 41 repo := vcs.MakeTestRepo(t, baseDir) 42 osutil.WriteFile(filepath.Join(baseDir, "file.txt"), []byte("First\nSecond\nThird\n")) 43 repo.Git("add", "file.txt") 44 base := repo.CommitChange("base") 45 46 ops, err := NewGitTreeOps(baseDir, false) 47 assert.NoError(t, err) 48 assert.Error(t, ops.ApplySeries(base.Hash, [][]byte{goodPatch, wontApply})) 49 assert.NoError(t, ops.ApplySeries(base.Hash, [][]byte{goodPatch})) 50 } 51 52 var wontApply = []byte(`From dc2cf7bc4a9dbe170d47338d0fe6d2351c88c9d1 Mon Sep 17 00:00:00 2001 53 From: Test Syzkaller <test@syzkaller.com> 54 Date: Tue, 10 Dec 2024 17:58:20 +0100 55 Subject: [PATCH] change1 56 57 --- 58 file.txt | 6 +++--- 59 1 file changed, 3 insertions(+), 3 deletions(-) 60 61 diff --git a/file.txt b/file.txt 62 index 0d39765..97c39a4 100644 63 --- a/file.txt 64 +++ b/file.txt 65 @@ -1,3 +1,3 @@ 66 -1First 67 -1Second 68 -1Third 69 +First1 70 +Second 71 +Third1 72 -- 73 2.47.1.545.g3c1d2e2a6a-goog 74 `) 75 76 var goodPatch = []byte(`From 708670e05c0462d3783f774cef82f9a3b3099f9a Mon Sep 17 00:00:00 2001 77 From: Test Syzkaller <test@syzkaller.com> 78 Date: Tue, 10 Dec 2024 17:57:37 +0100 79 Subject: [PATCH] change1 80 81 --- 82 file.txt | 4 ++-- 83 1 file changed, 2 insertions(+), 2 deletions(-) 84 85 diff --git a/file.txt b/file.txt 86 index ab7c514..97c39a4 100644 87 --- a/file.txt 88 +++ b/file.txt 89 @@ -1,3 +1,3 @@ 90 -First 91 +First1 92 Second 93 -Third 94 +Third1 95 -- 96 2.47.1.545.g3c1d2e2a6a-goog 97 `)