shad-go/tools/testtool/freeport_test.go
2020-02-15 23:18:14 +03:00

37 lines
715 B
Go

package testtool
import (
"net"
"net/http"
"net/http/httptest"
"net/url"
"testing"
"time"
"github.com/stretchr/testify/require"
)
func TestGetFreePort(t *testing.T) {
p, err := GetFreePort()
require.NoError(t, err)
require.NotEmpty(t, p)
}
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)
require.NoError(t, WaitForPort(time.Second, port))
}
func TestWaitForPort_timeout(t *testing.T) {
p, err := GetFreePort()
require.NoError(t, err)
require.Error(t, WaitForPort(time.Second, p))
}