[wpiutil] Fix uv::Buffer memory leaks caught by asan (#3555)

This commit is contained in:
Tyler Veness
2021-09-09 23:14:10 -07:00
committed by GitHub
parent 2dd5701ac0
commit 828f073ebd
2 changed files with 19 additions and 0 deletions

View File

@@ -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

View File

@@ -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) {