Skip to content

Commit 78eb591

Browse files
committed
unit tests: use os.TempDir and clean up temporary files
Replace hardcoded /tmp path with os.TempDir() to respect TMPDIR environment variable. Add defer statements to clean up temporary files created during vSphere simulator initialization. Assisted-by: Claude Code
1 parent f0cb4ab commit 78eb591

File tree

1 file changed

+11
-3
lines changed

1 file changed

+11
-3
lines changed

pkg/asset/installconfig/vsphere/mock/vsphere_sim.go

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ import (
55
"crypto/tls"
66
"encoding/pem"
77
"errors"
8-
"io/fs"
98
"os"
9+
"path/filepath"
1010
"strconv"
1111

1212
"github.com/vmware/govmomi/find"
@@ -83,12 +83,12 @@ func (vss *VSphereSimulator) StartSimulator() (*simulator.Server, error) {
8383

8484
// GetClient returns a vim25 client which connects to and trusts the simulator
8585
func GetClient(server *simulator.Server) (*vim25.Client, *session.Manager, error) {
86-
tmpCAdir := "/tmp/vcsimca"
86+
tmpCAdir := filepath.Join(os.TempDir(), "vcsimca")
8787
err := os.Mkdir(tmpCAdir, os.ModePerm)
8888

8989
if err != nil {
9090
// If the error is not file existing return err
91-
if !errors.Is(err, fs.ErrExist) {
91+
if !os.IsExist(err) {
9292
return nil, nil, err
9393
}
9494
}
@@ -101,11 +101,19 @@ func GetClient(server *simulator.Server) (*vim25.Client, *session.Manager, error
101101
if err != nil {
102102
return nil, nil, err
103103
}
104+
defer os.Remove(tempFile.Name())
105+
defer tempFile.Close()
106+
104107
_, err = tempFile.Write(pem.EncodeToMemory(&pemBlock))
105108
if err != nil {
106109
return nil, nil, err
107110
}
108111

112+
// Close the file so the CA bundle can be read
113+
if err := tempFile.Close(); err != nil {
114+
return nil, nil, err
115+
}
116+
109117
soapClient := soap.NewClient(server.URL, false)
110118
err = soapClient.SetRootCAs(tempFile.Name())
111119
if err != nil {

0 commit comments

Comments
 (0)