66 lines
1.0 KiB
Go
66 lines
1.0 KiB
Go
package main
|
|
|
|
import (
|
|
"io"
|
|
"os"
|
|
"testing"
|
|
)
|
|
|
|
func mkDirForTest(t *testing.T, fp string) {
|
|
err := os.MkdirAll(fp, os.ModePerm)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
}
|
|
|
|
func cpFileForTest(t *testing.T, src string, dst string) {
|
|
var srcfd *os.File
|
|
var dstfd *os.File
|
|
var err error
|
|
var srcinfo os.FileInfo
|
|
srcfd, err = os.Open(src)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
defer srcfd.Close()
|
|
dstfd, err = os.Create(dst)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
defer dstfd.Close()
|
|
_, err = io.Copy(dstfd, srcfd)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
srcinfo, err = os.Stat(src)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
err = os.Chmod(dst, srcinfo.Mode())
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
}
|
|
|
|
func writeForTest(t *testing.T, fp string, data []byte) {
|
|
err := os.WriteFile(fp, data, 0666)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
}
|
|
|
|
func IsDirEmpty(t *testing.T, name string) bool {
|
|
f, err := os.Open(name)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
defer f.Close()
|
|
|
|
// read in ONLY one file
|
|
_, err = f.Readdir(1)
|
|
|
|
// and if the file is EOF... well, the dir is empty.
|
|
return err == io.EOF
|
|
}
|