aboutsummaryrefslogtreecommitdiffhomepage
path: root/test/core/iomgr
diff options
context:
space:
mode:
authorGravatar Craig Tiller <ctiller@google.com>2016-09-22 16:27:12 -0700
committerGravatar Craig Tiller <ctiller@google.com>2016-09-22 16:27:12 -0700
commitb7810a14b9bdece46a05763890af199dd5426e6a (patch)
treeb9d7853cbde19a23624514c94fde3fa2ec79e9c5 /test/core/iomgr
parentf57c293f56d79d760fa0cc0e07e55a28966fe4ea (diff)
Add a blocked async alloc test
Diffstat (limited to 'test/core/iomgr')
-rw-r--r--test/core/iomgr/buffer_pool_test.c25
1 files changed, 25 insertions, 0 deletions
diff --git a/test/core/iomgr/buffer_pool_test.c b/test/core/iomgr/buffer_pool_test.c
index 10565be3c2..5ec15cca80 100644
--- a/test/core/iomgr/buffer_pool_test.c
+++ b/test/core/iomgr/buffer_pool_test.c
@@ -129,6 +129,30 @@ static void test_simple_async_alloc(void) {
destroy_user(&usr);
}
+static void test_async_alloc_blocked_by_size(void) {
+ gpr_log(GPR_INFO, "** test_async_alloc_blocked_by_size **");
+ grpc_buffer_pool *p = grpc_buffer_pool_create();
+ grpc_buffer_pool_resize(p, 1);
+ grpc_buffer_user usr;
+ grpc_buffer_user_init(&usr, p);
+ bool done = false;
+ {
+ grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT;
+ grpc_buffer_user_alloc(&exec_ctx, &usr, 1024, set_bool(&done));
+ grpc_exec_ctx_finish(&exec_ctx);
+ GPR_ASSERT(!done);
+ }
+ grpc_buffer_pool_resize(p, 1024);
+ GPR_ASSERT(done);
+ {
+ grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT;
+ grpc_buffer_user_free(&exec_ctx, &usr, 1024);
+ grpc_exec_ctx_finish(&exec_ctx);
+ }
+ grpc_buffer_pool_unref(p);
+ destroy_user(&usr);
+}
+
int main(int argc, char **argv) {
grpc_test_init(argc, argv);
grpc_init();
@@ -138,6 +162,7 @@ int main(int argc, char **argv) {
test_instant_alloc_then_free();
test_instant_alloc_free_pair();
test_simple_async_alloc();
+ test_async_alloc_blocked_by_size();
grpc_shutdown();
return 0;
}