summaryrefslogtreecommitdiff
path: root/blob_test.go
diff options
context:
space:
mode:
authorCarlos Martín Nieto <[email protected]>2016-08-27 21:02:47 +0200
committerGitHub <[email protected]>2016-08-27 21:02:47 +0200
commite1467c0641eaf7d3f3c9f5df87b0453747c46ad8 (patch)
treef1800920846b36d1f302028c015ff027fe8eb60a /blob_test.go
parent0703dae9b29c1c47d67f2388342b7a0bc87f55b8 (diff)
parent5c678353faa4f180ee4ad8a5e58ca71e093cf757 (diff)
Merge pull request #337 from libgit2/cmn/go16-blob-pointer
Work around the finnicky 1.6 CGo pointer checks
Diffstat (limited to 'blob_test.go')
-rw-r--r--blob_test.go24
1 files changed, 24 insertions, 0 deletions
diff --git a/blob_test.go b/blob_test.go
index 2b5ec4f..6b7cd49 100644
--- a/blob_test.go
+++ b/blob_test.go
@@ -1,9 +1,21 @@
package git
import (
+ "bytes"
"testing"
)
+type bufWrapper struct {
+ buf [64]byte
+ pointer []byte
+}
+
+func doublePointerBytes() []byte {
+ o := &bufWrapper{}
+ o.pointer = o.buf[0:10]
+ return o.pointer[0:1]
+}
+
func TestCreateBlobFromBuffer(t *testing.T) {
repo := createTestRepo(t)
defer cleanupTestRepo(t, repo)
@@ -14,4 +26,16 @@ func TestCreateBlobFromBuffer(t *testing.T) {
if id.String() != "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391" {
t.Fatal("Empty buffer did not deliver empty blob id")
}
+
+ for _, data := range []([]byte){[]byte("hello there"), doublePointerBytes()} {
+ id, err = repo.CreateBlobFromBuffer(data)
+ checkFatal(t, err)
+
+ blob, err := repo.LookupBlob(id)
+ checkFatal(t, err)
+ if !bytes.Equal(blob.Contents(), data) {
+ t.Fatal("Loaded bytes don't match original bytes:",
+ blob.Contents(), "!=", data)
+ }
+ }
}