fix(notify): 根治低带宽控制面阻塞与传输写入卡死
- 为控制消息增加优先级、公平调度、队列字节预算和自适应批处理 - 支持可取消的写门等待,收紧 shared/dedicated bulk、stream 和 Reply 写入边界 - 修复 bulk reset/close、连接 handoff 和安全 profile 切换时序 - 保留旧取消与超时错误契约,新增阶段化 TransportSendError - 增加 ReplyCtx、ReplyObjCtx、写超时配置及黑洞连接和竞态回归测试
This commit is contained in:
@@ -7,6 +7,33 @@ import (
|
||||
"time"
|
||||
)
|
||||
|
||||
func TestTransportBindingAdaptiveControlStartsLANFriendly(t *testing.T) {
|
||||
binding := &transportBinding{}
|
||||
if got, want := binding.controlAdaptiveSoftPayloadBytesSnapshot(), controlAdaptiveSoftPayloadStartBytes; got != want {
|
||||
t.Fatalf("adaptive control soft payload = %d, want %d", got, want)
|
||||
}
|
||||
}
|
||||
|
||||
func TestTransportBindingAdaptiveControlShrinksAfterSlowWrite(t *testing.T) {
|
||||
binding := &transportBinding{}
|
||||
binding.observeControlAdaptivePayloadWrite(4*1024*1024, 4*time.Second, 30*time.Second, nil)
|
||||
if got, want := binding.controlAdaptiveSoftPayloadBytesSnapshot(), controlAdaptiveSoftPayloadMinBytes; got != want {
|
||||
t.Fatalf("adaptive control soft payload = %d, want %d", got, want)
|
||||
}
|
||||
}
|
||||
|
||||
func TestTransportBindingAdaptiveControlRecoversAfterFastWrites(t *testing.T) {
|
||||
binding := &transportBinding{}
|
||||
binding.observeControlAdaptivePayloadWrite(4*1024*1024, 4*time.Second, 30*time.Second, nil)
|
||||
samples := controlAdaptiveSoftPayloadGrowSuccesses * (len(controlAdaptiveSoftPayloadSteps) - 1)
|
||||
for i := 0; i < samples; i++ {
|
||||
binding.observeControlAdaptivePayloadWrite(4*1024*1024, 2*time.Millisecond, 30*time.Second, nil)
|
||||
}
|
||||
if got, want := binding.controlAdaptiveSoftPayloadBytesSnapshot(), controlAdaptiveSoftPayloadMaxBytes; got != want {
|
||||
t.Fatalf("adaptive control soft payload = %d, want %d", got, want)
|
||||
}
|
||||
}
|
||||
|
||||
func TestTransportBindingAdaptiveBulkSoftPayloadStartsAggressive(t *testing.T) {
|
||||
binding := &transportBinding{}
|
||||
if got, want := binding.bulkAdaptiveSoftPayloadBytesSnapshot(), bulkAdaptiveSoftPayloadStartBytes; got != want {
|
||||
|
||||
Reference in New Issue
Block a user