diff --git a/src/TraceReader/TraceReader.hpp b/src/TraceReader/TraceReader.hpp index 4d31e219..9baf3a7d 100644 --- a/src/TraceReader/TraceReader.hpp +++ b/src/TraceReader/TraceReader.hpp @@ -76,7 +76,7 @@ class TraceReader std::atomic isRunning{false}; std::string lastErrorMsg = ""; - std::array previousEntry; + std::array previousEntry{}; std::unique_ptr, double>>> traceTable; std::thread readerHandle; diff --git a/src/TraceReader/TraceReaderNew.hpp b/src/TraceReader/TraceReaderNew.hpp index 861a17d0..722046fa 100644 --- a/src/TraceReader/TraceReaderNew.hpp +++ b/src/TraceReader/TraceReaderNew.hpp @@ -80,7 +80,7 @@ class TraceReaderNew std::atomic isRunning{false}; std::string lastErrorMsg = ""; - std::array previousEntry; + std::array previousEntry{}; std::unique_ptr, double>>> traceTable; std::thread readerHandle; diff --git a/test/TraceReaderTest.cpp b/test/TraceReaderTest.cpp index a631b80e..252eb8d3 100644 --- a/test/TraceReaderTest.cpp +++ b/test/TraceReaderTest.cpp @@ -217,48 +217,48 @@ TEST_F(TraceReaderTest, testdoubleBuffers) } } -// TEST_F(TraceReaderTest, testdoubleBuffersBoundarySource) -// { -// uint8_t buf[] = {9, 187, 192, 206, 9, -// 17, 170, 192, 35, -// 17, 187, 192, 233, 2, -// 9, 170, 192, 165, 1, 9}; - -// uint8_t buf2[] = {187, 192, 202, 9, -// 17, 170, 192, 35, -// 17, 187, 192, 234, 2, -// 25, 170, 192, 23}; - -// std::array trace{}; - -// std::array expectedTimestamp = {7.6875e-06, 2.1875e-07, 2.25625e-06, 1.03125e-06, 7.6625e-06, 2.1875e-07, 2.2625e-06, 1.4375e-07}; -// std::array, 8> expectedTrace{{{{0, 187, 0, 0, 0, 0, 0, 0, 0, 0}}, -// {{0, 187, 170, 0, 0, 0, 0, 0, 0, 0}}, -// {{0, 187, 187, 0, 0, 0, 0, 0, 0, 0}}, -// {{0, 170, 187, 0, 0, 0, 0, 0, 0, 0}}, -// {{0, 187, 187, 0, 0, 0, 0, 0, 0, 0}}, -// {{0, 187, 170, 0, 0, 0, 0, 0, 0, 0}}, -// {{0, 187, 187, 0, 0, 0, 0, 0, 0, 0}}, -// {{0, 187, 187, 170, 0, 0, 0, 0, 0, 0}}}}; - -// EXPECT_CALL(*traceDevice, readTraceBuffer(_, _)) -// .WillOnce(testing::Invoke([&](uint8_t* buffer, uint32_t size) -// {memcpy(buffer,buf,sizeof(buf)); -// return sizeof(buf); })) -// .WillOnce(testing::Invoke([&](uint8_t* buffer, uint32_t size) -// {memcpy(buffer,buf2,sizeof(buf2)); -// return sizeof(buf2); })) -// .WillRepeatedly(Return(0)); - -// traceReader->startAcqusition(activeChannels); -// std::this_thread::sleep_for(std::chrono::milliseconds(50)); - -// int i = 0; -// for (auto& e : expectedTrace) -// { -// double timestamp = 0.0; -// ASSERT_EQ(traceReader->readTrace(timestamp, trace), true); -// ASSERT_NEAR(expectedTimestamp[i++], timestamp, 10e-9); -// ASSERT_EQ(trace, e); -// } -// } +TEST_F(TraceReaderTest, testdoubleBuffersBoundarySource) +{ + uint8_t buf[] = {9, 187, 192, 206, 9, + 17, 170, 192, 35, + 17, 187, 192, 233, 2, + 9, 170, 192, 165, 1, 9}; + + uint8_t buf2[] = {187, 192, 202, 9, + 17, 170, 192, 35, + 17, 187, 192, 234, 2, + 25, 170, 192, 23}; + + std::array trace{}; + + std::array expectedTimestamp = {7.6875e-06, 2.1875e-07, 2.25625e-06, 1.03125e-06, 7.6625e-06, 2.1875e-07, 2.2625e-06, 1.4375e-07}; + std::array, 8> expectedTrace{{{{0, 187, 0, 0, 0, 0, 0, 0, 0, 0}}, + {{0, 187, 170, 0, 0, 0, 0, 0, 0, 0}}, + {{0, 187, 187, 0, 0, 0, 0, 0, 0, 0}}, + {{0, 170, 187, 0, 0, 0, 0, 0, 0, 0}}, + {{0, 187, 187, 0, 0, 0, 0, 0, 0, 0}}, + {{0, 187, 170, 0, 0, 0, 0, 0, 0, 0}}, + {{0, 187, 187, 0, 0, 0, 0, 0, 0, 0}}, + {{0, 187, 187, 170, 0, 0, 0, 0, 0, 0}}}}; + + EXPECT_CALL(*traceDevice, readTraceBuffer(_, _)) + .WillOnce(testing::Invoke([&](uint8_t* buffer, uint32_t size) + {memcpy(buffer,buf,sizeof(buf)); + return sizeof(buf); })) + .WillOnce(testing::Invoke([&](uint8_t* buffer, uint32_t size) + {memcpy(buffer,buf2,sizeof(buf2)); + return sizeof(buf2); })) + .WillRepeatedly(Return(0)); + + traceReader->startAcqusition(activeChannels); + std::this_thread::sleep_for(std::chrono::milliseconds(50)); + + int i = 0; + for (auto& e : expectedTrace) + { + double timestamp = 0.0; + ASSERT_EQ(traceReader->readTrace(timestamp, trace), true); + ASSERT_NEAR(expectedTimestamp[i++], timestamp, 10e-9); + ASSERT_EQ(trace, e); + } +}