Skip to content

Commit 31ab6cf

Browse files
committed
EventData - more robust checks for allocation / reset.
1 parent b819c49 commit 31ab6cf

File tree

1 file changed

+27
-9
lines changed

1 file changed

+27
-9
lines changed

tests/EventDataTests.cpp

Lines changed: 27 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -56,33 +56,46 @@ TEST_F(EventDataTest, AllocateWithSameSizeReusesAllocation) {
5656
const uint32_t buffer_size = 100;
5757

5858
ASSERT_TRUE(ed->allocate(buffer_size));
59-
const PROCTIME* pOrigTimestamps = ed->getTimestamps();
59+
EXPECT_NE(ed->getTimestamps(), nullptr);
6060

6161
// Write some data
6262
ed->writeEvent(1, 12345, 1);
6363
EXPECT_EQ(ed->getWriteIndex(), 1u);
64+
EXPECT_EQ(ed->getTimestamps()[0], 12345u);
6465

6566
// Allocate again with same size - should reset but keep allocation
6667
ASSERT_TRUE(ed->allocate(buffer_size));
6768

6869
EXPECT_EQ(ed->getSize(), buffer_size);
6970
EXPECT_EQ(ed->getWriteIndex(), 0u); // Reset
7071
EXPECT_TRUE(ed->isAllocated());
71-
const PROCTIME* pNewTimestamps = ed->getTimestamps();
72-
EXPECT_EQ(pOrigTimestamps, pNewTimestamps); // Same allocation
72+
73+
// Verify data was reset (proves we didn't deallocate/reallocate, just reset)
74+
EXPECT_EQ(ed->getTimestamps()[0], 0u);
75+
76+
// Verify buffer is still usable
77+
ed->writeEvent(2, 54321, 2);
78+
EXPECT_EQ(ed->getTimestamps()[0], 54321u);
79+
EXPECT_EQ(ed->getChannels()[0], 2u);
7380
}
7481

7582
// Test 4: allocate() with different size reallocates
7683
TEST_F(EventDataTest, AllocateWithDifferentSizeReallocates) {
7784
ASSERT_TRUE(ed->allocate(100));
7885
EXPECT_EQ(ed->getSize(), 100u);
79-
const PROCTIME* pOrigTimestamps = ed->getTimestamps();
86+
87+
// Write a marker value to verify memory is reallocated/reset
88+
ed->writeEvent(1, 99999, 1);
89+
EXPECT_EQ(ed->getTimestamps()[0], 99999u);
8090

8191
ASSERT_TRUE(ed->allocate(200));
8292
EXPECT_EQ(ed->getSize(), 200u);
8393
EXPECT_TRUE(ed->isAllocated());
84-
const PROCTIME* pNewTimestamps = ed->getTimestamps();
85-
EXPECT_NE(pOrigTimestamps, pNewTimestamps); // New allocation
94+
95+
// Verify data was reset (reallocation clears old data)
96+
EXPECT_EQ(ed->getTimestamps()[0], 0u);
97+
EXPECT_EQ(ed->getWriteIndex(), 0u);
98+
EXPECT_EQ(ed->getWriteStartIndex(), 0u);
8699
}
87100

88101
// Test 5: writeEvent() stores data correctly
@@ -182,14 +195,15 @@ TEST_F(EventDataTest, WriteEventWithInvalidChannelReturnsFalse) {
182195
// Test 10: reset() clears data but preserves allocation
183196
TEST_F(EventDataTest, ResetClearsDataButPreservesAllocation) {
184197
ASSERT_TRUE(ed->allocate(100));
185-
const PROCTIME* pOrigTimestamps = ed->getTimestamps();
198+
EXPECT_NE(ed->getTimestamps(), nullptr);
186199

187200
// Write some data from multiple channels
188201
ed->writeEvent(1, 1000, 1);
189202
ed->writeEvent(5, 2000, 2);
190203
ed->writeEvent(10, 3000, 3);
191204

192205
EXPECT_NE(ed->getWriteIndex(), 0u);
206+
EXPECT_EQ(ed->getTimestamps()[0], 1000u);
193207

194208
ed->reset();
195209

@@ -205,8 +219,12 @@ TEST_F(EventDataTest, ResetClearsDataButPreservesAllocation) {
205219
// Allocation should remain
206220
EXPECT_TRUE(ed->isAllocated());
207221
EXPECT_EQ(ed->getSize(), 100u);
208-
const PROCTIME* pNewTimestamps = ed->getTimestamps();
209-
EXPECT_EQ(pOrigTimestamps, pNewTimestamps); // Same allocation
222+
223+
// Verify buffer is still usable after reset
224+
ed->writeEvent(15, 9999, 5);
225+
EXPECT_EQ(ed->getTimestamps()[0], 9999u);
226+
EXPECT_EQ(ed->getChannels()[0], 15u);
227+
EXPECT_EQ(ed->getUnits()[0], 5u);
210228
}
211229

212230
// Test 11: cleanup() deallocates all memory

0 commit comments

Comments
 (0)