Deflake TestSetup

This commit is contained in:
Jordan Liggitt 2020-09-04 11:50:56 -04:00
parent fdf9cab843
commit 6125e6b65a

View File

@ -20,6 +20,7 @@ import (
"context" "context"
"fmt" "fmt"
"io/ioutil" "io/ioutil"
"net"
"net/http" "net/http"
"net/http/httptest" "net/http/httptest"
"os" "os"
@ -363,6 +364,15 @@ profiles:
}, },
} }
makeListener := func(t *testing.T) net.Listener {
t.Helper()
l, err := net.Listen("tcp", ":0")
if err != nil {
t.Fatal(err)
}
return l
}
for _, tc := range testcases { for _, tc := range testcases {
t.Run(tc.name, func(t *testing.T) { t.Run(tc.name, func(t *testing.T) {
fs := pflag.NewFlagSet("test", pflag.PanicOnError) fs := pflag.NewFlagSet("test", pflag.PanicOnError)
@ -370,6 +380,15 @@ profiles:
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
} }
// use listeners instead of static ports so parallel test runs don't conflict
opts.SecureServing.Listener = makeListener(t)
defer opts.SecureServing.Listener.Close()
opts.CombinedInsecureServing.Metrics.Listener = makeListener(t)
defer opts.CombinedInsecureServing.Metrics.Listener.Close()
opts.CombinedInsecureServing.Healthz.Listener = makeListener(t)
defer opts.CombinedInsecureServing.Healthz.Listener.Close()
for _, f := range opts.Flags().FlagSets { for _, f := range opts.Flags().FlagSets {
fs.AddFlagSet(f) fs.AddFlagSet(f)
} }
@ -379,12 +398,10 @@ profiles:
ctx, cancel := context.WithCancel(context.Background()) ctx, cancel := context.WithCancel(context.Background())
defer cancel() defer cancel()
cc, sched, err := Setup(ctx, opts) _, sched, err := Setup(ctx, opts)
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
} }
defer cc.SecureServing.Listener.Close()
defer cc.InsecureServing.Listener.Close()
gotPlugins := make(map[string]map[string][]kubeschedulerconfig.Plugin) gotPlugins := make(map[string]map[string][]kubeschedulerconfig.Plugin)
for n, p := range sched.Profiles { for n, p := range sched.Profiles {