Skip to content

Commit a23cf70

Browse files
authored
Merge pull request kubernetes#94529 from liggitt/deflake-units
Deflake unit tests
2 parents 3cdfdfc + dbdd8c5 commit a23cf70

File tree

3 files changed

+33
-14
lines changed

3 files changed

+33
-14
lines changed

cmd/kube-scheduler/app/server_test.go

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import (
2020
"context"
2121
"fmt"
2222
"io/ioutil"
23+
"net"
2324
"net/http"
2425
"net/http/httptest"
2526
"os"
@@ -363,13 +364,31 @@ profiles:
363364
},
364365
}
365366

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+
366376
for _, tc := range testcases {
367377
t.Run(tc.name, func(t *testing.T) {
368378
fs := pflag.NewFlagSet("test", pflag.PanicOnError)
369379
opts, err := options.NewOptions()
370380
if err != nil {
371381
t.Fatal(err)
372382
}
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+
373392
for _, f := range opts.Flags().FlagSets {
374393
fs.AddFlagSet(f)
375394
}
@@ -379,12 +398,10 @@ profiles:
379398

380399
ctx, cancel := context.WithCancel(context.Background())
381400
defer cancel()
382-
cc, sched, err := Setup(ctx, opts)
401+
_, sched, err := Setup(ctx, opts)
383402
if err != nil {
384403
t.Fatal(err)
385404
}
386-
defer cc.SecureServing.Listener.Close()
387-
defer cc.InsecureServing.Listener.Close()
388405

389406
gotPlugins := make(map[string]map[string][]kubeschedulerconfig.Plugin)
390407
for n, p := range sched.Profiles {

pkg/probe/http/http_test.go

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,13 @@ func unsetEnv(key string) func() {
6161

6262
func TestHTTPProbeProxy(t *testing.T) {
6363
res := "welcome to http probe proxy"
64-
localProxy := "http://127.0.0.1:9098/"
64+
65+
server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
66+
fmt.Fprint(w, res)
67+
}))
68+
defer server.Close()
69+
70+
localProxy := server.URL
6571

6672
defer setEnv("http_proxy", localProxy)()
6773
defer setEnv("HTTP_PROXY", localProxy)()
@@ -71,16 +77,6 @@ func TestHTTPProbeProxy(t *testing.T) {
7177
followNonLocalRedirects := true
7278
prober := New(followNonLocalRedirects)
7379

74-
go func() {
75-
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
76-
fmt.Fprint(w, res)
77-
})
78-
err := http.ListenAndServe(":9098", nil)
79-
if err != nil {
80-
t.Errorf("Failed to start foo server: localhost:9098")
81-
}
82-
}()
83-
8480
// take some time to wait server boot
8581
time.Sleep(2 * time.Second)
8682
url, err := url.Parse("http://example.com")

staging/src/k8s.io/apiserver/pkg/server/filters/goaway_test.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -342,6 +342,7 @@ func TestClientReceivedGOAWAY(t *testing.T) {
342342

343343
for _, tc := range cases {
344344
t.Run(tc.name, func(t *testing.T) {
345+
var mu sync.Mutex
345346
// localAddr indicates how many TCP connection set up
346347
localAddr := make([]string, 0)
347348

@@ -350,7 +351,10 @@ func TestClientReceivedGOAWAY(t *testing.T) {
350351
if err != nil {
351352
t.Fatalf("unexpect connection err: %v", err)
352353
}
354+
355+
mu.Lock()
353356
localAddr = append(localAddr, conn.LocalAddr().String())
357+
mu.Unlock()
354358
return
355359
})
356360
if err != nil {
@@ -435,6 +439,8 @@ func TestGOAWAYHTTP1Requests(t *testing.T) {
435439
// TestGOAWAYConcurrency tests GOAWAY frame will not affect concurrency requests in a single http client instance.
436440
// Known issues in history: https://github.com/kubernetes/kubernetes/issues/91131.
437441
func TestGOAWAYConcurrency(t *testing.T) {
442+
t.Skip("disabled because of https://github.com/kubernetes/kubernetes/issues/94532")
443+
438444
s, err := newTestGOAWAYServer()
439445
if err != nil {
440446
t.Fatalf("failed to set-up test GOAWAY http server, err: %v", err)

0 commit comments

Comments
 (0)