File tree Expand file tree Collapse file tree 1 file changed +12
-9
lines changed Expand file tree Collapse file tree 1 file changed +12
-9
lines changed Original file line number Diff line number Diff line change @@ -31,13 +31,20 @@ func RandomUnprivilegedPort(t *testing.T) int {
31
31
mu .Lock ()
32
32
defer mu .Unlock ()
33
33
34
- port , err := getPort ()
34
+ port , listener , err := getPort ()
35
+ if listener != nil {
36
+ defer listener .Close ()
37
+ }
38
+
35
39
if err != nil {
36
40
t .Fatal (err )
37
41
}
38
42
39
43
for portWasUsed (port ) {
40
- port , err = getPort ()
44
+ port , listener , err = getPort ()
45
+ if listener != nil {
46
+ defer listener .Close ()
47
+ }
41
48
if err != nil {
42
49
t .Fatal (err )
43
50
}
@@ -52,15 +59,11 @@ func portWasUsed(port int) bool {
52
59
return slices .Contains (usedPorts , port )
53
60
}
54
61
55
- func getPort () (int , error ) {
62
+ func getPort () (int , net. Listener , error ) {
56
63
listener , err := net .Listen ("tcp" , ":0" )
57
64
if err != nil {
58
- return 0 , err
59
- }
60
-
61
- if err := listener .Close (); err != nil {
62
- return 0 , err
65
+ return 0 , nil , err
63
66
}
64
67
65
- return listener .Addr ().(* net.TCPAddr ).Port , nil
68
+ return listener .Addr ().(* net.TCPAddr ).Port , listener , nil
66
69
}
You can’t perform that action at this time.
0 commit comments