From 36b41bc9655d8bd48b161450a40f312b7388845f Mon Sep 17 00:00:00 2001 From: Ziheng Liu Date: Fri, 8 Nov 2019 14:55:30 -0500 Subject: [PATCH] apimachinery: fix bugs in a Test function Signed-off-by: Ziheng Liu --- .../util/httpstream/spdy/connection_test.go | 38 +++++++++++++------ 1 file changed, 27 insertions(+), 11 deletions(-) diff --git a/staging/src/k8s.io/apimachinery/pkg/util/httpstream/spdy/connection_test.go b/staging/src/k8s.io/apimachinery/pkg/util/httpstream/spdy/connection_test.go index f94e2b3ba46..e00b29c461e 100644 --- a/staging/src/k8s.io/apimachinery/pkg/util/httpstream/spdy/connection_test.go +++ b/staging/src/k8s.io/apimachinery/pkg/util/httpstream/spdy/connection_test.go @@ -27,10 +27,11 @@ import ( "k8s.io/apimachinery/pkg/util/httpstream" ) -func runProxy(t *testing.T, backendUrl string, proxyUrl chan<- string, proxyDone chan<- struct{}) { +func runProxy(t *testing.T, backendUrl string, proxyUrl chan<- string, proxyDone chan<- struct{}, errCh chan<- error) { listener, err := net.Listen("tcp4", "localhost:0") if err != nil { - t.Fatalf("error listening: %v", err) + errCh <- err + return } defer listener.Close() @@ -67,10 +68,11 @@ func runProxy(t *testing.T, backendUrl string, proxyUrl chan<- string, proxyDone proxyDone <- struct{}{} } -func runServer(t *testing.T, backendUrl chan<- string, serverDone chan<- struct{}) { +func runServer(t *testing.T, backendUrl chan<- string, serverDone chan<- struct{}, errCh chan<- error) { listener, err := net.Listen("tcp4", "localhost:0") if err != nil { - t.Fatalf("server: error listening: %v", err) + errCh <- err + return } defer listener.Close() @@ -115,15 +117,29 @@ func runServer(t *testing.T, backendUrl chan<- string, serverDone chan<- struct{ } func TestConnectionCloseIsImmediateThroughAProxy(t *testing.T) { - serverDone := make(chan struct{}) - backendUrlChan := make(chan string) - go runServer(t, backendUrlChan, serverDone) - backendUrl := <-backendUrlChan + errCh := make(chan error) - proxyDone := make(chan struct{}) + serverDone := make(chan struct{}, 1) + backendUrlChan := make(chan string) + go runServer(t, backendUrlChan, serverDone, errCh) + + var backendUrl string + select { + case err := <-errCh: + t.Fatalf("server: error listening: %v", err) + case backendUrl = <-backendUrlChan: + } + + proxyDone := make(chan struct{}, 1) proxyUrlChan := make(chan string) - go runProxy(t, backendUrl, proxyUrlChan, proxyDone) - proxyUrl := <-proxyUrlChan + go runProxy(t, backendUrl, proxyUrlChan, proxyDone, errCh) + + var proxyUrl string + select { + case err := <-errCh: + t.Fatalf("error listening: %v", err) + case proxyUrl = <-proxyUrlChan: + } conn, err := net.Dial("tcp4", proxyUrl) if err != nil {