func TraceTest()

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
}