in util/common/traces/base/base.go [59:88]
func TraceTest(t *testing.T, traceTest TraceTestConfig) error {
t.Helper()
startTime := time.Now()
common.CopyFile(traceTest.AgentConfigPath, common.ConfigOutputPath)
require.NoError(t, common.StartAgent(common.ConfigOutputPath, true, false), "Couldn't Start the agent")
go func() {
require.NoError(t, traceTest.Generator.StartSendingTraces(context.Background()), "load generator exited with error")
}()
time.Sleep(traceTest.AgentRuntime)
traceTest.Generator.StopSendingTraces()
time.Sleep(AGENT_SHUTDOWN_DELAY)
common.StopAgent()
testsGenerated, testsEnded := traceTest.Generator.GetSegmentCount()
t.Logf("For %s , Test Cases Generated %d | Test Cases Ended: %d", traceTest.Name, testsGenerated, testsEnded)
endTime := time.Now()
t.Logf("Agent has been running for %s", endTime.Sub(startTime))
time.Sleep(10 * time.Second)
traceIDs, err := awsservice.GetTraceIDs(startTime, endTime, awsservice.FilterExpression(
traceTest.Generator.GetGeneratorConfig().Annotations))
require.NoError(t, err, "unable to get trace IDs")
segments, err := awsservice.GetSegments(traceIDs)
require.NoError(t, err, "unable to get segments")
assert.True(t, len(segments) >= testsGenerated,
"FAILED: Not enough segments, expected %d but got %d , traceIDCount: %d",
testsGenerated, len(segments), len(traceIDs))
require.NoError(t, SegmentValidationTest(t, traceTest, segments), "Segment Validation Failed")
return nil
}