diff --git a/pkg/minikube/machine/filesync_test.go b/pkg/minikube/machine/filesync_test.go index 9eb7541cbe81..bd4f7d981deb 100644 --- a/pkg/minikube/machine/filesync_test.go +++ b/pkg/minikube/machine/filesync_test.go @@ -46,18 +46,9 @@ func TestAssetsFromDir(t *testing.T) { relativePath string expectedPath string }{ - { - relativePath: "/dir1/file1.txt", - expectedPath: vmpath.GuestAddonsDir, - }, - { - relativePath: "/dir1/file2.txt", - expectedPath: vmpath.GuestAddonsDir, - }, - { - relativePath: "/dir2/file1.txt", - expectedPath: vmpath.GuestAddonsDir, - }, + {relativePath: "/dir1/file1.txt", expectedPath: vmpath.GuestAddonsDir}, + {relativePath: "/dir1/file2.txt", expectedPath: vmpath.GuestAddonsDir}, + {relativePath: "/dir2/file1.txt", expectedPath: vmpath.GuestAddonsDir}, }, vmPath: vmpath.GuestAddonsDir, }, @@ -69,27 +60,18 @@ func TestAssetsFromDir(t *testing.T) { relativePath string expectedPath string }{ - { - relativePath: "/dir1/file1.txt", - expectedPath: "/dir1", - }, - { - relativePath: "/dir1/file2.txt", - expectedPath: "/dir1", - }, - { - relativePath: "/dir2/file1.txt", - expectedPath: "/dir2", - }, + {relativePath: "/dir1/file1.txt", expectedPath: "/dir1"}, + {relativePath: "/dir1/file2.txt", expectedPath: "/dir1"}, + {relativePath: "/dir2/file1.txt", expectedPath: "/dir2"}, }, vmPath: "/", }, } - var testDirs = make([]string, 0) + + var testDirs []string defer func() { for _, testDir := range testDirs { - err := os.RemoveAll(testDir) - if err != nil { + if err := os.RemoveAll(testDir); err != nil { t.Logf("got unexpected error removing test dir: %v", err) } } @@ -98,18 +80,16 @@ func TestAssetsFromDir(t *testing.T) { for _, test := range tests { t.Run(test.description, func(t *testing.T) { testDir := testutil.MakeTempDir(t) - testDirs = append(testDirs, testDir) testFileBaseDir := filepath.Join(testDir, test.baseDir) want := make(map[string]string) for _, fileDef := range test.files { err := func() error { path := filepath.Join(testFileBaseDir, fileDef.relativePath) - err := os.MkdirAll(filepath.Dir(path), 0755) - want[path] = fileDef.expectedPath - if err != nil { + if err := os.MkdirAll(filepath.Dir(path), 0o755); err != nil { return err } + want[path] = fileDef.expectedPath file, err := os.Create(path) if err != nil { @@ -122,17 +102,24 @@ func TestAssetsFromDir(t *testing.T) { return err }() if err != nil { - t.Errorf("unable to create file on fs: %v", err) - return + t.Fatalf("unable to create file on fs: %v", err) } } actualFiles, err := assetsFromDir(testFileBaseDir, test.vmPath, test.flatten) if err != nil { - t.Errorf("got unexpected error adding minikube dir assets: %v", err) - return + t.Fatalf("got unexpected error adding minikube dir assets: %v", err) } + // Ensure file descriptors opened by assets.NewFileAsset are released (critical on Windows). + t.Cleanup(func() { + for _, f := range actualFiles { + if cerr := f.Close(); cerr != nil { + t.Logf("warning: closing asset %s failed: %v", f.GetSourcePath(), cerr) + } + } + }) + got := make(map[string]string) for _, actualFile := range actualFiles { got[actualFile.GetSourcePath()] = actualFile.GetTargetDir()