|
|
@ -0,0 +1,50 @@ |
|
|
|
|
|
package kafka |
|
|
|
|
|
|
|
|
|
|
|
import ( |
|
|
|
|
|
"net" |
|
|
|
|
|
"testing" |
|
|
|
|
|
"time" |
|
|
|
|
|
|
|
|
|
|
|
"github.com/seaweedfs/seaweedfs/weed/mq/kafka/gateway" |
|
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
func TestGateway_StartAcceptsConnections(t *testing.T) { |
|
|
|
|
|
srv := gateway.NewServer(gateway.Options{Listen: ":0"}) |
|
|
|
|
|
if err := srv.Start(); err != nil { |
|
|
|
|
|
t.Fatalf("start gateway: %v", err) |
|
|
|
|
|
} |
|
|
|
|
|
addr := srv.Addr() |
|
|
|
|
|
if addr == "" { |
|
|
|
|
|
t.Fatalf("server Addr() empty") |
|
|
|
|
|
} |
|
|
|
|
|
conn, err := net.DialTimeout("tcp", addr, 2*time.Second) |
|
|
|
|
|
if err != nil { |
|
|
|
|
|
t.Fatalf("dial gateway: %v", err) |
|
|
|
|
|
} |
|
|
|
|
|
_ = conn.Close() |
|
|
|
|
|
if err := srv.Close(); err != nil { |
|
|
|
|
|
t.Fatalf("close gateway: %v", err) |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
func TestGateway_RefusesAfterClose(t *testing.T) { |
|
|
|
|
|
srv := gateway.NewServer(gateway.Options{Listen: ":0"}) |
|
|
|
|
|
if err := srv.Start(); err != nil { |
|
|
|
|
|
t.Fatalf("start gateway: %v", err) |
|
|
|
|
|
} |
|
|
|
|
|
addr := srv.Addr() |
|
|
|
|
|
if addr == "" { |
|
|
|
|
|
t.Fatalf("server Addr() empty") |
|
|
|
|
|
} |
|
|
|
|
|
if err := srv.Close(); err != nil { |
|
|
|
|
|
t.Fatalf("close gateway: %v", err) |
|
|
|
|
|
} |
|
|
|
|
|
// give the OS a brief moment to release the port
|
|
|
|
|
|
time.Sleep(50 * time.Millisecond) |
|
|
|
|
|
_, err := net.DialTimeout("tcp", addr, 300*time.Millisecond) |
|
|
|
|
|
if err == nil { |
|
|
|
|
|
t.Fatalf("expected dial to fail after close") |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|