aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/profiling/ActivateTimelineReportingCommandHandler.cpp13
-rw-r--r--tests/profiling/gatordmock/tests/GatordMockTests.cpp4
2 files changed, 12 insertions, 5 deletions
diff --git a/src/profiling/ActivateTimelineReportingCommandHandler.cpp b/src/profiling/ActivateTimelineReportingCommandHandler.cpp
index 614417c6de..6d5f32faa4 100644
--- a/src/profiling/ActivateTimelineReportingCommandHandler.cpp
+++ b/src/profiling/ActivateTimelineReportingCommandHandler.cpp
@@ -41,15 +41,18 @@ void ActivateTimelineReportingCommandHandler::operator()(const arm::pipe::Packet
+ " id = " + std::to_string(packet.GetPacketId()));
}
- m_SendTimelinePacket.SendTimelineMessageDirectoryPackage();
+ if(!m_TimelineReporting)
+ {
+ m_SendTimelinePacket.SendTimelineMessageDirectoryPackage();
- TimelineUtilityMethods::SendWellKnownLabelsAndEventClasses(m_SendTimelinePacket);
+ TimelineUtilityMethods::SendWellKnownLabelsAndEventClasses(m_SendTimelinePacket);
- m_TimelineReporting = true;
+ m_TimelineReporting = true;
- m_ReportStructure.value().ReportStructure();
+ m_ReportStructure.value().ReportStructure();
- m_BackendNotifier.NotifyBackendsForTimelineReporting();
+ m_BackendNotifier.NotifyBackendsForTimelineReporting();
+ }
break;
default:
diff --git a/tests/profiling/gatordmock/tests/GatordMockTests.cpp b/tests/profiling/gatordmock/tests/GatordMockTests.cpp
index 941e284928..303a36a71a 100644
--- a/tests/profiling/gatordmock/tests/GatordMockTests.cpp
+++ b/tests/profiling/gatordmock/tests/GatordMockTests.cpp
@@ -477,6 +477,10 @@ BOOST_AUTO_TEST_CASE(GatorDMockTimeLineActivation)
WaitFor([&](){return mockBackEndProfilingContext->TimelineReportingEnabled();},
"Timeline packets were not activated");
+ // Once TimelineReporting is Enabled additional activateTimelinePackets should be ignored
+ mockService.SendActivateTimelinePacket();
+ mockService.SendActivateTimelinePacket();
+
// Once timeline packets have been reactivated the ActivateTimelineReportingCommandHandler will resend the
// SendWellKnownLabelsAndEventClasses and then send the structure of any loaded networks
WaitFor([&](){return timelineDecoder.GetModel().m_Labels.size() >= 24;},