Oid: make sure not to dereference a NULL git_oid #9

Merged
carlosmn merged 1 commits from nil-oid into master 2013-03-08 09:09:44 -06:00
2 changed files with 16 additions and 0 deletions
Showing only changes of commit 62a16395b1 - Show all commits

4
git.go
View File

@ -26,6 +26,10 @@ type Oid struct {
}
func newOidFromC(coid *C.git_oid) *Oid {
if coid == nil {
return nil
}
oid := new(Oid)
copy(oid.bytes[0:20], C.GoBytes(unsafe.Pointer(coid), 20))
return oid

View File

@ -43,10 +43,22 @@ func TestRefModification(t *testing.T) {
checkFatal(t, err)
checkRefType(t, ref, SYMBOLIC)
if target := ref.Target(); target != nil {
t.Fatalf("Expected nil *Oid, got %v", target)
}
ref, err = ref.Resolve()
checkFatal(t, err)
checkRefType(t, ref, OID)
if target := ref.Target(); target == nil {
t.Fatalf("Expected valid target got nil")
}
if target := ref.SymbolicTarget(); target != "" {
t.Fatalf("Expected empty string, got %v", target)
}
if commitId.String() != ref.Target().String() {
t.Fatalf("Wrong ref target")
}