func()

in exporter/collector/integrationtest/cmd/recordfixtures/main.go [74:111]


func (fr fixtureRecorder) recordTraces(ctx context.Context, t *FakeTesting, startTime, endTime time.Time) {
	testServer, err := cloudmock.NewTracesTestServer()
	if err != nil {
		panic(err)
	}
	//nolint:errcheck
	go testServer.Serve()
	defer testServer.Shutdown()

	for _, test := range testcases.TracesTestCases {
		if test.Skip {
			continue
		}

		require.NoError(t, fr.checkDuplicate(test))

		func() {
			traces := test.LoadOTLPTracesInput(t, startTime, endTime)
			inMemoryOTelExporter, err := integrationtest.NewInMemoryOTelExporter()
			require.NoError(t, err)
			//nolint:errcheck
			defer inMemoryOTelExporter.Shutdown(ctx)
			testServerExporter := integrationtest.NewTraceTestExporter(ctx, t, testServer, test.CreateTraceConfig(), inMemoryOTelExporter.MeterProvider)

			require.NoError(t, testServerExporter.PushTraces(ctx, traces), "failed to export logs to local test server")
			require.NoError(t, testServerExporter.Shutdown(ctx))

			selfObsMetrics, err := inMemoryOTelExporter.Proto(ctx)
			require.NoError(t, err)
			fixture := &protos.TraceExpectFixture{
				BatchWriteSpansRequest:   testServer.CreateBatchWriteSpansRequests(),
				SelfObservabilityMetrics: selfObsMetrics,
				UserAgent:                testcases.UserAgentRemoveRuntimeInfo(testServer.UserAgent()),
			}
			test.SaveRecordedTraceFixtures(t, fixture)
		}()
	}
}