Skip to content

Commit

Permalink
apimachinery: fix bugs in a Test function
Browse files Browse the repository at this point in the history
Signed-off-by: Ziheng Liu <zxl381@psu.edu>
  • Loading branch information
lzhfromustc committed Dec 3, 2019
1 parent bef8d42 commit 36b41bc
Showing 1 changed file with 26 additions and 10 deletions.
Expand Up @@ -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()

Expand Down Expand Up @@ -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()

Expand Down Expand Up @@ -115,15 +117,29 @@ func runServer(t *testing.T, backendUrl chan<- string, serverDone chan<- struct{
}

func TestConnectionCloseIsImmediateThroughAProxy(t *testing.T) {
serverDone := make(chan struct{})
errCh := make(chan error)

serverDone := make(chan struct{}, 1)
backendUrlChan := make(chan string)
go runServer(t, backendUrlChan, serverDone)
backendUrl := <-backendUrlChan
go runServer(t, backendUrlChan, serverDone, errCh)

proxyDone := make(chan struct{})
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 {
Expand Down

0 comments on commit 36b41bc

Please sign in to comment.