From a0c7871cf140d1e9cf59a213626ee534c0122c7f Mon Sep 17 00:00:00 2001 From: FinnWilliamsArm Date: Mon, 16 Sep 2019 12:06:47 +0100 Subject: IVGCVSW-3826: Implement IProfiling functions !armnn:1814 Signed-off-by: Teresa Charlin Signed-off-by: FinnWilliamsArm Change-Id: I82c7453d7969880e321572637adc0fb9c0e5fd7b --- src/profiling/test/ProfilingTests.cpp | 81 ++++++++++++++++++++++++----------- 1 file changed, 55 insertions(+), 26 deletions(-) (limited to 'src/profiling/test/ProfilingTests.cpp') diff --git a/src/profiling/test/ProfilingTests.cpp b/src/profiling/test/ProfilingTests.cpp index 4913dde6ee..55524a4dfe 100644 --- a/src/profiling/test/ProfilingTests.cpp +++ b/src/profiling/test/ProfilingTests.cpp @@ -114,21 +114,39 @@ BOOST_AUTO_TEST_CASE(CheckEncodeVersion) BOOST_AUTO_TEST_CASE(CheckPacketClass) { - const char* data = "test"; - unsigned int length = static_cast(std::strlen(data)); - - Packet packetTest1(472580096,length,data); - BOOST_CHECK_THROW(Packet packetTest2(472580096,0,""), armnn::Exception); - - Packet packetTest3(472580096,0, nullptr); - - BOOST_CHECK(packetTest1.GetLength() == length); - BOOST_CHECK(packetTest1.GetData() == data); - - BOOST_CHECK(packetTest1.GetPacketFamily() == 7); - BOOST_CHECK(packetTest1.GetPacketId() == 43); - BOOST_CHECK(packetTest1.GetPacketType() == 3); - BOOST_CHECK(packetTest1.GetPacketClass() == 5); + uint32_t length = 4; + std::unique_ptr packetData0 = std::make_unique(length); + std::unique_ptr packetData1 = std::make_unique(0); + std::unique_ptr nullPacketData; + + Packet packetTest0(472580096, length, packetData0); + + BOOST_CHECK(packetTest0.GetHeader() == 472580096); + BOOST_CHECK(packetTest0.GetPacketFamily() == 7); + BOOST_CHECK(packetTest0.GetPacketId() == 43); + BOOST_CHECK(packetTest0.GetLength() == length); + BOOST_CHECK(packetTest0.GetPacketType() == 3); + BOOST_CHECK(packetTest0.GetPacketClass() == 5); + + BOOST_CHECK_THROW(Packet packetTest1(472580096, 0, packetData1), armnn::Exception); + BOOST_CHECK_NO_THROW(Packet packetTest2(472580096, 0, nullPacketData)); + + Packet packetTest3(472580096, 0, nullPacketData); + BOOST_CHECK(packetTest3.GetLength() == 0); + BOOST_CHECK(packetTest3.GetData() == nullptr); + + const char* packetTest0Data = packetTest0.GetData(); + Packet packetTest4(std::move(packetTest0)); + + BOOST_CHECK(packetTest0.GetData() == nullptr); + BOOST_CHECK(packetTest4.GetData() == packetTest0Data); + + BOOST_CHECK(packetTest4.GetHeader() == 472580096); + BOOST_CHECK(packetTest4.GetPacketFamily() == 7); + BOOST_CHECK(packetTest4.GetPacketId() == 43); + BOOST_CHECK(packetTest4.GetLength() == length); + BOOST_CHECK(packetTest4.GetPacketType() == 3); + BOOST_CHECK(packetTest4.GetPacketClass() == 5); } // Create Derived Classes @@ -186,9 +204,13 @@ BOOST_AUTO_TEST_CASE(CheckCommandHandlerFunctor) it++; BOOST_CHECK(it->first==keyC); - Packet packetA(500000000, 0, nullptr); - Packet packetB(600000000, 0, nullptr); - Packet packetC(400000000, 0, nullptr); + std::unique_ptr packetDataA; + std::unique_ptr packetDataB; + std::unique_ptr packetDataC; + + Packet packetA(500000000, 0, packetDataA); + Packet packetB(600000000, 0, packetDataB); + Packet packetC(400000000, 0, packetDataC); // Check the correct operator of derived class is called registry.at(CommandHandlerKey(packetA.GetPacketId(), version))->operator()(packetA); @@ -224,9 +246,13 @@ BOOST_AUTO_TEST_CASE(CheckCommandHandlerRegistry) registry.RegisterFunctor(&testFunctorB, testFunctorB.GetPacketId(), testFunctorB.GetVersion()); registry.RegisterFunctor(&testFunctorC, testFunctorC.GetPacketId(), testFunctorC.GetVersion()); - Packet packetA(500000000, 0, nullptr); - Packet packetB(600000000, 0, nullptr); - Packet packetC(400000000, 0, nullptr); + std::unique_ptr packetDataA; + std::unique_ptr packetDataB; + std::unique_ptr packetDataC; + + Packet packetA(500000000, 0, packetDataA); + Packet packetB(600000000, 0, packetDataB); + Packet packetC(400000000, 0, packetDataC); // Check the correct operator of derived class is called registry.GetFunctor(packetA.GetPacketId(), version)->operator()(packetA); @@ -561,16 +587,18 @@ BOOST_AUTO_TEST_CASE(CounterSelectionCommandHandlerParseData) // Data with period and counters uint32_t period1 = 10; uint32_t dataLength1 = 8; - unsigned char data1[dataLength1]; uint32_t offset = 0; + std::unique_ptr uniqueData1 = std::make_unique(dataLength1); + unsigned char* data1 = reinterpret_cast(uniqueData1.get()); + WriteUint32(data1, offset, period1); offset += sizeOfUint32; WriteUint16(data1, offset, 4000); offset += sizeOfUint16; WriteUint16(data1, offset, 5000); - Packet packetA(packetId, dataLength1, reinterpret_cast(data1)); + Packet packetA(packetId, dataLength1, uniqueData1); PeriodicCounterSelectionCommandHandler commandHandler(packetId, version, holder, captureThread, sendCounterPacket); @@ -611,11 +639,12 @@ BOOST_AUTO_TEST_CASE(CounterSelectionCommandHandlerParseData) // Data with period only uint32_t period2 = 11; uint32_t dataLength2 = 4; - unsigned char data2[dataLength2]; - WriteUint32(data2, 0, period2); + std::unique_ptr uniqueData2 = std::make_unique(dataLength2); + + WriteUint32(reinterpret_cast(uniqueData2.get()), 0, period2); - Packet packetB(packetId, dataLength2, reinterpret_cast(data2)); + Packet packetB(packetId, dataLength2, uniqueData2); commandHandler(packetB); -- cgit v1.2.1