Fix cq test

pull/1397/head
Craig Tiller 10 years ago
parent 1df06263fc
commit f968980665
  1. 114
      test/core/surface/completion_queue_test.c

@ -79,7 +79,7 @@ static void test_wait_empty(void) {
shutdown_and_destroy(cc);
}
static void test_cq_end_read(void) {
static void test_cq_end_op(void) {
grpc_event *ev;
grpc_completion_queue *cc;
int on_finish_called = 0;
@ -89,94 +89,15 @@ static void test_cq_end_read(void) {
cc = grpc_completion_queue_create();
grpc_cq_begin_op(cc, NULL, GRPC_READ);
grpc_cq_end_read(cc, tag, NULL, increment_int_on_finish, &on_finish_called,
NULL);
grpc_cq_begin_op(cc, NULL, GRPC_OP_COMPLETE);
grpc_cq_end_op(cc, tag, NULL, increment_int_on_finish, &on_finish_called,
GRPC_OP_OK);
ev = grpc_completion_queue_next(cc, gpr_inf_past);
GPR_ASSERT(ev != NULL);
GPR_ASSERT(ev->type == GRPC_READ);
GPR_ASSERT(ev->type == GRPC_OP_COMPLETE);
GPR_ASSERT(ev->tag == tag);
GPR_ASSERT(ev->data.read == NULL);
GPR_ASSERT(on_finish_called == 0);
grpc_event_finish(ev);
GPR_ASSERT(on_finish_called == 1);
shutdown_and_destroy(cc);
}
static void test_cq_end_write_accepted(void) {
grpc_event *ev;
grpc_completion_queue *cc;
int on_finish_called = 0;
void *tag = create_test_tag();
LOG_TEST();
cc = grpc_completion_queue_create();
grpc_cq_begin_op(cc, NULL, GRPC_WRITE_ACCEPTED);
grpc_cq_end_write_accepted(cc, tag, NULL, increment_int_on_finish,
&on_finish_called, GRPC_OP_OK);
ev = grpc_completion_queue_next(cc, gpr_inf_past);
GPR_ASSERT(ev != NULL);
GPR_ASSERT(ev->type == GRPC_WRITE_ACCEPTED);
GPR_ASSERT(ev->tag == tag);
GPR_ASSERT(ev->data.write_accepted == GRPC_OP_OK);
GPR_ASSERT(on_finish_called == 0);
grpc_event_finish(ev);
GPR_ASSERT(on_finish_called == 1);
shutdown_and_destroy(cc);
}
static void test_cq_end_finish_accepted(void) {
grpc_event *ev;
grpc_completion_queue *cc;
int on_finish_called = 0;
void *tag = create_test_tag();
LOG_TEST();
cc = grpc_completion_queue_create();
grpc_cq_begin_op(cc, NULL, GRPC_FINISH_ACCEPTED);
grpc_cq_end_finish_accepted(cc, tag, NULL, increment_int_on_finish,
&on_finish_called, GRPC_OP_OK);
ev = grpc_completion_queue_next(cc, gpr_inf_past);
GPR_ASSERT(ev != NULL);
GPR_ASSERT(ev->type == GRPC_FINISH_ACCEPTED);
GPR_ASSERT(ev->tag == tag);
GPR_ASSERT(ev->data.finish_accepted == GRPC_OP_OK);
GPR_ASSERT(on_finish_called == 0);
grpc_event_finish(ev);
GPR_ASSERT(on_finish_called == 1);
shutdown_and_destroy(cc);
}
static void test_cq_end_client_metadata_read(void) {
grpc_event *ev;
grpc_completion_queue *cc;
int on_finish_called = 0;
void *tag = create_test_tag();
LOG_TEST();
cc = grpc_completion_queue_create();
grpc_cq_begin_op(cc, NULL, GRPC_CLIENT_METADATA_READ);
grpc_cq_end_client_metadata_read(cc, tag, NULL, increment_int_on_finish,
&on_finish_called, 0, NULL);
ev = grpc_completion_queue_next(cc, gpr_inf_past);
GPR_ASSERT(ev != NULL);
GPR_ASSERT(ev->type == GRPC_CLIENT_METADATA_READ);
GPR_ASSERT(ev->tag == tag);
GPR_ASSERT(ev->data.client_metadata_read.count == 0);
GPR_ASSERT(ev->data.client_metadata_read.elements == NULL);
GPR_ASSERT(ev->data.op_complete == GRPC_OP_OK);
GPR_ASSERT(on_finish_called == 0);
grpc_event_finish(ev);
GPR_ASSERT(on_finish_called == 1);
@ -203,8 +124,8 @@ static void test_pluck(void) {
cc = grpc_completion_queue_create();
for (i = 0; i < GPR_ARRAY_SIZE(tags); i++) {
grpc_cq_begin_op(cc, NULL, GRPC_WRITE_ACCEPTED);
grpc_cq_end_write_accepted(cc, tags[i], NULL, increment_int_on_finish,
grpc_cq_begin_op(cc, NULL, GRPC_OP_COMPLETE);
grpc_cq_end_op(cc, tags[i], NULL, increment_int_on_finish,
&on_finish_called, GRPC_OP_OK);
}
@ -217,8 +138,8 @@ static void test_pluck(void) {
GPR_ASSERT(on_finish_called == GPR_ARRAY_SIZE(tags));
for (i = 0; i < GPR_ARRAY_SIZE(tags); i++) {
grpc_cq_begin_op(cc, NULL, GRPC_WRITE_ACCEPTED);
grpc_cq_end_write_accepted(cc, tags[i], NULL, increment_int_on_finish,
grpc_cq_begin_op(cc, NULL, GRPC_OP_COMPLETE);
grpc_cq_end_op(cc, tags[i], NULL, increment_int_on_finish,
&on_finish_called, GRPC_OP_OK);
}
@ -261,7 +182,7 @@ static void producer_thread(void *arg) {
gpr_log(GPR_INFO, "producer %d phase 1", opt->id);
for (i = 0; i < TEST_THREAD_EVENTS; i++) {
grpc_cq_begin_op(opt->cc, NULL, GRPC_WRITE_ACCEPTED);
grpc_cq_begin_op(opt->cc, NULL, GRPC_OP_COMPLETE);
}
gpr_log(GPR_INFO, "producer %d phase 1 done", opt->id);
@ -270,8 +191,8 @@ static void producer_thread(void *arg) {
gpr_log(GPR_INFO, "producer %d phase 2", opt->id);
for (i = 0; i < TEST_THREAD_EVENTS; i++) {
grpc_cq_end_write_accepted(opt->cc, (void *)(gpr_intptr) 1, NULL, NULL,
NULL, GRPC_OP_OK);
grpc_cq_end_op(opt->cc, (void *)(gpr_intptr)1, NULL, NULL, NULL,
GRPC_OP_OK);
opt->events_triggered++;
}
@ -298,8 +219,8 @@ static void consumer_thread(void *arg) {
ev = grpc_completion_queue_next(opt->cc, ten_seconds_time());
GPR_ASSERT(ev);
switch (ev->type) {
case GRPC_WRITE_ACCEPTED:
GPR_ASSERT(ev->data.write_accepted == GRPC_OP_OK);
case GRPC_OP_COMPLETE:
GPR_ASSERT(ev->data.op_complete == GRPC_OP_OK);
opt->events_triggered++;
grpc_event_finish(ev);
break;
@ -394,10 +315,7 @@ int main(int argc, char **argv) {
grpc_iomgr_init();
test_no_op();
test_wait_empty();
test_cq_end_read();
test_cq_end_write_accepted();
test_cq_end_finish_accepted();
test_cq_end_client_metadata_read();
test_cq_end_op();
test_pluck();
test_threading(1, 1);
test_threading(1, 10);

Loading…
Cancel
Save