@@ -20,6 +20,7 @@ import (
20
20
"context"
21
21
"fmt"
22
22
"io/ioutil"
23
+ "net"
23
24
"net/http"
24
25
"net/http/httptest"
25
26
"os"
@@ -363,13 +364,31 @@ profiles:
363
364
},
364
365
}
365
366
367
+ makeListener := func (t * testing.T ) net.Listener {
368
+ t .Helper ()
369
+ l , err := net .Listen ("tcp" , ":0" )
370
+ if err != nil {
371
+ t .Fatal (err )
372
+ }
373
+ return l
374
+ }
375
+
366
376
for _ , tc := range testcases {
367
377
t .Run (tc .name , func (t * testing.T ) {
368
378
fs := pflag .NewFlagSet ("test" , pflag .PanicOnError )
369
379
opts , err := options .NewOptions ()
370
380
if err != nil {
371
381
t .Fatal (err )
372
382
}
383
+
384
+ // use listeners instead of static ports so parallel test runs don't conflict
385
+ opts .SecureServing .Listener = makeListener (t )
386
+ defer opts .SecureServing .Listener .Close ()
387
+ opts .CombinedInsecureServing .Metrics .Listener = makeListener (t )
388
+ defer opts .CombinedInsecureServing .Metrics .Listener .Close ()
389
+ opts .CombinedInsecureServing .Healthz .Listener = makeListener (t )
390
+ defer opts .CombinedInsecureServing .Healthz .Listener .Close ()
391
+
373
392
for _ , f := range opts .Flags ().FlagSets {
374
393
fs .AddFlagSet (f )
375
394
}
@@ -379,12 +398,10 @@ profiles:
379
398
380
399
ctx , cancel := context .WithCancel (context .Background ())
381
400
defer cancel ()
382
- cc , sched , err := Setup (ctx , opts )
401
+ _ , sched , err := Setup (ctx , opts )
383
402
if err != nil {
384
403
t .Fatal (err )
385
404
}
386
- defer cc .SecureServing .Listener .Close ()
387
- defer cc .InsecureServing .Listener .Close ()
388
405
389
406
gotPlugins := make (map [string ]map [string ][]kubeschedulerconfig.Plugin )
390
407
for n , p := range sched .Profiles {
0 commit comments