mirror of
https://github.com/giongto35/cloud-game.git
synced 2026-01-23 10:35:44 +00:00
Get random free port in websocket tests
This commit is contained in:
parent
e7e281083f
commit
b79b4c405a
1 changed files with 20 additions and 1 deletions
|
|
@ -4,6 +4,7 @@ import (
|
|||
"encoding/json"
|
||||
"fmt"
|
||||
"math/rand"
|
||||
"net"
|
||||
"net/http"
|
||||
"net/url"
|
||||
"sync"
|
||||
|
|
@ -49,7 +50,13 @@ func TestWebsocket(t *testing.T) {
|
|||
}
|
||||
|
||||
func testWebsocket(t *testing.T) {
|
||||
addr := ":8989"
|
||||
port, err := getFreePort()
|
||||
if err != nil {
|
||||
t.Logf("couldn't get any free port")
|
||||
t.Skip()
|
||||
}
|
||||
addr := fmt.Sprintf(":%v", port)
|
||||
|
||||
server := newServer(addr, t)
|
||||
client := newClient(t, url.URL{Scheme: "ws", Host: "localhost" + addr, Path: "/ws"})
|
||||
clDone := client.ProcessPackets(func(in TestIn) error { return nil })
|
||||
|
|
@ -206,3 +213,15 @@ func newServer(addr string, t *testing.T) *serverHandler {
|
|||
wg.Wait()
|
||||
return &handler
|
||||
}
|
||||
|
||||
func getFreePort() (port int, err error) {
|
||||
var a *net.TCPAddr
|
||||
var l *net.TCPListener
|
||||
if a, err = net.ResolveTCPAddr("tcp", ":0"); err == nil {
|
||||
if l, err = net.ListenTCP("tcp", a); err == nil {
|
||||
defer func() { _ = l.Close() }()
|
||||
return l.Addr().(*net.TCPAddr).Port, nil
|
||||
}
|
||||
}
|
||||
return
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue