mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-06-20 00:51:42 +00:00
[wpiutil] Fix uv::Buffer memory leaks caught by asan (#3555)
This commit is contained in:
@@ -19,6 +19,10 @@ TEST(RawUvStreamTest, BasicWrite) {
|
||||
ASSERT_EQ(bufs[0].base[1], '2');
|
||||
ASSERT_EQ(bufs[0].base[2], '3');
|
||||
ASSERT_EQ(bufs[0].base[3], '4');
|
||||
|
||||
for (auto& buf : bufs) {
|
||||
buf.Deallocate();
|
||||
}
|
||||
}
|
||||
|
||||
TEST(RawUvStreamTest, BoundaryWrite) {
|
||||
@@ -31,6 +35,10 @@ TEST(RawUvStreamTest, BoundaryWrite) {
|
||||
ASSERT_EQ(bufs.size(), 1u);
|
||||
os << "56";
|
||||
ASSERT_EQ(bufs.size(), 2u);
|
||||
|
||||
for (auto& buf : bufs) {
|
||||
buf.Deallocate();
|
||||
}
|
||||
}
|
||||
|
||||
TEST(RawUvStreamTest, LargeWrite) {
|
||||
@@ -40,6 +48,10 @@ TEST(RawUvStreamTest, LargeWrite) {
|
||||
ASSERT_EQ(bufs.size(), 2u);
|
||||
ASSERT_EQ(bufs[1].len, 2u);
|
||||
ASSERT_EQ(bufs[1].base[0], '5');
|
||||
|
||||
for (auto& buf : bufs) {
|
||||
buf.Deallocate();
|
||||
}
|
||||
}
|
||||
|
||||
TEST(RawUvStreamTest, PrevDataWrite) {
|
||||
@@ -50,6 +62,10 @@ TEST(RawUvStreamTest, PrevDataWrite) {
|
||||
ASSERT_EQ(bufs.size(), 2u);
|
||||
ASSERT_EQ(bufs[0].len, 1024u);
|
||||
ASSERT_EQ(bufs[1].len, 4u);
|
||||
|
||||
for (auto& buf : bufs) {
|
||||
buf.Deallocate();
|
||||
}
|
||||
}
|
||||
|
||||
} // namespace wpi
|
||||
|
||||
@@ -12,12 +12,14 @@ TEST(UvSimpleBufferPool, ConstructDefault) {
|
||||
SimpleBufferPool<> pool;
|
||||
auto buf1 = pool.Allocate();
|
||||
ASSERT_EQ(buf1.len, 4096u); // NOLINT
|
||||
pool.Release({&buf1, 1});
|
||||
}
|
||||
|
||||
TEST(UvSimpleBufferPool, ConstructSize) {
|
||||
SimpleBufferPool<4> pool{8192};
|
||||
auto buf1 = pool.Allocate();
|
||||
ASSERT_EQ(buf1.len, 8192u); // NOLINT
|
||||
pool.Release({&buf1, 1});
|
||||
}
|
||||
|
||||
TEST(UvSimpleBufferPool, ReleaseReuse) {
|
||||
@@ -31,6 +33,7 @@ TEST(UvSimpleBufferPool, ReleaseReuse) {
|
||||
auto buf2 = pool.Allocate();
|
||||
ASSERT_EQ(buf1copy.base, buf2.base);
|
||||
ASSERT_EQ(buf2.len, origSize);
|
||||
pool.Release({&buf2, 1});
|
||||
}
|
||||
|
||||
TEST(UvSimpleBufferPool, ClearRemaining) {
|
||||
|
||||
Reference in New Issue
Block a user