@@ -11,7 +11,6 @@ import (
11
11
"path/filepath"
12
12
"regexp"
13
13
"strings"
14
- "sync"
15
14
"testing"
16
15
"text/template"
17
16
"time"
@@ -69,8 +68,6 @@ var archRe = regexp.MustCompile("-amd64$|-arm64$|-ppc64le$")
69
68
70
69
var globalSinks * sinks
71
70
72
- var setupRun = sync.Once {}
73
-
74
71
var expectedValuesDir string
75
72
76
73
type sinks struct {
@@ -82,36 +79,20 @@ type sinks struct {
82
79
tracesConsumer * consumertest.TracesSink
83
80
}
84
81
85
- func setupOnce (t * testing.T ) * sinks {
86
- setupRun .Do (func () {
87
- // create an API server
88
- internal .SetupSignalFxApiServer (t )
89
- globalSinks = & sinks {
90
- logsConsumer : internal .SetupHECLogsSink (t ),
91
- hecMetricsConsumer : internal .SetupHECMetricsSink (t ),
92
- logsObjectsConsumer : internal .SetupHECObjectsSink (t ),
93
- agentMetricsConsumer : internal .SetupSignalfxReceiver (t , signalFxReceiverPort ),
94
- k8sclusterReceiverMetricsConsumer : internal .SetupSignalfxReceiver (t ,
95
- signalFxReceiverK8sClusterReceiverPort ),
96
- tracesConsumer : internal .SetupOTLPTracesSink (t ),
97
- }
98
-
99
- testKubeConfig , setKubeConfig := os .LookupEnv ("KUBECONFIG" )
100
- require .True (t , setKubeConfig , "the environment variable KUBECONFIG must be set" )
101
- internal .AcquireLeaseForTest (t , testKubeConfig )
102
- if os .Getenv ("TEARDOWN_BEFORE_SETUP" ) == "true" {
103
- teardown (t , testKubeConfig )
104
- }
105
- // deploy the chart and applications.
106
- if os .Getenv ("SKIP_SETUP" ) == "true" {
107
- t .Log ("Skipping setup as SKIP_SETUP is set to true" )
108
- return
109
- }
110
- deployChartsAndApps (t , testKubeConfig )
111
- })
112
-
113
- return globalSinks
82
+ func setupSinks (t * testing.T ) {
83
+ // create an API server
84
+ internal .SetupSignalFxApiServer (t )
85
+ globalSinks = & sinks {
86
+ logsConsumer : internal .SetupHECLogsSink (t ),
87
+ hecMetricsConsumer : internal .SetupHECMetricsSink (t ),
88
+ logsObjectsConsumer : internal .SetupHECObjectsSink (t ),
89
+ agentMetricsConsumer : internal .SetupSignalfxReceiver (t , signalFxReceiverPort ),
90
+ k8sclusterReceiverMetricsConsumer : internal .SetupSignalfxReceiver (t ,
91
+ signalFxReceiverK8sClusterReceiverPort ),
92
+ tracesConsumer : internal .SetupOTLPTracesSink (t ),
93
+ }
114
94
}
95
+
115
96
func deployChartsAndApps (t * testing.T , testKubeConfig string ) {
116
97
kubeTestEnv , setKubeTestEnv := os .LookupEnv ("KUBE_TEST_ENV" )
117
98
require .True (t , setKubeTestEnv , "the environment variable KUBE_TEST_ENV must be set" )
@@ -546,7 +527,23 @@ func teardown(t *testing.T, testKubeConfig string) {
546
527
}
547
528
548
529
func Test_Functions (t * testing.T ) {
549
- _ = setupOnce (t )
530
+ setupSinks (t )
531
+
532
+ testKubeConfig , setKubeConfig := os .LookupEnv ("KUBECONFIG" )
533
+ require .True (t , setKubeConfig , "the environment variable KUBECONFIG must be set" )
534
+
535
+ internal .AcquireLeaseForTest (t , testKubeConfig )
536
+ if os .Getenv ("TEARDOWN_BEFORE_SETUP" ) == "true" {
537
+ teardown (t , testKubeConfig )
538
+ }
539
+
540
+ // deploy the chart and applications.
541
+ if os .Getenv ("SKIP_SETUP" ) == "true" {
542
+ t .Log ("Skipping setup as SKIP_SETUP is set to true" )
543
+ } else {
544
+ deployChartsAndApps (t , testKubeConfig )
545
+ }
546
+
550
547
if os .Getenv ("SKIP_TESTS" ) == "true" {
551
548
t .Log ("Skipping tests as SKIP_TESTS is set to true" )
552
549
return
@@ -577,7 +574,7 @@ func Test_Functions(t *testing.T) {
577
574
}
578
575
579
576
func testNodeJSTraces (t * testing.T ) {
580
- tracesConsumer := setupOnce ( t ) .tracesConsumer
577
+ tracesConsumer := globalSinks .tracesConsumer
581
578
582
579
var expectedTraces ptrace.Traces
583
580
expectedTracesFile := filepath .Join (testDir , expectedValuesDir , "expected_nodejs_traces.yaml" )
@@ -644,7 +641,7 @@ func testNodeJSTraces(t *testing.T) {
644
641
}
645
642
646
643
func testPythonTraces (t * testing.T ) {
647
- tracesConsumer := setupOnce ( t ) .tracesConsumer
644
+ tracesConsumer := globalSinks .tracesConsumer
648
645
649
646
var expectedTraces ptrace.Traces
650
647
expectedTracesFile := filepath .Join (testDir , expectedValuesDir , "expected_python_traces.yaml" )
@@ -713,7 +710,7 @@ func testPythonTraces(t *testing.T) {
713
710
}
714
711
715
712
func testJavaTraces (t * testing.T ) {
716
- tracesConsumer := setupOnce ( t ) .tracesConsumer
713
+ tracesConsumer := globalSinks .tracesConsumer
717
714
718
715
var expectedTraces ptrace.Traces
719
716
expectedTracesFile := filepath .Join (testDir , expectedValuesDir , "expected_java_traces.yaml" )
@@ -777,7 +774,7 @@ func testJavaTraces(t *testing.T) {
777
774
}
778
775
779
776
func testDotNetTraces (t * testing.T ) {
780
- tracesConsumer := setupOnce ( t ) .tracesConsumer
777
+ tracesConsumer := globalSinks .tracesConsumer
781
778
782
779
var expectedTraces ptrace.Traces
783
780
expectedTracesFile := filepath .Join (testDir , expectedValuesDir , "expected_dotnet_traces.yaml" )
@@ -887,7 +884,7 @@ func shortenNames(value string) string {
887
884
}
888
885
889
886
func testK8sClusterReceiverMetrics (t * testing.T ) {
890
- metricsConsumer := setupOnce ( t ) .k8sclusterReceiverMetricsConsumer
887
+ metricsConsumer := globalSinks .k8sclusterReceiverMetricsConsumer
891
888
expectedMetricsFile := filepath .Join (testDir , expectedValuesDir , "expected_cluster_receiver.yaml" )
892
889
expectedMetrics , err := golden .ReadMetrics (expectedMetricsFile )
893
890
require .NoError (t , err )
@@ -967,7 +964,7 @@ func testK8sClusterReceiverMetrics(t *testing.T) {
967
964
968
965
func testAgentLogs (t * testing.T ) {
969
966
970
- logsConsumer := setupOnce ( t ) .logsConsumer
967
+ logsConsumer := globalSinks .logsConsumer
971
968
internal .WaitForLogs (t , 5 , logsConsumer )
972
969
973
970
var helloWorldResource pcommon.Resource
@@ -1076,7 +1073,7 @@ func testAgentLogs(t *testing.T) {
1076
1073
}
1077
1074
1078
1075
func testK8sObjects (t * testing.T ) {
1079
- logsObjectsConsumer := setupOnce ( t ) .logsObjectsConsumer
1076
+ logsObjectsConsumer := globalSinks .logsObjectsConsumer
1080
1077
internal .WaitForLogs (t , 5 , logsObjectsConsumer )
1081
1078
1082
1079
var kinds []string
@@ -1125,7 +1122,7 @@ func testK8sObjects(t *testing.T) {
1125
1122
}
1126
1123
1127
1124
func testAgentMetrics (t * testing.T ) {
1128
- agentMetricsConsumer := setupOnce ( t ) .agentMetricsConsumer
1125
+ agentMetricsConsumer := globalSinks .agentMetricsConsumer
1129
1126
1130
1127
metricNames := []string {
1131
1128
"container.filesystem.available" ,
@@ -1296,7 +1293,7 @@ func testAgentMetrics(t *testing.T) {
1296
1293
}
1297
1294
1298
1295
func testPrometheusAnnotationMetrics (t * testing.T ) {
1299
- agentMetricsConsumer := setupOnce ( t ) .agentMetricsConsumer
1296
+ agentMetricsConsumer := globalSinks .agentMetricsConsumer
1300
1297
1301
1298
metricNames := []string {
1302
1299
"istio_agent_cert_expiry_seconds" ,
@@ -1358,7 +1355,7 @@ func selectMetricSet(expected pmetric.Metrics, metricName string, metricSink *co
1358
1355
}
1359
1356
1360
1357
func testHECMetrics (t * testing.T ) {
1361
- hecMetricsConsumer := setupOnce ( t ) .hecMetricsConsumer
1358
+ hecMetricsConsumer := globalSinks .hecMetricsConsumer
1362
1359
1363
1360
metricNames := []string {
1364
1361
"container.cpu.time" ,
0 commit comments