From aa7c9ae7c5da857bb0b6508161ce36de79c436d6 Mon Sep 17 00:00:00 2001 From: Arseny Balobanov Date: Sat, 15 Feb 2020 22:56:46 +0300 Subject: [PATCH] Test success case of using WaitForPort func. --- tools/testtool/freeport_test.go | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/tools/testtool/freeport_test.go b/tools/testtool/freeport_test.go index 2cd4177..4314c3b 100644 --- a/tools/testtool/freeport_test.go +++ b/tools/testtool/freeport_test.go @@ -2,6 +2,10 @@ package testtool import ( "context" + "net" + "net/http" + "net/http/httptest" + "net/url" "testing" "time" @@ -15,6 +19,23 @@ func TestGetFreePort(t *testing.T) { } func TestWaitForPort(t *testing.T) { + s := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {})) + defer s.Close() + + u, err := url.Parse(s.URL) + require.Nil(t, err) + _, port, err := net.SplitHostPort(u.Host) + require.Nil(t, err) + + ctx, cancel := context.WithTimeout(context.Background(), time.Second) + defer cancel() + + WaitForPort(ctx, port) + + require.NoError(t, ctx.Err()) +} + +func TestWaitForPort_timeout(t *testing.T) { p, err := GetFreePort() require.NoError(t, err)