Files
BrowserOS/packages/browseros/tools/bdev/internal/patch/reader_test.go
2026-03-05 10:06:41 -08:00

78 lines
2.1 KiB
Go

package patch
import (
"os"
"path/filepath"
"testing"
)
func TestReadPatchSetMarkerPrecedence(t *testing.T) {
t.Parallel()
dir := t.TempDir()
patchPath := filepath.Join(dir, "chrome", "browser", "foo.cc")
if err := os.MkdirAll(filepath.Dir(patchPath), 0o755); err != nil {
t.Fatalf("mkdir: %v", err)
}
if err := os.WriteFile(patchPath, []byte("diff --git a/chrome/browser/foo.cc b/chrome/browser/foo.cc\n"), 0o644); err != nil {
t.Fatalf("write patch: %v", err)
}
if err := os.WriteFile(patchPath+".deleted", []byte("deleted: chrome/browser/foo.cc\n"), 0o644); err != nil {
t.Fatalf("write marker: %v", err)
}
ps, err := ReadPatchSet(dir)
if err != nil {
t.Fatalf("ReadPatchSet: %v", err)
}
fp, ok := ps.Patches["chrome/browser/foo.cc"]
if !ok {
t.Fatalf("missing patch entry")
}
if fp.Op != OpDeleted {
t.Fatalf("expected OpDeleted, got %v", fp.Op)
}
if len(fp.Content) != 0 {
t.Fatalf("expected empty content for deleted marker")
}
}
func TestReadPatchSetRenameMergesContent(t *testing.T) {
t.Parallel()
dir := t.TempDir()
patchPath := filepath.Join(dir, "chrome", "browser", "new_name.cc")
if err := os.MkdirAll(filepath.Dir(patchPath), 0o755); err != nil {
t.Fatalf("mkdir: %v", err)
}
diff := "diff --git a/chrome/browser/old_name.cc b/chrome/browser/new_name.cc\nrename from chrome/browser/old_name.cc\nrename to chrome/browser/new_name.cc\n"
if err := os.WriteFile(patchPath, []byte(diff), 0o644); err != nil {
t.Fatalf("write patch: %v", err)
}
if err := os.WriteFile(patchPath+".rename", []byte("rename_from: chrome/browser/old_name.cc\nsimilarity: 92\n"), 0o644); err != nil {
t.Fatalf("write rename marker: %v", err)
}
ps, err := ReadPatchSet(dir)
if err != nil {
t.Fatalf("ReadPatchSet: %v", err)
}
fp, ok := ps.Patches["chrome/browser/new_name.cc"]
if !ok {
t.Fatalf("missing rename patch entry")
}
if fp.Op != OpRenamed {
t.Fatalf("expected OpRenamed, got %v", fp.Op)
}
if fp.OldPath != "chrome/browser/old_name.cc" {
t.Fatalf("unexpected old path: %q", fp.OldPath)
}
if len(fp.Content) == 0 {
t.Fatalf("expected rename patch to keep diff content")
}
}