45 lines
1.2 KiB
Go
45 lines
1.2 KiB
Go
package update
|
|
|
|
import "testing"
|
|
|
|
func TestContainsDockerIndicator(t *testing.T) {
|
|
cases := []struct {
|
|
name string
|
|
content string
|
|
want bool
|
|
}{
|
|
{"docker cgroup 路径", "0::/docker/abc123", true},
|
|
{"docker- 前缀", "12:pids:/docker-abc", true},
|
|
{"包含 docker 字样", "1:name=systemd/docker.slice", true},
|
|
{"k8s 环境", "0::/kubepods/pod123", false},
|
|
{"普通 cgroup", "0::/user.slice/user-1000.slice", false},
|
|
{"空内容", "", false},
|
|
}
|
|
for _, c := range cases {
|
|
t.Run(c.name, func(t *testing.T) {
|
|
if got := containsDockerIndicator(c.content); got != c.want {
|
|
t.Errorf("containsDockerIndicator(%q) = %v, want %v", c.content, got, c.want)
|
|
}
|
|
})
|
|
}
|
|
}
|
|
|
|
func TestContains(t *testing.T) {
|
|
cases := []struct {
|
|
s, sub string
|
|
want bool
|
|
}{
|
|
{"hello docker world", "docker", true},
|
|
{"hello docker world", "world", true},
|
|
{"hello", "hello", true}, // 与自身相等
|
|
{"abc", "abcd", false}, // 子串比源串长
|
|
{"", "", true}, // 双空串
|
|
{"abc", "", true}, // 空子串视为匹配(containsDockerIndicator 已另行过滤空内容)
|
|
}
|
|
for _, c := range cases {
|
|
if got := contains(c.s, c.sub); got != c.want {
|
|
t.Errorf("contains(%q, %q) = %v, want %v", c.s, c.sub, got, c.want)
|
|
}
|
|
}
|
|
}
|