Use Filemode in TreeBuilder.Insert, and add test coverage for some
TreeBuilder methods.
This commit is contained in:
parent
aa59dccea7
commit
090dc7ee39
2
tree.go
2
tree.go
|
@ -149,7 +149,7 @@ func (v *TreeBuilder) Free() {
|
|||
C.git_treebuilder_free(v.ptr)
|
||||
}
|
||||
|
||||
func (v *TreeBuilder) Insert(filename string, id *Oid, filemode int) error {
|
||||
func (v *TreeBuilder) Insert(filename string, id *Oid, filemode Filemode) error {
|
||||
cfilename := C.CString(filename)
|
||||
defer C.free(unsafe.Pointer(cfilename))
|
||||
|
||||
|
|
41
tree_test.go
41
tree_test.go
|
@ -20,3 +20,44 @@ func TestTreeEntryById(t *testing.T) {
|
|||
t.Fatalf("entry id %v was not found", id)
|
||||
}
|
||||
}
|
||||
|
||||
func TestTreeBuilderInsert(t *testing.T) {
|
||||
repo := createTestRepo(t)
|
||||
defer cleanupTestRepo(t, repo)
|
||||
|
||||
subTree, err := repo.TreeBuilder()
|
||||
if err != nil {
|
||||
t.Fatalf("TreeBuilder: %v", err)
|
||||
}
|
||||
defer subTree.Free()
|
||||
|
||||
odb, err := repo.Odb()
|
||||
if err != nil {
|
||||
t.Fatalf("repo.Odb: %v", err)
|
||||
}
|
||||
blobId, err := odb.Write([]byte("hello"), ObjectBlob)
|
||||
if err != nil {
|
||||
t.Fatalf("odb.Write: %v", err)
|
||||
}
|
||||
if err = subTree.Insert("subfile", blobId, FilemodeBlobExecutable); err != nil {
|
||||
t.Fatalf("TreeBuilder.Insert: %v", err)
|
||||
}
|
||||
treeID, err := subTree.Write()
|
||||
if err != nil {
|
||||
t.Fatalf("TreeBuilder.Write: %v", err)
|
||||
}
|
||||
|
||||
tree, err := repo.LookupTree(treeID)
|
||||
if err != nil {
|
||||
t.Fatalf("LookupTree: %v", err)
|
||||
}
|
||||
|
||||
entry, err := tree.EntryByPath("subfile")
|
||||
if err != nil {
|
||||
t.Fatalf("tree.EntryByPath(%q): %v", "subfile", err)
|
||||
}
|
||||
|
||||
if !entry.Id.Equal(blobId) {
|
||||
t.Fatalf("got oid %v, want %v", entry.Id, blobId)
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue