Files
easyai-ai-gateway/apps/api/internal/runner/worker_capability_test.go
T
wangbo 7786692d32 feat(routing): 引入多执行池智能调度
将 Worker 发现、路由画像、容量与执行传输抽象为平台无关接口,新增 Kubernetes 和静态容量适配器,并以 shadow 模式接入生产配置。

实现网络与容量评分、路由防抖、池队列、同步 Worker 租约、一次性执行令牌,以及提交状态不明时禁止重复分配的安全语义。

新增 0105 兼容迁移、管理接口、指标、OpenAPI 和回归测试。已执行全量 Go 测试、go vet、OpenAPI、迁移安全、Compose 与 Kustomize 验证。
2026-08-05 22:25:37 +08:00

24 lines
874 B
Go

package runner
import (
"testing"
"time"
"github.com/easyai/easyai-ai-gateway/apps/api/internal/executionpool"
"github.com/easyai/easyai-ai-gateway/apps/api/internal/store"
)
func TestWorkerCapabilityNegotiationRejectsLegacyDescriptor(t *testing.T) {
worker := executionpool.WorkerDescriptor{
ProtocolVersion: executionpool.ProtocolVersion, Allocated: 1, SafeCapacity: 1,
Capabilities: map[string]any{}, HeartbeatAt: time.Now(),
}
if workerCapabilityMatched([]executionpool.WorkerDescriptor{worker}, store.GatewayTask{Kind: "images.generations"}) {
t.Fatal("legacy worker without taskKinds capability was accepted")
}
worker.Capabilities = map[string]any{"taskKinds": []any{"images.*"}}
if !workerCapabilityMatched([]executionpool.WorkerDescriptor{worker}, store.GatewayTask{Kind: "images.generations"}) {
t.Fatal("compatible worker was rejected")
}
}