Add test.Helper, also works with Go 1.8
This commit is contained in:
parent
a472868e06
commit
0532f08048
4 changed files with 41 additions and 0 deletions
|
@ -3,6 +3,8 @@ package fs
|
||||||
import (
|
import (
|
||||||
"os"
|
"os"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
|
"github.com/restic/restic/internal/test"
|
||||||
)
|
)
|
||||||
|
|
||||||
// IsRegularFile returns true if fi belongs to a normal file. If fi is nil,
|
// IsRegularFile returns true if fi belongs to a normal file. If fi is nil,
|
||||||
|
@ -17,6 +19,8 @@ func IsRegularFile(fi os.FileInfo) bool {
|
||||||
|
|
||||||
// TestChdir changes the current directory to dest, the function back returns to the previous directory.
|
// TestChdir changes the current directory to dest, the function back returns to the previous directory.
|
||||||
func TestChdir(t testing.TB, dest string) (back func()) {
|
func TestChdir(t testing.TB, dest string) (back func()) {
|
||||||
|
test.Helper(t).Helper()
|
||||||
|
|
||||||
prev, err := os.Getwd()
|
prev, err := os.Getwd()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
|
@ -29,6 +33,7 @@ func TestChdir(t testing.TB, dest string) (back func()) {
|
||||||
}
|
}
|
||||||
|
|
||||||
return func() {
|
return func() {
|
||||||
|
test.Helper(t).Helper()
|
||||||
t.Logf("chdir back to %v", prev)
|
t.Logf("chdir back to %v", prev)
|
||||||
err = os.Chdir(prev)
|
err = os.Chdir(prev)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
|
@ -42,6 +42,7 @@ const testChunkerPol = chunker.Pol(0x3DA3358B4DC173)
|
||||||
// password. If be is nil, an in-memory backend is used. A constant polynomial
|
// password. If be is nil, an in-memory backend is used. A constant polynomial
|
||||||
// is used for the chunker and low-security test parameters.
|
// is used for the chunker and low-security test parameters.
|
||||||
func TestRepositoryWithBackend(t testing.TB, be restic.Backend) (r restic.Repository, cleanup func()) {
|
func TestRepositoryWithBackend(t testing.TB, be restic.Backend) (r restic.Repository, cleanup func()) {
|
||||||
|
test.Helper(t).Helper()
|
||||||
TestUseLowSecurityKDFParameters(t)
|
TestUseLowSecurityKDFParameters(t)
|
||||||
restic.TestDisableCheckPolynomial(t)
|
restic.TestDisableCheckPolynomial(t)
|
||||||
|
|
||||||
|
@ -70,6 +71,7 @@ func TestRepositoryWithBackend(t testing.TB, be restic.Backend) (r restic.Reposi
|
||||||
// a non-existing directory, a local backend is created there and this is used
|
// a non-existing directory, a local backend is created there and this is used
|
||||||
// instead. The directory is not removed, but left there for inspection.
|
// instead. The directory is not removed, but left there for inspection.
|
||||||
func TestRepository(t testing.TB) (r restic.Repository, cleanup func()) {
|
func TestRepository(t testing.TB) (r restic.Repository, cleanup func()) {
|
||||||
|
test.Helper(t).Helper()
|
||||||
dir := os.Getenv("RESTIC_TEST_REPO")
|
dir := os.Getenv("RESTIC_TEST_REPO")
|
||||||
if dir != "" {
|
if dir != "" {
|
||||||
_, err := os.Stat(dir)
|
_, err := os.Stat(dir)
|
||||||
|
|
15
internal/test/helper.go
Normal file
15
internal/test/helper.go
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
// +build go1.9
|
||||||
|
|
||||||
|
package test
|
||||||
|
|
||||||
|
import "testing"
|
||||||
|
|
||||||
|
// Helperer marks the current function as a test helper.
|
||||||
|
type Helperer interface {
|
||||||
|
Helper()
|
||||||
|
}
|
||||||
|
|
||||||
|
// Helper returns a function that marks the current function as a helper function.
|
||||||
|
func Helper(t testing.TB) Helperer {
|
||||||
|
return t
|
||||||
|
}
|
19
internal/test/helper_go18.go
Normal file
19
internal/test/helper_go18.go
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
// +build !go1.9
|
||||||
|
|
||||||
|
package test
|
||||||
|
|
||||||
|
import "testing"
|
||||||
|
|
||||||
|
// Helperer marks the current function as a test helper.
|
||||||
|
type Helperer interface {
|
||||||
|
Helper()
|
||||||
|
}
|
||||||
|
|
||||||
|
type fakeHelper struct{}
|
||||||
|
|
||||||
|
func (fakeHelper) Helper() {}
|
||||||
|
|
||||||
|
// Helper returns a function that marks the current function as a helper function.
|
||||||
|
func Helper(t testing.TB) Helperer {
|
||||||
|
return fakeHelper{}
|
||||||
|
}
|
Loading…
Reference in a new issue