Skip to content

Commit f710c98

Browse files
committed
Use t.TempDir for tests
Instead of using os.MkdirTemp in tests, use t.TempDir. In a few places where the parent directory is already create by t.TempDir, replace os.MkdirTemp with os.Mkdir. While at it, make sure to not a leak opened file descriptor returned by os.CreateTemp. Signed-off-by: Kir Kolyshkin <[email protected]>
1 parent ee04b4f commit f710c98

File tree

9 files changed

+38
-83
lines changed

9 files changed

+38
-83
lines changed

libnetwork/cni/config_test.go

+2-6
Original file line numberDiff line numberDiff line change
@@ -26,11 +26,8 @@ var _ = Describe("Config", func() {
2626
)
2727

2828
BeforeEach(func() {
29-
var err error
30-
cniConfDir, err = os.MkdirTemp("", "podman_cni_test")
31-
if err != nil {
32-
Fail("Failed to create tmpdir")
33-
}
29+
t := GinkgoT()
30+
cniConfDir = t.TempDir()
3431
logBuffer = bytes.Buffer{}
3532
logrus.SetOutput(&logBuffer)
3633
logrus.SetLevel(logrus.InfoLevel)
@@ -46,7 +43,6 @@ var _ = Describe("Config", func() {
4643

4744
AfterEach(func() {
4845
logrus.SetLevel(logrus.InfoLevel)
49-
os.RemoveAll(cniConfDir)
5046
})
5147

5248
Context("basic network config tests", func() {

libnetwork/cni/run_test.go

+3-6
Original file line numberDiff line numberDiff line change
@@ -76,14 +76,12 @@ var _ = Describe("run CNI", func() {
7676
Skip("this test needs to be run as root")
7777
}
7878

79-
var err error
80-
cniConfDir, err = os.MkdirTemp("", "podman_cni_test")
81-
if err != nil {
82-
Fail("Failed to create tmpdir")
83-
}
79+
t := GinkgoT()
80+
cniConfDir = t.TempDir()
8481
logBuffer = bytes.Buffer{}
8582
logrus.SetOutput(&logBuffer)
8683

84+
var err error
8785
netNSTest, err = netns.NewNS()
8886
if err != nil {
8987
Fail("Failed to create netns")
@@ -106,7 +104,6 @@ var _ = Describe("run CNI", func() {
106104

107105
AfterEach(func() {
108106
logrus.SetLevel(logrus.InfoLevel)
109-
_ = os.RemoveAll(cniConfDir)
110107

111108
_ = netns.UnmountNS(netNSTest.Path())
112109
_ = netNSTest.Close()

libnetwork/netavark/config_test.go

+2-9
Original file line numberDiff line numberDiff line change
@@ -28,11 +28,8 @@ var _ = Describe("Config", func() {
2828
)
2929

3030
BeforeEach(func() {
31-
var err error
32-
networkConfDir, err = os.MkdirTemp("", "podman_netavark_test")
33-
if err != nil {
34-
Fail("Failed to create tmpdir")
35-
}
31+
t := GinkgoT()
32+
networkConfDir = t.TempDir()
3633
logBuffer = bytes.Buffer{}
3734
logrus.SetOutput(&logBuffer)
3835
})
@@ -45,10 +42,6 @@ var _ = Describe("Config", func() {
4542
}
4643
})
4744

48-
AfterEach(func() {
49-
os.RemoveAll(networkConfDir)
50-
})
51-
5245
Context("basic network config tests", func() {
5346
It("check default network config exists", func() {
5447
networks, err := libpodNet.NetworkList()

libnetwork/netavark/ipam_test.go

+2-10
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ import (
66
"bytes"
77
"fmt"
88
"net"
9-
"os"
109

1110
"github.com/containers/common/libnetwork/types"
1211
"github.com/containers/common/pkg/config"
@@ -23,11 +22,8 @@ var _ = Describe("IPAM", func() {
2322
)
2423

2524
BeforeEach(func() {
26-
var err error
27-
networkConfDir, err = os.MkdirTemp("", "podman_netavark_test")
28-
if err != nil {
29-
Fail("Failed to create tmpdir")
30-
}
25+
t := GinkgoT()
26+
networkConfDir = t.TempDir()
3127
logBuffer = bytes.Buffer{}
3228
logrus.SetOutput(&logBuffer)
3329
})
@@ -48,10 +44,6 @@ var _ = Describe("IPAM", func() {
4844
Expect(err).ToNot(HaveOccurred())
4945
})
5046

51-
AfterEach(func() {
52-
os.RemoveAll(networkConfDir)
53-
})
54-
5547
It("simple ipam alloc", func() {
5648
netName := types.DefaultNetworkName
5749
for i := 2; i < 100; i++ {

libnetwork/netavark/plugin_test.go

+2-10
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ package netavark_test
44

55
import (
66
"bytes"
7-
"os"
87
"path/filepath"
98

109
"github.com/containers/common/libnetwork/types"
@@ -23,11 +22,8 @@ var _ = Describe("Plugins", func() {
2322
)
2423

2524
BeforeEach(func() {
26-
var err error
27-
networkConfDir, err = os.MkdirTemp("", "podman_netavark_test")
28-
if err != nil {
29-
Fail("Failed to create tmpdir")
30-
}
25+
t := GinkgoT()
26+
networkConfDir = t.TempDir()
3127
logBuffer = bytes.Buffer{}
3228
logrus.SetOutput(&logBuffer)
3329
})
@@ -40,10 +36,6 @@ var _ = Describe("Plugins", func() {
4036
}
4137
})
4238

43-
AfterEach(func() {
44-
os.RemoveAll(networkConfDir)
45-
})
46-
4739
It("create plugin network", func() {
4840
network := types.Network{Driver: pluginName}
4941
network1, err := libpodNet.NetworkCreate(network, nil)

libnetwork/netavark/run_test.go

+4-9
Original file line numberDiff line numberDiff line change
@@ -73,12 +73,10 @@ var _ = Describe("run netavark", func() {
7373
Skip("this test needs to be run as root")
7474
}
7575

76-
var err error
77-
confDir, err = os.MkdirTemp("", "podman_netavark_test")
78-
if err != nil {
79-
Fail("Failed to create tmpdir")
80-
}
76+
t := GinkgoT()
77+
confDir = t.TempDir()
8178

79+
var err error
8280
netNSTest, err = netns.NewNS()
8381
if err != nil {
8482
Fail("Failed to create netns")
@@ -91,7 +89,7 @@ var _ = Describe("run netavark", func() {
9189

9290
// Force iptables driver, firewalld is broken inside the extra
9391
// namespace because it still connects to firewalld on the host.
94-
_ = os.Setenv("NETAVARK_FW", "iptables")
92+
t.Setenv("NETAVARK_FW", "iptables")
9593
})
9694

9795
JustBeforeEach(func() {
@@ -105,15 +103,12 @@ var _ = Describe("run netavark", func() {
105103
AfterEach(func() {
106104
logrus.SetFormatter(&logrus.TextFormatter{})
107105
logrus.SetLevel(logrus.InfoLevel)
108-
_ = os.RemoveAll(confDir)
109106

110107
_ = netns.UnmountNS(netNSTest.Path())
111108
_ = netNSTest.Close()
112109

113110
_ = netns.UnmountNS(netNSContainer.Path())
114111
_ = netNSContainer.Close()
115-
116-
_ = os.Unsetenv("NETAVARK_FW")
117112
})
118113

119114
It("test basic setup", func() {

pkg/config/config_local_test.go

+5-10
Original file line numberDiff line numberDiff line change
@@ -41,11 +41,8 @@ var _ = Describe("Config Local", func() {
4141
gomega.Expect(err).ToNot(gomega.HaveOccurred())
4242
gomega.Expect(defConf).NotTo(gomega.BeNil())
4343

44-
validDirPath, err := os.MkdirTemp("", "config-empty")
45-
if err != nil {
46-
panic(err)
47-
}
48-
defer os.RemoveAll(validDirPath)
44+
t := GinkgoT()
45+
validDirPath := t.TempDir()
4946

5047
// Given
5148
defConf.Network.NetworkConfigDir = validDirPath
@@ -63,11 +60,9 @@ var _ = Describe("Config Local", func() {
6360
gomega.Expect(err).ToNot(gomega.HaveOccurred())
6461
gomega.Expect(defConf).NotTo(gomega.BeNil())
6562

66-
validDirPath, err := os.MkdirTemp("", "config-empty")
67-
if err != nil {
68-
panic(err)
69-
}
70-
defer os.RemoveAll(validDirPath)
63+
t := GinkgoT()
64+
validDirPath := t.TempDir()
65+
7166
// Given
7267
defConf.Network.NetworkConfigDir = validDirPath
7368
defConf.Network.CNIPluginDirs.Set([]string{validDirPath})

pkg/config/config_remote_test.go

+9-17
Original file line numberDiff line numberDiff line change
@@ -3,19 +3,15 @@
33
package config
44

55
import (
6-
"os"
7-
86
. "github.com/onsi/ginkgo/v2"
97
"github.com/onsi/gomega"
108
)
119

1210
var _ = Describe("Config Remote", func() {
1311
It("should succeed on invalid CNIPluginDirs", func() {
14-
validDirPath, err := os.MkdirTemp("", "config-empty")
15-
if err != nil {
16-
panic(err)
17-
}
18-
defer os.RemoveAll(validDirPath)
12+
t := GinkgoT()
13+
validDirPath := t.TempDir()
14+
1915
// Given
2016
defConf, err := defaultConfig()
2117
gomega.Expect(err).To(gomega.BeNil())
@@ -125,11 +121,9 @@ var _ = Describe("Config Remote", func() {
125121
})
126122

127123
It("should succeed on invalid CNIPluginDirs", func() {
128-
validDirPath, err := os.MkdirTemp("", "config-empty")
129-
if err != nil {
130-
panic(err)
131-
}
132-
defer os.RemoveAll(validDirPath)
124+
t := GinkgoT()
125+
validDirPath := t.TempDir()
126+
133127
// Given
134128
defConf, err := defaultConfig()
135129
gomega.Expect(err).To(gomega.BeNil())
@@ -145,11 +139,9 @@ var _ = Describe("Config Remote", func() {
145139
})
146140

147141
It("should succeed in validating invalid PluginDir", func() {
148-
validDirPath, err := os.MkdirTemp("", "config-empty")
149-
if err != nil {
150-
panic(err)
151-
}
152-
defer os.RemoveAll(validDirPath)
142+
t := GinkgoT()
143+
validDirPath := t.TempDir()
144+
153145
// Given
154146
defConf, err := defaultConfig()
155147
gomega.Expect(err).To(gomega.BeNil())

pkg/config/config_test.go

+9-6
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import (
44
"bytes"
55
"fmt"
66
"os"
7+
"path/filepath"
78
"runtime"
89
"sort"
910
"strings"
@@ -692,23 +693,25 @@ image_copy_tmp_dir="storage"`
692693
gomega.Expect(err).ShouldNot(gomega.HaveOccurred())
693694
gomega.Expect(newConfigs).To(gomega.Equal(configs))
694695

695-
dir, err := os.MkdirTemp("", "configTest")
696-
gomega.Expect(err).ShouldNot(gomega.HaveOccurred())
697-
defer os.RemoveAll(dir)
696+
t := GinkgoT()
697+
dir := t.TempDir()
698698
file1 := tmpFilePath(dir, "b")
699699
file2 := tmpFilePath(dir, "a")
700700
file3 := tmpFilePath(dir, "2")
701701
file4 := tmpFilePath(dir, "1")
702702
// create a file in dir that is not a .conf to make sure
703703
// it does not show up in configs
704-
_, err = os.CreateTemp(dir, "notconf")
704+
f, err := os.CreateTemp(dir, "notconf")
705705
gomega.Expect(err).ShouldNot(gomega.HaveOccurred())
706-
subdir, err := os.MkdirTemp(dir, "")
706+
f.Close()
707+
subdir := filepath.Join(dir, "subdir")
708+
err = os.Mkdir(subdir, 0o700)
707709
gomega.Expect(err).ShouldNot(gomega.HaveOccurred())
708710
// create a file in subdir, to make sure it does not
709711
// show up in configs
710-
_, err = os.CreateTemp(subdir, "")
712+
f, err = os.CreateTemp(subdir, "")
711713
gomega.Expect(err).ShouldNot(gomega.HaveOccurred())
714+
f.Close()
712715

713716
newConfigs, err = addConfigs(dir, configs)
714717
gomega.Expect(err).ShouldNot(gomega.HaveOccurred())

0 commit comments

Comments
 (0)