Add support for git_blob_is_binary #625

Merged
vvatanabe merged 2 commits from blob-git_blob_is_binary into master 2020-07-30 07:07:06 -05:00
2 changed files with 25 additions and 1 deletions

View File

@ -40,6 +40,12 @@ func (v *Blob) Contents() []byte {
return goBytes
}
func (v *Blob) IsBinary() bool {
ret := C.git_blob_is_binary(v.cast_ptr) == 1
runtime.KeepAlive(v)
return ret
}
func (repo *Repository) CreateBlobFromBuffer(data []byte) (*Oid, error) {
runtime.LockOSThread()
defer runtime.UnlockOSThread()

View File

@ -28,7 +28,21 @@ func TestCreateBlobFromBuffer(t *testing.T) {
t.Fatal("Empty buffer did not deliver empty blob id")
}
for _, data := range []([]byte){[]byte("hello there"), doublePointerBytes()} {
tests := []struct {
data []byte
isBinary bool
}{
{
data: []byte("hello there"),
isBinary: false,
},
{
data: doublePointerBytes(),
isBinary: true,
},
}
for _, tt := range tests {
data := tt.data
id, err = repo.CreateBlobFromBuffer(data)
checkFatal(t, err)
@ -38,5 +52,9 @@ func TestCreateBlobFromBuffer(t *testing.T) {
t.Fatal("Loaded bytes don't match original bytes:",
blob.Contents(), "!=", data)
}
want := tt.isBinary
if got := blob.IsBinary(); got != want {
t.Fatalf("IsBinary() = %v, want %v", got, want)
}
}
}