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 }