27 lines
1 KiB
Go
27 lines
1 KiB
Go
package mtprotoedge
|
|
|
|
import "testing"
|
|
|
|
func TestRuntimeSnapshotIsNilSafeAndReportsConfiguredLimits(t *testing.T) {
|
|
if got := (*Server)(nil).RuntimeSnapshot(); got != (RuntimeSnapshot{}) {
|
|
t.Fatalf("nil server snapshot = %#v, want zero", got)
|
|
}
|
|
if got := (&Server{}).RuntimeSnapshot(); got != (RuntimeSnapshot{}) {
|
|
t.Fatalf("partial server snapshot = %#v, want zero", got)
|
|
}
|
|
|
|
server := New(Options{})
|
|
snapshot := server.RuntimeSnapshot()
|
|
if snapshot.RawConnectionLimit <= 0 || snapshot.HandshakeLimit <= 0 {
|
|
t.Fatalf("admission limits not reported: %#v", snapshot)
|
|
}
|
|
if snapshot.InboundRPCMaxTasks <= 0 || snapshot.InboundRPCMaxBytes <= 0 {
|
|
t.Fatalf("inbound RPC limits not reported: %#v", snapshot)
|
|
}
|
|
if snapshot.InboundFrameMaxBytes <= 0 || snapshot.OutboundTrackedMaxBytes <= 0 || snapshot.OutboundWriteMaxBytes <= 0 {
|
|
t.Fatalf("byte limits not reported: %#v", snapshot)
|
|
}
|
|
if snapshot.RawConnections != 0 || snapshot.ActiveSessions != 0 || snapshot.LogicalOutboxBytes != 0 {
|
|
t.Fatalf("fresh server reported live ownership: %#v", snapshot)
|
|
}
|
|
}
|