package mypkg import ( "io/ioutil" "os" "path/filepath" "reflect" "testing" ) func TestDirwalk(t *testing.T) { baseDir := filepath.Join("testdata") os.MkdirAll(baseDir, 0755) tempDir, err := ioutil.TempDir(baseDir, "temp") if err != nil { t.Errorf("create tempDir: %v", err) } t.Cleanup(func() { os.RemoveAll(baseDir) }) os.MkdirAll(filepath.Join(tempDir, "dir_b"), 0755) os.MkdirAll(filepath.Join(tempDir, "dir_c"), 0755) f, _ := os.Create(filepath.Join(tempDir, "file_a")) f.Close() f, _ = os.Create(filepath.Join(tempDir, "dir_b", "file_b")) f.Close() f, _ = os.Create(filepath.Join(tempDir, "dir_c", "file_c")) f.Close() got, err := Dirwalk(baseDir) if err != nil { t.Errorf("dirwalk: %v", err) } want := []string{ filepath.Join(tempDir, "dir_b", "file_b"), filepath.Join(tempDir, "dir_c", "file_c"), filepath.Join(tempDir, "file_a"), } if !reflect.DeepEqual(got, want) { t.Errorf("Dirwalk():\ngot %v\nwant %v", got, want) } }