Skip to content

Commit c8349f0

Browse files
committed
Fixed TestAssetsFromDir unit test failure in Windows
1 parent e4c8917 commit c8349f0

File tree

1 file changed

+22
-35
lines changed

1 file changed

+22
-35
lines changed

pkg/minikube/machine/filesync_test.go

Lines changed: 22 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -46,18 +46,9 @@ func TestAssetsFromDir(t *testing.T) {
4646
relativePath string
4747
expectedPath string
4848
}{
49-
{
50-
relativePath: "/dir1/file1.txt",
51-
expectedPath: vmpath.GuestAddonsDir,
52-
},
53-
{
54-
relativePath: "/dir1/file2.txt",
55-
expectedPath: vmpath.GuestAddonsDir,
56-
},
57-
{
58-
relativePath: "/dir2/file1.txt",
59-
expectedPath: vmpath.GuestAddonsDir,
60-
},
49+
{relativePath: "/dir1/file1.txt", expectedPath: vmpath.GuestAddonsDir},
50+
{relativePath: "/dir1/file2.txt", expectedPath: vmpath.GuestAddonsDir},
51+
{relativePath: "/dir2/file1.txt", expectedPath: vmpath.GuestAddonsDir},
6152
},
6253
vmPath: vmpath.GuestAddonsDir,
6354
},
@@ -69,27 +60,18 @@ func TestAssetsFromDir(t *testing.T) {
6960
relativePath string
7061
expectedPath string
7162
}{
72-
{
73-
relativePath: "/dir1/file1.txt",
74-
expectedPath: "/dir1",
75-
},
76-
{
77-
relativePath: "/dir1/file2.txt",
78-
expectedPath: "/dir1",
79-
},
80-
{
81-
relativePath: "/dir2/file1.txt",
82-
expectedPath: "/dir2",
83-
},
63+
{relativePath: "/dir1/file1.txt", expectedPath: "/dir1"},
64+
{relativePath: "/dir1/file2.txt", expectedPath: "/dir1"},
65+
{relativePath: "/dir2/file1.txt", expectedPath: "/dir2"},
8466
},
8567
vmPath: "/",
8668
},
8769
}
88-
var testDirs = make([]string, 0)
70+
71+
var testDirs []string
8972
defer func() {
9073
for _, testDir := range testDirs {
91-
err := os.RemoveAll(testDir)
92-
if err != nil {
74+
if err := os.RemoveAll(testDir); err != nil {
9375
t.Logf("got unexpected error removing test dir: %v", err)
9476
}
9577
}
@@ -98,18 +80,16 @@ func TestAssetsFromDir(t *testing.T) {
9880
for _, test := range tests {
9981
t.Run(test.description, func(t *testing.T) {
10082
testDir := testutil.MakeTempDir(t)
101-
10283
testDirs = append(testDirs, testDir)
10384
testFileBaseDir := filepath.Join(testDir, test.baseDir)
10485
want := make(map[string]string)
10586
for _, fileDef := range test.files {
10687
err := func() error {
10788
path := filepath.Join(testFileBaseDir, fileDef.relativePath)
108-
err := os.MkdirAll(filepath.Dir(path), 0755)
109-
want[path] = fileDef.expectedPath
110-
if err != nil {
89+
if err := os.MkdirAll(filepath.Dir(path), 0o755); err != nil {
11190
return err
11291
}
92+
want[path] = fileDef.expectedPath
11393

11494
file, err := os.Create(path)
11595
if err != nil {
@@ -122,17 +102,24 @@ func TestAssetsFromDir(t *testing.T) {
122102
return err
123103
}()
124104
if err != nil {
125-
t.Errorf("unable to create file on fs: %v", err)
126-
return
105+
t.Fatalf("unable to create file on fs: %v", err)
127106
}
128107
}
129108

130109
actualFiles, err := assetsFromDir(testFileBaseDir, test.vmPath, test.flatten)
131110
if err != nil {
132-
t.Errorf("got unexpected error adding minikube dir assets: %v", err)
133-
return
111+
t.Fatalf("got unexpected error adding minikube dir assets: %v", err)
134112
}
135113

114+
// Ensure file descriptors opened by assets.NewFileAsset are released (critical on Windows).
115+
t.Cleanup(func() {
116+
for _, f := range actualFiles {
117+
if cerr := f.Close(); cerr != nil {
118+
t.Logf("warning: closing asset %s failed: %v", f.GetSourcePath(), cerr)
119+
}
120+
}
121+
})
122+
136123
got := make(map[string]string)
137124
for _, actualFile := range actualFiles {
138125
got[actualFile.GetSourcePath()] = actualFile.GetTargetDir()

0 commit comments

Comments
 (0)