diff --git a/pkg/metrics/metrics_test.go b/pkg/metrics/metrics_test.go new file mode 100644 index 0000000000..5987a38f21 --- /dev/null +++ b/pkg/metrics/metrics_test.go @@ -0,0 +1,34 @@ +package metrics_test + +import ( + "fmt" + "testing" + + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + + operatorsv1alpha1 "github.com/operator-framework/api/pkg/operators/v1alpha1" + "github.com/operator-framework/operator-lifecycle-manager/pkg/metrics" +) + +func TestUpdateSubsSyncCounterStorageThreadSafety(t *testing.T) { + for i := 0; i < 1000; i++ { + go func(ii int) { + sub := &operatorsv1alpha1.Subscription{ + ObjectMeta: metav1.ObjectMeta{ + Namespace: "foo", + Name: "foo", + }, + Spec: &operatorsv1alpha1.SubscriptionSpec{ + Channel: "foo", + Package: "foo", + InstallPlanApproval: "automatic", + }, + Status: operatorsv1alpha1.SubscriptionStatus{ + InstalledCSV: "foo", + }, + } + sub.Spec.Channel = fmt.Sprintf("bar-%v", ii) + metrics.UpdateSubsSyncCounterStorage(sub) + }(i) + } +}