mirror of
https://github.com/restic/restic.git
synced 2024-12-25 17:27:25 +00:00
63 lines
1.1 KiB
Go
63 lines
1.1 KiB
Go
package fs
|
|
|
|
import (
|
|
"io/ioutil"
|
|
"os"
|
|
"testing"
|
|
|
|
"github.com/restic/restic/internal/test"
|
|
)
|
|
|
|
// 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
|
|
}
|
|
|
|
// 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()
|
|
|
|
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()
|
|
t.Logf("chdir back to %v", prev)
|
|
err = os.Chdir(prev)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
}
|
|
}
|
|
|
|
// 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
|
|
}
|