You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
32 lines
691 B
32 lines
691 B
package gateway
|
|
|
|
import (
|
|
"net"
|
|
"testing"
|
|
"time"
|
|
)
|
|
|
|
func TestServerStartAndClose(t *testing.T) {
|
|
srv := NewServer(Options{Listen: ":0"})
|
|
if err := srv.Start(); err != nil {
|
|
t.Fatalf("start: %v", err)
|
|
}
|
|
// ensure listener is open and accepting
|
|
// try to dial the actual chosen port
|
|
// Find the actual address
|
|
var addr string
|
|
if srv.ln == nil {
|
|
t.Fatalf("listener not set")
|
|
}
|
|
addr = srv.ln.Addr().String()
|
|
c, err := net.DialTimeout("tcp", addr, time.Second)
|
|
if err != nil {
|
|
t.Fatalf("dial: %v", err)
|
|
}
|
|
_ = c.Close()
|
|
if err := srv.Close(); err != nil {
|
|
t.Fatalf("close: %v", err)
|
|
}
|
|
}
|
|
|
|
|