test: 补充单元测试覆盖率 29.9% → 36.6%

新建 18 个测试文件,追加 30 个已有测试文件,覆盖协议解析、
错误分类、CEL 表达式求值、YAML 反序列化、字节编码等纯函数。
This commit is contained in:
ZacharyZcR
2026-06-17 12:51:41 +08:00
parent 6eff1d5ccf
commit 0612255893
48 changed files with 7556 additions and 1 deletions
+73
View File
@@ -862,3 +862,76 @@ func TestConvertToTargetInfos_DeepCopy(t *testing.T) {
}
})
}
// =============================================================================
// mergeHostPorts 测试
// =============================================================================
func TestMergeHostPorts(t *testing.T) {
// 结果顺序不确定(map 遍历),用集合比较
toSet := func(ss []string) map[string]struct{} {
m := make(map[string]struct{}, len(ss))
for _, s := range ss {
m[s] = struct{}{}
}
return m
}
setsEqual := func(a, b map[string]struct{}) bool {
if len(a) != len(b) {
return false
}
for k := range a {
if _, ok := b[k]; !ok {
return false
}
}
return true
}
tests := []struct {
name string
a []string
b []string
want []string
}{
{
name: "两个空切片返回空",
a: []string{},
b: []string{},
want: []string{},
},
{
name: "无重复-并集",
a: []string{"1.1.1.1:80"},
b: []string{"2.2.2.2:443"},
want: []string{"1.1.1.1:80", "2.2.2.2:443"},
},
{
name: "有重复-去重",
a: []string{"1.1.1.1:80", "2.2.2.2:443"},
b: []string{"2.2.2.2:443", "3.3.3.3:22"},
want: []string{"1.1.1.1:80", "2.2.2.2:443", "3.3.3.3:22"},
},
{
name: "a为nil-返回b内容",
a: nil,
b: []string{"1.1.1.1:80", "2.2.2.2:443"},
want: []string{"1.1.1.1:80", "2.2.2.2:443"},
},
{
name: "b为nil-返回a内容",
a: []string{"1.1.1.1:80"},
b: nil,
want: []string{"1.1.1.1:80"},
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
got := mergeHostPorts(tt.a, tt.b)
if !setsEqual(toSet(got), toSet(tt.want)) {
t.Errorf("mergeHostPorts() = %v, want %v", got, tt.want)
}
})
}
}