diff options
Diffstat (limited to 'object/tree/parse_test.go')
| -rw-r--r-- | object/tree/parse_test.go | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/object/tree/parse_test.go b/object/tree/parse_test.go index 6f00220e..bf1c2fd0 100644 --- a/object/tree/parse_test.go +++ b/object/tree/parse_test.go @@ -74,3 +74,34 @@ func TestTreeParseFromGit(t *testing.T) { } }) } + +func TestTreeInsertEntryCopiesName(t *testing.T) { + t.Parallel() + + var tr tree.Tree + name := []byte("alpha") + entry := tree.TreeEntry{ + Mode: tree.FileModeRegular, + Name: name, + ID: objectid.ObjectID{}, + } + + if err := tr.InsertEntry(entry); err != nil { + t.Fatalf("InsertEntry: %v", err) + } + + name[0] = 'b' + + got := tr.Entry([]byte("alpha")) + if got == nil { + t.Fatalf("Entry(alpha) returned nil") + } + + if !bytes.Equal(got.Name, []byte("alpha")) { + t.Fatalf("stored name = %q, want %q", got.Name, []byte("alpha")) + } + + if tr.Entry([]byte("blpha")) != nil { + t.Fatalf("mutating caller name should not affect stored entry") + } +} |
