summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatrick Steinhardt <[email protected]>2015-04-24 12:59:29 +0200
committerPatrick Steinhardt <[email protected]>2015-04-24 13:01:51 +0200
commite300945a3d456af1b619447347cd19a779b7a8f5 (patch)
tree3e37d99c8266d130ea54b2080e20199e8073e99e
parente021457f27654ea0f1ec41963c6da62c168be853 (diff)
tests: always clean up temporary repository dirs
Some test repositories are not correctly removed after the tests did run. Fix by introducing a function that is to be used for cleaning up temporary test repositories.
-rw-r--r--blame_test.go4
-rw-r--r--blob_test.go3
-rw-r--r--branch_test.go8
-rw-r--r--cherrypick_test.go2
-rw-r--r--clone_test.go7
-rw-r--r--diff_test.go7
-rw-r--r--git_test.go13
-rw-r--r--index_test.go13
-rw-r--r--merge_test.go11
-rw-r--r--note_test.go10
-rw-r--r--object_test.go7
-rw-r--r--odb_test.go10
-rw-r--r--patch_test.go3
-rw-r--r--push_test.go6
-rw-r--r--reference_test.go10
-rw-r--r--remote_test.go28
-rw-r--r--revparse_test.go7
-rw-r--r--status_test.go8
-rw-r--r--submodule_test.go2
-rw-r--r--tag_test.go4
20 files changed, 83 insertions, 80 deletions
diff --git a/blame_test.go b/blame_test.go
index 1785042..a2a4d38 100644
--- a/blame_test.go
+++ b/blame_test.go
@@ -1,15 +1,13 @@
package git
import (
- "os"
"reflect"
"testing"
)
func TestBlame(t *testing.T) {
repo := createTestRepo(t)
- defer repo.Free()
- defer os.RemoveAll(repo.Workdir())
+ defer cleanupTestRepo(t, repo)
commitId1, _ := seedTestRepo(t, repo)
commitId2, _ := updateReadme(t, repo, "foo\nbar\nbaz\n")
diff --git a/blob_test.go b/blob_test.go
index e075192..2b5ec4f 100644
--- a/blob_test.go
+++ b/blob_test.go
@@ -1,13 +1,12 @@
package git
import (
- "os"
"testing"
)
func TestCreateBlobFromBuffer(t *testing.T) {
repo := createTestRepo(t)
- defer os.RemoveAll(repo.Workdir())
+ defer cleanupTestRepo(t, repo)
id, err := repo.CreateBlobFromBuffer(make([]byte, 0))
checkFatal(t, err)
diff --git a/branch_test.go b/branch_test.go
index 09ebeba..a0834a8 100644
--- a/branch_test.go
+++ b/branch_test.go
@@ -1,9 +1,13 @@
package git
-import "testing"
+import (
+ "testing"
+)
func TestBranchIterator(t *testing.T) {
repo := createTestRepo(t)
+ defer cleanupTestRepo(t, repo)
+
seedTestRepo(t, repo)
i, err := repo.NewBranchIterator(BranchLocal)
@@ -24,6 +28,8 @@ func TestBranchIterator(t *testing.T) {
func TestBranchIteratorEach(t *testing.T) {
repo := createTestRepo(t)
+ defer cleanupTestRepo(t, repo)
+
seedTestRepo(t, repo)
i, err := repo.NewBranchIterator(BranchLocal)
diff --git a/cherrypick_test.go b/cherrypick_test.go
index f06dbdd..09bc524 100644
--- a/cherrypick_test.go
+++ b/cherrypick_test.go
@@ -34,6 +34,8 @@ func readReadme(t *testing.T, repo *Repository) string {
func TestCherrypick(t *testing.T) {
repo := createTestRepo(t)
+ defer cleanupTestRepo(t, repo)
+
c1, _ := seedTestRepo(t, repo)
c2, _ := updateReadme(t, repo, content)
diff --git a/clone_test.go b/clone_test.go
index 97366bf..fd83fec 100644
--- a/clone_test.go
+++ b/clone_test.go
@@ -2,22 +2,21 @@ package git
import (
"io/ioutil"
- "os"
"testing"
)
func TestClone(t *testing.T) {
repo := createTestRepo(t)
- defer os.RemoveAll(repo.Workdir())
+ defer cleanupTestRepo(t, repo)
seedTestRepo(t, repo)
path, err := ioutil.TempDir("", "git2go")
checkFatal(t, err)
- _, err = Clone(repo.Path(), path, &CloneOptions{Bare: true})
- defer os.RemoveAll(path)
+ repo2, err := Clone(repo.Path(), path, &CloneOptions{Bare: true})
+ defer cleanupTestRepo(t, repo2)
checkFatal(t, err)
}
diff --git a/diff_test.go b/diff_test.go
index fc6fed9..464fae6 100644
--- a/diff_test.go
+++ b/diff_test.go
@@ -2,15 +2,13 @@ package git
import (
"errors"
- "os"
"strings"
"testing"
)
func TestFindSimilar(t *testing.T) {
repo := createTestRepo(t)
- defer repo.Free()
- defer os.RemoveAll(repo.Workdir())
+ defer cleanupTestRepo(t, repo)
originalTree, newTree := createTestTrees(t, repo)
@@ -65,8 +63,7 @@ func TestFindSimilar(t *testing.T) {
func TestDiffTreeToTree(t *testing.T) {
repo := createTestRepo(t)
- defer repo.Free()
- defer os.RemoveAll(repo.Workdir())
+ defer cleanupTestRepo(t, repo)
originalTree, newTree := createTestTrees(t, repo)
diff --git a/git_test.go b/git_test.go
index b9cf0a9..58caf71 100644
--- a/git_test.go
+++ b/git_test.go
@@ -2,11 +2,24 @@ package git
import (
"io/ioutil"
+ "os"
"path"
"testing"
"time"
)
+func cleanupTestRepo(t *testing.T, r *Repository) {
+ var err error
+ if r.IsBare() {
+ err = os.RemoveAll(r.Path())
+ } else {
+ err = os.RemoveAll(r.Workdir())
+ }
+ checkFatal(t, err)
+
+ r.Free()
+}
+
func createTestRepo(t *testing.T) *Repository {
// figure out where we can create the test repo
path, err := ioutil.TempDir("", "git2go")
diff --git a/index_test.go b/index_test.go
index 98d9a31..647a0b8 100644
--- a/index_test.go
+++ b/index_test.go
@@ -2,14 +2,13 @@ package git
import (
"io/ioutil"
- "os"
"runtime"
"testing"
)
func TestCreateRepoAndStage(t *testing.T) {
repo := createTestRepo(t)
- defer os.RemoveAll(repo.Workdir())
+ defer cleanupTestRepo(t, repo)
idx, err := repo.Index()
checkFatal(t, err)
@@ -25,10 +24,10 @@ func TestCreateRepoAndStage(t *testing.T) {
func TestIndexWriteTreeTo(t *testing.T) {
repo := createTestRepo(t)
- defer os.RemoveAll(repo.Workdir())
+ defer cleanupTestRepo(t, repo)
repo2 := createTestRepo(t)
- defer os.RemoveAll(repo.Workdir())
+ defer cleanupTestRepo(t, repo2)
idx, err := repo.Index()
checkFatal(t, err)
@@ -44,7 +43,7 @@ func TestIndexWriteTreeTo(t *testing.T) {
func TestIndexAddAndWriteTreeTo(t *testing.T) {
repo := createTestRepo(t)
- defer os.RemoveAll(repo.Workdir())
+ defer cleanupTestRepo(t, repo)
odb, err := repo.Odb()
checkFatal(t, err)
@@ -74,7 +73,7 @@ func TestIndexAddAndWriteTreeTo(t *testing.T) {
func TestIndexAddAllNoCallback(t *testing.T) {
repo := createTestRepo(t)
- defer os.RemoveAll(repo.Workdir())
+ defer cleanupTestRepo(t, repo)
err := ioutil.WriteFile(repo.Workdir()+"/README", []byte("foo\n"), 0644)
checkFatal(t, err)
@@ -95,7 +94,7 @@ func TestIndexAddAllNoCallback(t *testing.T) {
func TestIndexAddAllCallback(t *testing.T) {
repo := createTestRepo(t)
- defer os.RemoveAll(repo.Workdir())
+ defer cleanupTestRepo(t, repo)
err := ioutil.WriteFile(repo.Workdir()+"/README", []byte("foo\n"), 0644)
checkFatal(t, err)
diff --git a/merge_test.go b/merge_test.go
index 1eba806..0b1faca 100644
--- a/merge_test.go
+++ b/merge_test.go
@@ -1,13 +1,13 @@
package git
import (
- "os"
"testing"
)
func TestMergeWithSelf(t *testing.T) {
-
repo := createTestRepo(t)
+ defer cleanupTestRepo(t, repo)
+
seedTestRepo(t, repo)
master, err := repo.LookupReference("refs/heads/master")
@@ -23,8 +23,9 @@ func TestMergeWithSelf(t *testing.T) {
}
func TestMergeAnalysisWithSelf(t *testing.T) {
-
repo := createTestRepo(t)
+ defer cleanupTestRepo(t, repo)
+
seedTestRepo(t, repo)
master, err := repo.LookupReference("refs/heads/master")
@@ -44,7 +45,6 @@ func TestMergeAnalysisWithSelf(t *testing.T) {
}
func TestMergeSameFile(t *testing.T) {
-
file := MergeFileInput{
Path: "test",
Mode: 33188,
@@ -68,8 +68,7 @@ func TestMergeSameFile(t *testing.T) {
}
func TestMergeTreesWithoutAncestor(t *testing.T) {
repo := createTestRepo(t)
- defer repo.Free()
- defer os.RemoveAll(repo.Workdir())
+ defer cleanupTestRepo(t, repo)
_, originalTreeId := seedTestRepo(t, repo)
originalTree, err := repo.LookupTree(originalTreeId)
diff --git a/note_test.go b/note_test.go
index f5e9c01..e6c378d 100644
--- a/note_test.go
+++ b/note_test.go
@@ -2,7 +2,6 @@ package git
import (
"fmt"
- "os"
"reflect"
"testing"
"time"
@@ -10,7 +9,7 @@ import (
func TestCreateNote(t *testing.T) {
repo := createTestRepo(t)
- defer os.RemoveAll(repo.Workdir())
+ defer cleanupTestRepo(t, repo)
commitId, _ := seedTestRepo(t, repo)
@@ -29,7 +28,8 @@ func TestCreateNote(t *testing.T) {
func TestNoteIterator(t *testing.T) {
repo := createTestRepo(t)
- defer os.RemoveAll(repo.Workdir())
+ defer cleanupTestRepo(t, repo)
+
seedTestRepo(t, repo)
notes := make([]*Note, 5)
@@ -64,7 +64,7 @@ func TestNoteIterator(t *testing.T) {
func TestRemoveNote(t *testing.T) {
repo := createTestRepo(t)
- defer os.RemoveAll(repo.Workdir())
+ defer cleanupTestRepo(t, repo)
commitId, _ := seedTestRepo(t, repo)
@@ -87,7 +87,7 @@ func TestRemoveNote(t *testing.T) {
func TestDefaultNoteRef(t *testing.T) {
repo := createTestRepo(t)
- defer os.RemoveAll(repo.Workdir())
+ defer cleanupTestRepo(t, repo)
ref, err := repo.DefaultNoteRef()
checkFatal(t, err)
diff --git a/object_test.go b/object_test.go
index f525351..aa295e5 100644
--- a/object_test.go
+++ b/object_test.go
@@ -1,13 +1,13 @@
package git
import (
- "os"
"testing"
)
func TestObjectPoymorphism(t *testing.T) {
repo := createTestRepo(t)
- defer os.RemoveAll(repo.Workdir())
+ defer cleanupTestRepo(t, repo)
+
commitId, treeId := seedTestRepo(t, repo)
var obj Object
@@ -89,7 +89,8 @@ func checkOwner(t *testing.T, repo *Repository, obj Object) {
func TestObjectOwner(t *testing.T) {
repo := createTestRepo(t)
- defer os.RemoveAll(repo.Workdir())
+ defer cleanupTestRepo(t, repo)
+
commitId, treeId := seedTestRepo(t, repo)
commit, err := repo.LookupCommit(commitId)
diff --git a/odb_test.go b/odb_test.go
index 5e6b7ff..55ed297 100644
--- a/odb_test.go
+++ b/odb_test.go
@@ -3,13 +3,13 @@ package git
import (
"errors"
"io"
- "os"
"testing"
)
func TestOdbStream(t *testing.T) {
repo := createTestRepo(t)
- defer os.RemoveAll(repo.Workdir())
+ defer cleanupTestRepo(t, repo)
+
_, _ = seedTestRepo(t, repo)
odb, error := repo.Odb()
@@ -38,7 +38,8 @@ func TestOdbStream(t *testing.T) {
func TestOdbHash(t *testing.T) {
repo := createTestRepo(t)
- defer os.RemoveAll(repo.Workdir())
+ defer cleanupTestRepo(t, repo)
+
_, _ = seedTestRepo(t, repo)
odb, error := repo.Odb()
@@ -64,7 +65,8 @@ Initial commit.`
func TestOdbForeach(t *testing.T) {
repo := createTestRepo(t)
- defer os.RemoveAll(repo.Workdir())
+ defer cleanupTestRepo(t, repo)
+
_, _ = seedTestRepo(t, repo)
odb, err := repo.Odb()
diff --git a/patch_test.go b/patch_test.go
index a061142..2d52fb4 100644
--- a/patch_test.go
+++ b/patch_test.go
@@ -7,8 +7,7 @@ import (
func TestPatch(t *testing.T) {
repo := createTestRepo(t)
- defer repo.Free()
- //defer os.RemoveAll(repo.Workdir())
+ defer cleanupTestRepo(t, repo)
_, originalTreeId := seedTestRepo(t, repo)
originalTree, err := repo.LookupTree(originalTreeId)
diff --git a/push_test.go b/push_test.go
index cd708c6..e36e407 100644
--- a/push_test.go
+++ b/push_test.go
@@ -1,15 +1,15 @@
package git
import (
- "os"
"testing"
)
func TestRemotePush(t *testing.T) {
repo := createBareTestRepo(t)
- defer os.RemoveAll(repo.Path())
+ defer cleanupTestRepo(t, repo)
+
localRepo := createTestRepo(t)
- defer os.RemoveAll(localRepo.Workdir())
+ defer cleanupTestRepo(t, localRepo)
remote, err := localRepo.CreateRemote("test_push", repo.Path())
checkFatal(t, err)
diff --git a/reference_test.go b/reference_test.go
index c7d52fb..d6b5f22 100644
--- a/reference_test.go
+++ b/reference_test.go
@@ -1,7 +1,6 @@
package git
import (
- "os"
"runtime"
"sort"
"testing"
@@ -10,7 +9,7 @@ import (
func TestRefModification(t *testing.T) {
repo := createTestRepo(t)
- defer os.RemoveAll(repo.Workdir())
+ defer cleanupTestRepo(t, repo)
commitId, treeId := seedTestRepo(t, repo)
@@ -62,7 +61,7 @@ func TestRefModification(t *testing.T) {
func TestReferenceIterator(t *testing.T) {
repo := createTestRepo(t)
- defer os.RemoveAll(repo.Workdir())
+ defer cleanupTestRepo(t, repo)
loc, err := time.LoadLocation("Europe/Berlin")
checkFatal(t, err)
@@ -140,7 +139,8 @@ func TestReferenceIterator(t *testing.T) {
func TestReferenceOwner(t *testing.T) {
repo := createTestRepo(t)
- defer os.RemoveAll(repo.Workdir())
+ defer cleanupTestRepo(t, repo)
+
commitId, _ := seedTestRepo(t, repo)
ref, err := repo.CreateReference("refs/heads/foo", commitId, true, nil, "")
@@ -158,7 +158,7 @@ func TestReferenceOwner(t *testing.T) {
func TestUtil(t *testing.T) {
repo := createTestRepo(t)
- defer os.RemoveAll(repo.Workdir())
+ defer cleanupTestRepo(t, repo)
commitId, _ := seedTestRepo(t, repo)
diff --git a/remote_test.go b/remote_test.go
index 54a66ed..25ee13d 100644
--- a/remote_test.go
+++ b/remote_test.go
@@ -2,15 +2,13 @@ package git
import (
"fmt"
- "os"
"testing"
"time"
)
func TestRefspecs(t *testing.T) {
repo := createTestRepo(t)
- defer os.RemoveAll(repo.Workdir())
- defer repo.Free()
+ defer cleanupTestRepo(t, repo)
remote, err := repo.CreateAnonymousRemote("git://foo/bar", "refs/heads/*:refs/heads/*")
checkFatal(t, err)
@@ -31,8 +29,7 @@ func TestRefspecs(t *testing.T) {
func TestListRemotes(t *testing.T) {
repo := createTestRepo(t)
- defer os.RemoveAll(repo.Workdir())
- defer repo.Free()
+ defer cleanupTestRepo(t, repo)
_, err := repo.CreateRemote("test", "git://foo/bar")
@@ -59,8 +56,7 @@ func assertHostname(cert *Certificate, valid bool, hostname string, t *testing.T
func TestCertificateCheck(t *testing.T) {
repo := createTestRepo(t)
- defer os.RemoveAll(repo.Workdir())
- defer repo.Free()
+ defer cleanupTestRepo(t, repo)
remote, err := repo.CreateRemote("origin", "https://github.com/libgit2/TestGitRepository")
checkFatal(t, err)
@@ -79,8 +75,7 @@ func TestCertificateCheck(t *testing.T) {
func TestRemoteConnect(t *testing.T) {
repo := createTestRepo(t)
- defer os.RemoveAll(repo.Workdir())
- defer repo.Free()
+ defer cleanupTestRepo(t, repo)
remote, err := repo.CreateRemote("origin", "https://github.com/libgit2/TestGitRepository")
checkFatal(t, err)
@@ -91,8 +86,7 @@ func TestRemoteConnect(t *testing.T) {
func TestRemoteLs(t *testing.T) {
repo := createTestRepo(t)
- defer os.RemoveAll(repo.Workdir())
- defer repo.Free()
+ defer cleanupTestRepo(t, repo)
remote, err := repo.CreateRemote("origin", "https://github.com/libgit2/TestGitRepository")
checkFatal(t, err)
@@ -110,8 +104,7 @@ func TestRemoteLs(t *testing.T) {
func TestRemoteLsFiltering(t *testing.T) {
repo := createTestRepo(t)
- defer os.RemoveAll(repo.Workdir())
- defer repo.Free()
+ defer cleanupTestRepo(t, repo)
remote, err := repo.CreateRemote("origin", "https://github.com/libgit2/TestGitRepository")
checkFatal(t, err)
@@ -137,8 +130,7 @@ func TestRemoteLsFiltering(t *testing.T) {
func TestRemotePruneRefs(t *testing.T) {
repo := createTestRepo(t)
- defer os.RemoveAll(repo.Workdir())
- defer repo.Free()
+ defer cleanupTestRepo(t, repo)
config, err := repo.Config()
checkFatal(t, err)
@@ -160,8 +152,7 @@ func TestRemotePruneRefs(t *testing.T) {
func TestRemotePrune(t *testing.T) {
remoteRepo := createTestRepo(t)
- defer os.RemoveAll(remoteRepo.Workdir())
- defer remoteRepo.Free()
+ defer cleanupTestRepo(t, remoteRepo)
head, _ := seedTestRepo(t, remoteRepo)
commit, err := remoteRepo.LookupCommit(head)
@@ -178,8 +169,7 @@ func TestRemotePrune(t *testing.T) {
checkFatal(t, err)
repo := createTestRepo(t)
- defer os.RemoveAll(repo.Workdir())
- defer repo.Free()
+ defer cleanupTestRepo(t, repo)
config, err := repo.Config()
checkFatal(t, err)
diff --git a/revparse_test.go b/revparse_test.go
index c046a20..2ccdca2 100644
--- a/revparse_test.go
+++ b/revparse_test.go
@@ -1,13 +1,12 @@
package git
import (
- "os"
"testing"
)
func TestRevparse(t *testing.T) {
repo := createTestRepo(t)
- defer os.RemoveAll(repo.Workdir())
+ defer cleanupTestRepo(t, repo)
commitId, _ := seedTestRepo(t, repo)
@@ -19,7 +18,7 @@ func TestRevparse(t *testing.T) {
func TestRevparseSingle(t *testing.T) {
repo := createTestRepo(t)
- defer os.RemoveAll(repo.Workdir())
+ defer cleanupTestRepo(t, repo)
commitId, _ := seedTestRepo(t, repo)
@@ -31,7 +30,7 @@ func TestRevparseSingle(t *testing.T) {
func TestRevparseExt(t *testing.T) {
repo := createTestRepo(t)
- defer os.RemoveAll(repo.Workdir())
+ defer cleanupTestRepo(t, repo)
_, treeId := seedTestRepo(t, repo)
diff --git a/status_test.go b/status_test.go
index d18fca1..5b97b00 100644
--- a/status_test.go
+++ b/status_test.go
@@ -2,15 +2,13 @@ package git
import (
"io/ioutil"
- "os"
"path"
"testing"
)
func TestStatusFile(t *testing.T) {
repo := createTestRepo(t)
- defer repo.Free()
- defer os.RemoveAll(repo.Workdir())
+ defer cleanupTestRepo(t, repo)
state := repo.State()
if state != RepositoryStateNone {
@@ -30,10 +28,10 @@ func TestStatusFile(t *testing.T) {
func TestStatusList(t *testing.T) {
repo := createTestRepo(t)
+ defer cleanupTestRepo(t, repo)
+
// This commits the test repo README, so it doesn't show up in the status list and there's a head to compare to
seedTestRepo(t, repo)
- defer repo.Free()
- defer os.RemoveAll(repo.Workdir())
err := ioutil.WriteFile(path.Join(path.Dir(repo.Workdir()), "hello.txt"), []byte("Hello, World"), 0644)
checkFatal(t, err)
diff --git a/submodule_test.go b/submodule_test.go
index 1c8f471..ee75d53 100644
--- a/submodule_test.go
+++ b/submodule_test.go
@@ -6,6 +6,8 @@ import (
func TestSubmoduleForeach(t *testing.T) {
repo := createTestRepo(t)
+ defer cleanupTestRepo(t, repo)
+
seedTestRepo(t, repo)
_, err := repo.AddSubmodule("http://example.org/submodule", "submodule", true)
diff --git a/tag_test.go b/tag_test.go
index 126cf6e..74f9fec 100644
--- a/tag_test.go
+++ b/tag_test.go
@@ -1,14 +1,14 @@
package git
import (
- "os"
"testing"
"time"
)
func TestCreateTag(t *testing.T) {
repo := createTestRepo(t)
- defer os.RemoveAll(repo.Workdir())
+ defer cleanupTestRepo(t, repo)
+
commitId, _ := seedTestRepo(t, repo)
commit, err := repo.LookupCommit(commitId)