mirror of
https://github.com/restic/restic.git
synced 2024-12-23 08:16:36 +00:00
fs: Add TestChdir()
This commit is contained in:
parent
e4fdc5eb76
commit
a472868e06
3 changed files with 29 additions and 45 deletions
|
@ -12,6 +12,7 @@ import (
|
||||||
|
|
||||||
"github.com/restic/restic/internal/archiver"
|
"github.com/restic/restic/internal/archiver"
|
||||||
"github.com/restic/restic/internal/crypto"
|
"github.com/restic/restic/internal/crypto"
|
||||||
|
"github.com/restic/restic/internal/fs"
|
||||||
"github.com/restic/restic/internal/repository"
|
"github.com/restic/restic/internal/repository"
|
||||||
"github.com/restic/restic/internal/restic"
|
"github.com/restic/restic/internal/restic"
|
||||||
rtest "github.com/restic/restic/internal/test"
|
rtest "github.com/restic/restic/internal/test"
|
||||||
|
@ -226,27 +227,6 @@ func TestArchiveEmptySnapshot(t *testing.T) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func chdir(t testing.TB, target string) (cleanup func()) {
|
|
||||||
curdir, err := os.Getwd()
|
|
||||||
if err != nil {
|
|
||||||
t.Fatal(err)
|
|
||||||
}
|
|
||||||
|
|
||||||
t.Logf("chdir to %v", target)
|
|
||||||
err = os.Chdir(target)
|
|
||||||
if err != nil {
|
|
||||||
t.Fatal(err)
|
|
||||||
}
|
|
||||||
|
|
||||||
return func() {
|
|
||||||
t.Logf("chdir back to %v", curdir)
|
|
||||||
err := os.Chdir(curdir)
|
|
||||||
if err != nil {
|
|
||||||
t.Fatal(err)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func TestArchiveNameCollision(t *testing.T) {
|
func TestArchiveNameCollision(t *testing.T) {
|
||||||
repo, cleanup := repository.TestRepository(t)
|
repo, cleanup := repository.TestRepository(t)
|
||||||
defer cleanup()
|
defer cleanup()
|
||||||
|
@ -260,7 +240,7 @@ func TestArchiveNameCollision(t *testing.T) {
|
||||||
rtest.OK(t, ioutil.WriteFile(filepath.Join(dir, "testfile"), []byte("testfile1"), 0644))
|
rtest.OK(t, ioutil.WriteFile(filepath.Join(dir, "testfile"), []byte("testfile1"), 0644))
|
||||||
rtest.OK(t, ioutil.WriteFile(filepath.Join(dir, "root", "testfile"), []byte("testfile2"), 0644))
|
rtest.OK(t, ioutil.WriteFile(filepath.Join(dir, "root", "testfile"), []byte("testfile2"), 0644))
|
||||||
|
|
||||||
defer chdir(t, root)()
|
defer fs.TestChdir(t, root)()
|
||||||
|
|
||||||
arch := archiver.New(repo)
|
arch := archiver.New(repo)
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,9 @@
|
||||||
package fs
|
package fs
|
||||||
|
|
||||||
import "os"
|
import (
|
||||||
|
"os"
|
||||||
|
"testing"
|
||||||
|
)
|
||||||
|
|
||||||
// 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,
|
||||||
// false is returned.
|
// false is returned.
|
||||||
|
@ -11,3 +14,25 @@ func IsRegularFile(fi os.FileInfo) bool {
|
||||||
|
|
||||||
return fi.Mode()&(os.ModeType|os.ModeCharDevice) == 0
|
return fi.Mode()&(os.ModeType|os.ModeCharDevice) == 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TestChdir changes the current directory to dest, the function back returns to the previous directory.
|
||||||
|
func TestChdir(t testing.TB, dest string) (back func()) {
|
||||||
|
prev, err := os.Getwd()
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
t.Logf("chdir to %v", dest)
|
||||||
|
err = os.Chdir(dest)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
return func() {
|
||||||
|
t.Logf("chdir back to %v", prev)
|
||||||
|
err = os.Chdir(prev)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -346,27 +346,6 @@ func TestRestorer(t *testing.T) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func chdir(t testing.TB, target string) func() {
|
|
||||||
prev, err := os.Getwd()
|
|
||||||
if err != nil {
|
|
||||||
t.Fatal(err)
|
|
||||||
}
|
|
||||||
|
|
||||||
t.Logf("chdir to %v", target)
|
|
||||||
err = os.Chdir(target)
|
|
||||||
if err != nil {
|
|
||||||
t.Fatal(err)
|
|
||||||
}
|
|
||||||
|
|
||||||
return func() {
|
|
||||||
t.Logf("chdir back to %v", prev)
|
|
||||||
err = os.Chdir(prev)
|
|
||||||
if err != nil {
|
|
||||||
t.Fatal(err)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func TestRestorerRelative(t *testing.T) {
|
func TestRestorerRelative(t *testing.T) {
|
||||||
var tests = []struct {
|
var tests = []struct {
|
||||||
Snapshot
|
Snapshot
|
||||||
|
@ -406,7 +385,7 @@ func TestRestorerRelative(t *testing.T) {
|
||||||
tempdir, cleanup := rtest.TempDir(t)
|
tempdir, cleanup := rtest.TempDir(t)
|
||||||
defer cleanup()
|
defer cleanup()
|
||||||
|
|
||||||
cleanup = chdir(t, tempdir)
|
cleanup = fs.TestChdir(t, tempdir)
|
||||||
defer cleanup()
|
defer cleanup()
|
||||||
|
|
||||||
errors := make(map[string]string)
|
errors := make(map[string]string)
|
||||||
|
|
Loading…
Reference in a new issue