From 05bc5e36ff93eb2195480c5cad91e6c5c44cd128 Mon Sep 17 00:00:00 2001 From: lhchavez Date: Thu, 22 Dec 2016 06:46:13 -0800 Subject: Add support for indexers and alternate odb packfiles This allows for implementations of git servers written in Go. --- odb_test.go | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) (limited to 'odb_test.go') diff --git a/odb_test.go b/odb_test.go index 46acdba..e44c927 100644 --- a/odb_test.go +++ b/odb_test.go @@ -152,3 +152,37 @@ func TestOdbForeach(t *testing.T) { t.Fatalf("Odb.ForEach() did not return the expected error, got %v", err) } } + +func TestOdbWritepack(t *testing.T) { + t.Parallel() + repo := createTestRepo(t) + defer cleanupTestRepo(t, repo) + + _, _ = seedTestRepo(t, repo) + + odb, err := repo.Odb() + checkFatal(t, err) + + var finalStats TransferProgress + writepack, err := odb.NewWritePack(func(stats TransferProgress) ErrorCode { + finalStats = stats + return ErrOk + }) + checkFatal(t, err) + defer writepack.Free() + + _, err = writepack.Write(outOfOrderPack) + checkFatal(t, err) + err = writepack.Commit() + checkFatal(t, err) + + if finalStats.TotalObjects != 3 { + t.Errorf("mismatched transferred objects, expected 3, got %v", finalStats.TotalObjects) + } + if finalStats.ReceivedObjects != 3 { + t.Errorf("mismatched received objects, expected 3, got %v", finalStats.ReceivedObjects) + } + if finalStats.IndexedObjects != 3 { + t.Errorf("mismatched indexed objects, expected 3, got %v", finalStats.IndexedObjects) + } +} -- cgit v1.2.3