mirror of
https://github.com/browseros-ai/BrowserOS.git
synced 2026-05-13 23:53:25 +00:00
78 lines
2.1 KiB
Go
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")
|
|
}
|
|
}
|