初版功能完成
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
package subnet
|
||||
|
||||
import (
|
||||
"context"
|
||||
"net/netip"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestSenderRejectsEnqueueAfterClose(t *testing.T) {
|
||||
sender, err := NewSender(context.Background(), SenderConfig{
|
||||
SessionID: 55,
|
||||
LocalIP: netip.MustParseAddr("127.0.0.1"),
|
||||
PeerIP: netip.MustParseAddr("127.0.0.2"),
|
||||
PeerPort: 6200,
|
||||
})
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if err := sender.Close(); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if sender.Enqueue([]byte{1, 2, 3}) {
|
||||
t.Fatal("closed Sender accepted a packet with no running consumer")
|
||||
}
|
||||
}
|
||||
|
||||
func TestValidateSenderConfigRejectsInvalidAddressRoles(t *testing.T) {
|
||||
valid := SenderConfig{SessionID: 1, LocalIP: netip.MustParseAddr("127.0.0.1"), PeerIP: netip.MustParseAddr("127.0.0.2"), PeerPort: 6200}
|
||||
if err := validateSenderConfig(valid); err != nil {
|
||||
t.Fatalf("valid Sender config error = %v", err)
|
||||
}
|
||||
invalid := []SenderConfig{
|
||||
{SessionID: 1, LocalIP: netip.IPv4Unspecified(), PeerIP: valid.PeerIP, PeerPort: 6200},
|
||||
{SessionID: 1, LocalIP: valid.LocalIP, PeerIP: netip.MustParseAddr("224.0.0.1"), PeerPort: 6200},
|
||||
{SessionID: 1, LocalIP: valid.LocalIP, PeerIP: valid.LocalIP, PeerPort: 6200},
|
||||
}
|
||||
for _, current := range invalid {
|
||||
if err := validateSenderConfig(current); err == nil {
|
||||
t.Errorf("invalid Sender config accepted: %+v", current)
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user