mirror of
https://github.com/seaweedfs/seaweedfs.git
synced 2026-10-21 13:34:26 +02:00
mq(kafka): implement ApiVersions protocol handler with manual binary encoding and comprehensive unit tests
This commit is contained in:
1 parent
8c74de6f6e
commit
7c4a5f546c
6 files changed
+370
-83
No files matched your search
@@ -1,50 +1,48 @@
|
||||
package kafka
|
||||
|
||||
import (
|
||||
"net"
|
||||
"testing"
|
||||
"time"
|
||||
"net"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/seaweedfs/seaweedfs/weed/mq/kafka/gateway"
|
||||
"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)
|
||||
}
|
||||
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")
|
||||
}
|
||||
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")
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user