Patch shutdown during write test to not fail or do a racy destroy if the write

completes successfully.
	Change on 2014/12/10 by klempner <klempner@google.com>
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=81831655
pull/1/merge
klempner 10 years ago committed by Jan Tattermusch
parent ebebb7e21c
commit c9e80fb26a
  1. 16
      test/core/endpoint/endpoint_tests.c

@ -368,8 +368,14 @@ static void shutdown_during_write_test_write_handler(
shutdown_during_write_test_state *st = user_data;
gpr_log(GPR_INFO, "shutdown_during_write_test_write_handler: error = %d",
error);
grpc_endpoint_destroy(st->ep);
gpr_event_set(&st->ev, (void *)(gpr_intptr)error);
if (error == 0) {
/* This happens about 0.5% of the time when run under TSAN, and is entirely
legitimate, but means we aren't testing the path we think we are. */
/* TODO(klempner): Change this test to retry the write in that case */
gpr_log(GPR_ERROR,
"shutdown_during_write_test_write_handler completed unexpectedly");
}
gpr_event_set(&st->ev, (void *)(gpr_intptr)1);
}
static void shutdown_during_write_test(grpc_endpoint_test_config config,
@ -391,11 +397,6 @@ static void shutdown_during_write_test(grpc_endpoint_test_config config,
gpr_event_init(&read_st.ev);
gpr_event_init(&write_st.ev);
#if 0
read_st.ep = grpc_tcp_create(sv[1], &em);
write_st.ep = grpc_tcp_create(sv[0], &em);
#endif
grpc_endpoint_notify_on_read(read_st.ep,
shutdown_during_write_test_read_handler,
&read_st, gpr_inf_future);
@ -414,6 +415,7 @@ static void shutdown_during_write_test(grpc_endpoint_test_config config,
deadline =
gpr_time_add(gpr_now(), gpr_time_from_micros(10 * GPR_US_PER_SEC));
GPR_ASSERT(gpr_event_wait(&write_st.ev, deadline));
grpc_endpoint_destroy(write_st.ep);
GPR_ASSERT(gpr_event_wait(&read_st.ev, deadline));
gpr_free(slices);
end_test(config);

Loading…
Cancel
Save