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)
}()
}
}