Skip to content

Commit

Permalink
tests: always clean up temporary repository dirs
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
pks-t committed Apr 24, 2015
1 parent e021457 commit e300945
Show file tree
Hide file tree
Showing 20 changed files with 83 additions and 80 deletions.
4 changes: 1 addition & 3 deletions blame_test.go
Original file line number Diff line number Diff line change
@@ -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")
Expand Down
3 changes: 1 addition & 2 deletions blob_test.go
Original file line number Diff line number Diff line change
@@ -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)
Expand Down
8 changes: 7 additions & 1 deletion branch_test.go
Original file line number Diff line number Diff line change
@@ -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)
Expand All @@ -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)
Expand Down
2 changes: 2 additions & 0 deletions cherrypick_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -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)

Expand Down
7 changes: 3 additions & 4 deletions clone_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -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)
}
7 changes: 2 additions & 5 deletions diff_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -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)

Expand Down Expand Up @@ -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)

Expand Down
13 changes: 13 additions & 0 deletions git_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -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")
Expand Down
13 changes: 6 additions & 7 deletions index_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand All @@ -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)
Expand All @@ -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)
Expand Down Expand Up @@ -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)
Expand All @@ -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)
Expand Down
11 changes: 5 additions & 6 deletions merge_test.go
Original file line number Diff line number Diff line change
@@ -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")
Expand All @@ -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")
Expand All @@ -44,7 +45,6 @@ func TestMergeAnalysisWithSelf(t *testing.T) {
}

func TestMergeSameFile(t *testing.T) {

file := MergeFileInput{
Path: "test",
Mode: 33188,
Expand All @@ -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)
Expand Down
10 changes: 5 additions & 5 deletions note_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,14 @@ package git

import (
"fmt"
"os"
"reflect"
"testing"
"time"
)

func TestCreateNote(t *testing.T) {
repo := createTestRepo(t)
defer os.RemoveAll(repo.Workdir())
defer cleanupTestRepo(t, repo)

commitId, _ := seedTestRepo(t, repo)

Expand All @@ -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)
Expand Down Expand Up @@ -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)

Expand All @@ -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)
Expand Down
7 changes: 4 additions & 3 deletions object_test.go
Original file line number Diff line number Diff line change
@@ -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
Expand Down Expand Up @@ -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)
Expand Down
10 changes: 6 additions & 4 deletions odb_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -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()
Expand Down Expand Up @@ -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()
Expand All @@ -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()
Expand Down
3 changes: 1 addition & 2 deletions patch_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
6 changes: 3 additions & 3 deletions push_test.go
Original file line number Diff line number Diff line change
@@ -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)
Expand Down
Loading

0 comments on commit e300945

Please sign in to comment.