将 Worker 发现、路由画像、容量与执行传输抽象为平台无关接口,新增 Kubernetes 和静态容量适配器,并以 shadow 模式接入生产配置。 实现网络与容量评分、路由防抖、池队列、同步 Worker 租约、一次性执行令牌,以及提交状态不明时禁止重复分配的安全语义。 新增 0105 兼容迁移、管理接口、指标、OpenAPI 和回归测试。已执行全量 Go 测试、go vet、OpenAPI、迁移安全、Compose 与 Kustomize 验证。
26 lines
906 B
Go
26 lines
906 B
Go
package runner
|
|
|
|
import (
|
|
"testing"
|
|
"time"
|
|
)
|
|
|
|
func TestPassiveRouteObserverRecordsOnlyTransportPhaseFacts(t *testing.T) {
|
|
observer := &passiveRouteObserver{}
|
|
startedAt := time.Now()
|
|
observer.record(true, 10*time.Millisecond, 1024, startedAt, startedAt.Add(time.Millisecond))
|
|
observer.record(false, 20*time.Millisecond, 2048, startedAt, startedAt.Add(2*time.Millisecond))
|
|
observer.record(true, 30*time.Millisecond, 0, startedAt, time.Time{})
|
|
|
|
observation := observer.snapshot("pool-a", "route-a")
|
|
if observation.SampleCount != 3 || observation.SuccessCount != 2 {
|
|
t.Fatalf("observation=%+v", observation)
|
|
}
|
|
if observation.ConnectTLSP95 != 30*time.Millisecond {
|
|
t.Fatalf("connect/TLS p95=%s", observation.ConnectTLSP95)
|
|
}
|
|
if observation.UploadBytesPerSecond < 1_024_000-1 || observation.UploadBytesPerSecond > 1_024_000+1 {
|
|
t.Fatalf("upload rate=%f", observation.UploadBytesPerSecond)
|
|
}
|
|
}
|