package detector import ( "regexp" "testing" "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" ) func BenchmarkEventFilterNoSkipNameSpaces(b *testing.B) { dt := &ResourceDetector{} dt.SkippedPropagatingNamespaces = nil for i := 0; i < b.N; i++ { dt.EventFilter(&unstructured.Unstructured{ Object: map[string]interface{}{ "apiVersion": "apps/v1", "kind": "Deployment", "metadata": map[string]interface{}{ "name": "demo-deployment", "namespace": "benchmark", }, "spec": map[string]interface{}{ "replicas": 2, }, }, }) } } func BenchmarkEventFilterNoMatchSkipNameSpaces(b *testing.B) { dt := &ResourceDetector{} dt.SkippedPropagatingNamespaces = append(dt.SkippedPropagatingNamespaces, regexp.MustCompile("^benchmark-.*$")) for i := 0; i < b.N; i++ { dt.EventFilter(&unstructured.Unstructured{ Object: map[string]interface{}{ "apiVersion": "apps/v1", "kind": "Deployment", "metadata": map[string]interface{}{ "name": "demo-deployment", "namespace": "benchmark", }, "spec": map[string]interface{}{ "replicas": 2, }, }, }) } } func BenchmarkEventFilterNoWildcards(b *testing.B) { dt := &ResourceDetector{} dt.SkippedPropagatingNamespaces = append(dt.SkippedPropagatingNamespaces, regexp.MustCompile("^benchmark$")) for i := 0; i < b.N; i++ { dt.EventFilter(&unstructured.Unstructured{ Object: map[string]interface{}{ "apiVersion": "apps/v1", "kind": "Deployment", "metadata": map[string]interface{}{ "name": "demo-deployment", "namespace": "benchmark-1", }, "spec": map[string]interface{}{ "replicas": 2, }, }, }) } } func BenchmarkEventFilterPrefixMatchSkipNameSpaces(b *testing.B) { dt := &ResourceDetector{} dt.SkippedPropagatingNamespaces = append(dt.SkippedPropagatingNamespaces, regexp.MustCompile("^benchmark-.*$")) for i := 0; i < b.N; i++ { dt.EventFilter(&unstructured.Unstructured{ Object: map[string]interface{}{ "apiVersion": "apps/v1", "kind": "Deployment", "metadata": map[string]interface{}{ "name": "demo-deployment", "namespace": "benchmark-1", }, "spec": map[string]interface{}{ "replicas": 2, }, }, }) } } func BenchmarkEventFilterSuffixMatchSkipNameSpaces(b *testing.B) { dt := &ResourceDetector{} dt.SkippedPropagatingNamespaces = append(dt.SkippedPropagatingNamespaces, regexp.MustCompile("^.*-benchmark$")) for i := 0; i < b.N; i++ { dt.EventFilter(&unstructured.Unstructured{ Object: map[string]interface{}{ "apiVersion": "apps/v1", "kind": "Deployment", "metadata": map[string]interface{}{ "name": "demo-deployment", "namespace": "example-benchmark", }, "spec": map[string]interface{}{ "replicas": 2, }, }, }) } } func BenchmarkEventFilterMultiSkipNameSpaces(b *testing.B) { dt := &ResourceDetector{} dt.SkippedPropagatingNamespaces = append(dt.SkippedPropagatingNamespaces, regexp.MustCompile("^.*-benchmark$"), regexp.MustCompile("^benchmark-.*$")) for i := 0; i < b.N; i++ { dt.EventFilter(&unstructured.Unstructured{ Object: map[string]interface{}{ "apiVersion": "apps/v1", "kind": "Deployment", "metadata": map[string]interface{}{ "name": "demo-deployment", "namespace": "benchmark-1", }, "spec": map[string]interface{}{ "replicas": 2, }, }, }) } }