2
2
mirror of https://github.com/octoleo/restic.git synced 2024-06-02 00:50:48 +00:00
restic/internal/fs/helpers.go

64 lines
1.1 KiB
Go
Raw Normal View History

2017-12-23 11:12:36 +00:00
package fs
2017-12-15 23:01:28 +00:00
import (
2018-05-01 12:38:41 +00:00
"io/ioutil"
2017-12-15 23:01:28 +00:00
"os"
"testing"
"github.com/restic/restic/internal/test"
2017-12-15 23:01:28 +00:00
)
2017-12-23 11:12:36 +00:00
// IsRegularFile returns true if fi belongs to a normal file. If fi is nil,
// false is returned.
func IsRegularFile(fi os.FileInfo) bool {
if fi == nil {
return false
}
return fi.Mode()&(os.ModeType|os.ModeCharDevice) == 0
}
2017-12-15 23:01:28 +00:00
// TestChdir changes the current directory to dest, the function back returns to the previous directory.
func TestChdir(t testing.TB, dest string) (back func()) {
test.Helper(t).Helper()
2017-12-15 23:01:28 +00:00
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() {
test.Helper(t).Helper()
2017-12-15 23:01:28 +00:00
t.Logf("chdir back to %v", prev)
err = os.Chdir(prev)
if err != nil {
t.Fatal(err)
}
}
}
2018-05-01 12:38:41 +00:00
// TestTempFile returns a new temporary file, which is removed when cleanup()
// is called.
func TestTempFile(t testing.TB, prefix string) (File, func()) {
f, err := ioutil.TempFile("", prefix)
if err != nil {
t.Fatal(err)
}
cleanup := func() {
_ = f.Close()
err = Remove(f.Name())
if err != nil {
t.Fatal(err)
}
}
return f, cleanup
}