75 lines
1.8 KiB
Go
75 lines
1.8 KiB
Go
|
|
package agent
|
||
|
|
|
||
|
|
import (
|
||
|
|
"testing"
|
||
|
|
|
||
|
|
"code.fritzlab.net/fritzlab/flock/pkg/embed"
|
||
|
|
)
|
||
|
|
|
||
|
|
func TestParseAnnotations_Defaults(t *testing.T) {
|
||
|
|
a, err := ParseAnnotations(nil)
|
||
|
|
if err != nil {
|
||
|
|
t.Fatal(err)
|
||
|
|
}
|
||
|
|
if !a.WantV6 || a.WantV4 {
|
||
|
|
t.Fatalf("defaults wrong: v6=%v v4=%v", a.WantV6, a.WantV4)
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
func TestParseAnnotations_DualStack(t *testing.T) {
|
||
|
|
a, err := ParseAnnotations(map[string]string{
|
||
|
|
annotationPrefix + "ipv4": "true",
|
||
|
|
})
|
||
|
|
if err != nil {
|
||
|
|
t.Fatal(err)
|
||
|
|
}
|
||
|
|
if !(a.WantV6 && a.WantV4) {
|
||
|
|
t.Fatalf("expected dual stack, got v6=%v v4=%v", a.WantV6, a.WantV4)
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
func TestParseAnnotations_NoFamily(t *testing.T) {
|
||
|
|
if _, err := ParseAnnotations(map[string]string{
|
||
|
|
annotationPrefix + "ipv6": "false",
|
||
|
|
}); err == nil {
|
||
|
|
t.Fatalf("expected error: ipv6=false ipv4=false")
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
func TestParseAnnotations_IPAlgo(t *testing.T) {
|
||
|
|
a, err := ParseAnnotations(map[string]string{
|
||
|
|
annotationPrefix + "ip-algo": "namespace,pod,image",
|
||
|
|
})
|
||
|
|
if err != nil {
|
||
|
|
t.Fatal(err)
|
||
|
|
}
|
||
|
|
want := []embed.Field{embed.FieldNamespace, embed.FieldPod, embed.FieldImage}
|
||
|
|
if len(a.IPAlgo) != len(want) {
|
||
|
|
t.Fatalf("ip-algo len=%d, want %d", len(a.IPAlgo), len(want))
|
||
|
|
}
|
||
|
|
for i := range want {
|
||
|
|
if a.IPAlgo[i] != want[i] {
|
||
|
|
t.Fatalf("ip-algo[%d]=%s, want %s", i, a.IPAlgo[i], want[i])
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
func TestParseAnnotations_CIDR(t *testing.T) {
|
||
|
|
a, err := ParseAnnotations(map[string]string{
|
||
|
|
annotationPrefix + "cidr6": "2602:817:3000:f001::/64, 2602:817:3000:f002::/64",
|
||
|
|
})
|
||
|
|
if err != nil {
|
||
|
|
t.Fatal(err)
|
||
|
|
}
|
||
|
|
if len(a.CIDR6) != 2 {
|
||
|
|
t.Fatalf("cidr6 len=%d", len(a.CIDR6))
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
func TestParseCNIArgs(t *testing.T) {
|
||
|
|
args := ParseCNIArgs("IgnoreUnknown=1;K8S_POD_NAMESPACE=mail;K8S_POD_NAME=stalwart-0;K8S_POD_INFRA_CONTAINER_ID=abc123")
|
||
|
|
if args.PodNamespace != "mail" || args.PodName != "stalwart-0" || args.InfraID != "abc123" {
|
||
|
|
t.Fatalf("ParseCNIArgs got %+v", args)
|
||
|
|
}
|
||
|
|
}
|