|
|
|
@ -682,6 +682,56 @@ static void test_one_slice_deleted_late(void) { |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
static void test_resize_to_zero(void) { |
|
|
|
|
gpr_log(GPR_INFO, "** test_resize_to_zero **"); |
|
|
|
|
grpc_resource_quota *q = grpc_resource_quota_create("test_resize_to_zero"); |
|
|
|
|
grpc_resource_quota_resize(q, 0); |
|
|
|
|
grpc_resource_quota_unref(q); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
static void test_negative_rq_free_pool(void) { |
|
|
|
|
gpr_log(GPR_INFO, "** test_negative_rq_free_pool **"); |
|
|
|
|
grpc_resource_quota *q = |
|
|
|
|
grpc_resource_quota_create("test_negative_rq_free_pool"); |
|
|
|
|
grpc_resource_quota_resize(q, 1024); |
|
|
|
|
|
|
|
|
|
grpc_resource_user *usr = grpc_resource_user_create(q, "usr"); |
|
|
|
|
|
|
|
|
|
grpc_resource_user_slice_allocator alloc; |
|
|
|
|
int num_allocs = 0; |
|
|
|
|
grpc_resource_user_slice_allocator_init(&alloc, usr, inc_int_cb, &num_allocs); |
|
|
|
|
|
|
|
|
|
grpc_slice_buffer buffer; |
|
|
|
|
grpc_slice_buffer_init(&buffer); |
|
|
|
|
|
|
|
|
|
{ |
|
|
|
|
const int start_allocs = num_allocs; |
|
|
|
|
grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT; |
|
|
|
|
grpc_resource_user_alloc_slices(&exec_ctx, &alloc, 1024, 1, &buffer); |
|
|
|
|
grpc_exec_ctx_finish(&exec_ctx); |
|
|
|
|
GPR_ASSERT(num_allocs == start_allocs + 1); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
grpc_resource_quota_resize(q, 512); |
|
|
|
|
|
|
|
|
|
double eps = 0.0001; |
|
|
|
|
GPR_ASSERT(grpc_resource_quota_get_memory_pressure(q) < 1 + eps); |
|
|
|
|
GPR_ASSERT(grpc_resource_quota_get_memory_pressure(q) > 1 - eps); |
|
|
|
|
|
|
|
|
|
{ |
|
|
|
|
grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT; |
|
|
|
|
grpc_resource_user_unref(&exec_ctx, usr); |
|
|
|
|
grpc_exec_ctx_finish(&exec_ctx); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
grpc_resource_quota_unref(q); |
|
|
|
|
{ |
|
|
|
|
grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT; |
|
|
|
|
grpc_slice_buffer_destroy_internal(&exec_ctx, &buffer); |
|
|
|
|
grpc_exec_ctx_finish(&exec_ctx); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
int main(int argc, char **argv) { |
|
|
|
|
grpc_test_init(argc, argv); |
|
|
|
|
grpc_init(); |
|
|
|
@ -705,6 +755,8 @@ int main(int argc, char **argv) { |
|
|
|
|
test_reclaimers_can_be_posted_repeatedly(); |
|
|
|
|
test_one_slice(); |
|
|
|
|
test_one_slice_deleted_late(); |
|
|
|
|
test_resize_to_zero(); |
|
|
|
|
test_negative_rq_free_pool(); |
|
|
|
|
grpc_shutdown(); |
|
|
|
|
return 0; |
|
|
|
|
} |
|
|
|
|