Skip to content

Commit 29bf282

Browse files
committed
test: cover managed read buffer recycling
1 parent 4cdea6f commit 29bf282

1 file changed

Lines changed: 23 additions & 0 deletions

File tree

test/cctest/test_environment.cc

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,29 @@ class EnvironmentTest : public EnvironmentTestFixture {
3939
}
4040
};
4141

42+
TEST_F(EnvironmentTest, ManagedBufferCache) {
43+
constexpr size_t kCacheSize = 64 * 1024;
44+
constexpr size_t kOtherSize = 1024;
45+
const v8::HandleScope handle_scope(isolate_);
46+
Argv argv;
47+
Env env{handle_scope, argv};
48+
49+
(*env)->recycle_managed_buffer(nullptr);
50+
51+
uv_buf_t buffer = (*env)->allocate_managed_buffer(kCacheSize);
52+
char* cached_data = buffer.base;
53+
(*env)->recycle_managed_buffer(
54+
(*env)->release_managed_buffer(buffer));
55+
56+
buffer = (*env)->allocate_managed_buffer(kOtherSize);
57+
(*env)->recycle_managed_buffer(
58+
(*env)->release_managed_buffer(buffer));
59+
60+
buffer = (*env)->allocate_managed_buffer(kCacheSize);
61+
EXPECT_EQ(buffer.base, cached_data);
62+
(*env)->release_managed_buffer(buffer);
63+
}
64+
4265
TEST_F(EnvironmentTest, EnvironmentWithoutBrowserGlobals) {
4366
const v8::HandleScope handle_scope(isolate_);
4467
Argv argv;

0 commit comments

Comments
 (0)