From c8349f0ca207253e4dc4602b4a443a3b1a763f0a Mon Sep 17 00:00:00 2001 From: Bob Sira Date: Mon, 13 Oct 2025 17:30:44 +0100 Subject: [PATCH 1/4] Fixed TestAssetsFromDir unit test failure in Windows --- pkg/minikube/machine/filesync_test.go | 57 +++++++++++---------------- 1 file changed, 22 insertions(+), 35 deletions(-) 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() From 444f0c3751f222bf97346acf8445e4324a590ab2 Mon Sep 17 00:00:00 2001 From: Bob Sira Date: Wed, 29 Oct 2025 11:49:18 +0000 Subject: [PATCH 2/4] fixed TestAssetsFromDir unit test failure in Windows --- pkg/minikube/machine/filesync_test.go | 39 ++++++++++++++++++++------- 1 file changed, 29 insertions(+), 10 deletions(-) diff --git a/pkg/minikube/machine/filesync_test.go b/pkg/minikube/machine/filesync_test.go index bd4f7d981deb..ebe891508b06 100644 --- a/pkg/minikube/machine/filesync_test.go +++ b/pkg/minikube/machine/filesync_test.go @@ -46,9 +46,18 @@ 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, }, @@ -60,9 +69,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: "/", }, @@ -86,10 +104,11 @@ func TestAssetsFromDir(t *testing.T) { for _, fileDef := range test.files { err := func() error { path := filepath.Join(testFileBaseDir, fileDef.relativePath) - if err := os.MkdirAll(filepath.Dir(path), 0o755); err != nil { + err := os.MkdirAll(filepath.Dir(path), 0755) + want[path] = fileDef.expectedPath + if err != nil { return err } - want[path] = fileDef.expectedPath file, err := os.Create(path) if err != nil { @@ -102,7 +121,8 @@ func TestAssetsFromDir(t *testing.T) { return err }() if err != nil { - t.Fatalf("unable to create file on fs: %v", err) + t.Errorf("unable to create file on fs: %v", err) + return } } @@ -111,7 +131,6 @@ func TestAssetsFromDir(t *testing.T) { 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 { From f422a258d8c9effd39026138d29cdd2dacd9ff7e Mon Sep 17 00:00:00 2001 From: Bob Sira Date: Wed, 29 Oct 2025 12:17:01 +0000 Subject: [PATCH 3/4] Fixed TestAssetsFromDir unit test failure in Windows --- pkg/minikube/machine/filesync_test.go | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/pkg/minikube/machine/filesync_test.go b/pkg/minikube/machine/filesync_test.go index ebe891508b06..9d01c8dc004a 100644 --- a/pkg/minikube/machine/filesync_test.go +++ b/pkg/minikube/machine/filesync_test.go @@ -127,9 +127,6 @@ func TestAssetsFromDir(t *testing.T) { } actualFiles, err := assetsFromDir(testFileBaseDir, test.vmPath, test.flatten) - if err != nil { - t.Fatalf("got unexpected error adding minikube dir assets: %v", err) - } t.Cleanup(func() { for _, f := range actualFiles { @@ -139,6 +136,10 @@ func TestAssetsFromDir(t *testing.T) { } }) + if err != nil { + t.Fatalf("got unexpected error adding minikube dir assets: %v", err) + } + got := make(map[string]string) for _, actualFile := range actualFiles { got[actualFile.GetSourcePath()] = actualFile.GetTargetDir() From 6e0f4b8aa121663b91947902fd0707aa56a9c76e Mon Sep 17 00:00:00 2001 From: Bob Sira Date: Wed, 29 Oct 2025 16:25:28 +0000 Subject: [PATCH 4/4] fixed TestAssetsFromDir unit test failure in windows --- pkg/minikube/machine/filesync_test.go | 33 ++++++++++++++++----------- 1 file changed, 20 insertions(+), 13 deletions(-) diff --git a/pkg/minikube/machine/filesync_test.go b/pkg/minikube/machine/filesync_test.go index 9d01c8dc004a..c0ea4387df61 100644 --- a/pkg/minikube/machine/filesync_test.go +++ b/pkg/minikube/machine/filesync_test.go @@ -22,11 +22,30 @@ import ( "testing" "github.com/google/go-cmp/cmp" + "k8s.io/minikube/pkg/minikube/assets" "k8s.io/minikube/pkg/minikube/localpath" testutil "k8s.io/minikube/pkg/minikube/tests" "k8s.io/minikube/pkg/minikube/vmpath" ) +func collectAssets(t *testing.T, root, dest string, flatten bool) []assets.CopyableFile { + t.Helper() + files, err := assetsFromDir(root, dest, flatten) + + t.Cleanup(func() { + for _, f := range files { + if cerr := f.Close(); cerr != nil { + t.Logf("warning: closing asset %s failed: %v", f.GetSourcePath(), cerr) + } + } + }) + + if err != nil { + t.Fatalf("assetsFromDir(%q, %q, flatten=%v) unexpected error: %v", root, dest, flatten, err) + } + return files +} + func TestAssetsFromDir(t *testing.T) { tests := []struct { description string @@ -126,19 +145,7 @@ func TestAssetsFromDir(t *testing.T) { } } - actualFiles, err := assetsFromDir(testFileBaseDir, test.vmPath, test.flatten) - - t.Cleanup(func() { - for _, f := range actualFiles { - if cerr := f.Close(); cerr != nil { - t.Logf("warning: closing asset %s failed: %v", f.GetSourcePath(), cerr) - } - } - }) - - if err != nil { - t.Fatalf("got unexpected error adding minikube dir assets: %v", err) - } + actualFiles := collectAssets(t, testFileBaseDir, test.vmPath, test.flatten) got := make(map[string]string) for _, actualFile := range actualFiles {