Fix tests to call grpc_init and grpc_shutdown before using exec_ctx

pull/13058/head
Yash Tibrewal 8 years ago
parent 3285f4c732
commit 81fc8c9c33
  1. 2
      include/grpc/impl/codegen/port_platform.h
  2. 6
      include/grpc/support/tls.h
  3. 8
      src/core/lib/iomgr/block_annotate.h
  4. 2
      src/core/lib/iomgr/exec_ctx.h
  5. 12
      src/core/lib/iomgr/iomgr.cc
  6. 3
      src/core/lib/iomgr/load_file.cc
  7. 13
      src/core/lib/surface/init.cc
  8. 3
      test/core/backoff/backoff_test.cc
  9. 4
      test/core/bad_client/tests/badreq.cc
  10. 3
      test/core/bad_client/tests/connection_prefix.cc
  11. 3
      test/core/bad_client/tests/head_of_line_blocking.cc
  12. 2
      test/core/bad_client/tests/headers.cc
  13. 2
      test/core/bad_client/tests/initial_settings_frame.cc
  14. 2
      test/core/bad_client/tests/server_registered_method.cc
  15. 4
      test/core/bad_client/tests/simple_request.cc
  16. 2
      test/core/bad_client/tests/unknown_frame.cc
  17. 3
      test/core/bad_client/tests/window_overflow.cc
  18. 4
      test/core/client_channel/parse_address_test.cc
  19. 2
      test/core/client_channel/resolvers/dns_resolver_connectivity_test.cc
  20. 7
      test/core/client_channel/uri_fuzzer_test.cc
  21. 3
      test/core/client_channel/uri_parser_test.cc
  22. 2
      test/core/end2end/bad_server_response_test.cc
  23. 1
      test/core/end2end/fixtures/h2_sockpair+trace.cc
  24. 2
      test/core/end2end/fuzzers/api_fuzzer.cc
  25. 7
      test/core/end2end/fuzzers/client_fuzzer.cc
  26. 4
      test/core/end2end/fuzzers/server_fuzzer.cc
  27. 2
      test/core/http/format_request_test.cc
  28. 9
      test/core/http/httpcli_test.cc
  29. 3
      test/core/http/httpscli_test.cc
  30. 3
      test/core/http/parser_test.cc
  31. 5
      test/core/iomgr/endpoint_pair_test.cc
  32. 2
      test/core/iomgr/ev_epollsig_linux_test.cc
  33. 2
      test/core/iomgr/fd_conservation_posix_test.cc
  34. 5
      test/core/iomgr/fd_posix_test.cc
  35. 3
      test/core/iomgr/load_file_test.cc
  36. 5
      test/core/iomgr/pollset_set_test.cc
  37. 4
      test/core/iomgr/resolve_address_posix_test.cc
  38. 2
      test/core/iomgr/resolve_address_test.cc
  39. 5
      test/core/iomgr/tcp_client_posix_test.cc
  40. 4
      test/core/iomgr/tcp_posix_test.cc
  41. 8
      test/core/iomgr/tcp_server_posix_test.cc
  42. 3
      test/core/iomgr/timer_list_test.cc
  43. 4
      test/core/iomgr/udp_server_test.cc
  44. 2
      test/core/security/json_token_test.cc
  45. 6
      test/core/security/secure_endpoint_test.cc
  46. 15
      test/core/security/ssl_server_fuzzer.cc
  47. 3
      test/core/slice/b64_test.cc
  48. 3
      test/core/slice/percent_encoding_test.cc
  49. 3
      test/core/slice/slice_buffer_test.cc
  50. 2
      test/core/slice/slice_hash_table_test.cc
  51. 3
      test/core/slice/slice_string_helpers_test.cc
  52. 2
      test/core/slice/slice_test.cc
  53. 2
      test/core/surface/byte_buffer_reader_test.cc
  54. 6
      test/core/surface/concurrent_connectivity_test.cc
  55. 3
      test/core/transport/byte_stream_test.cc
  56. 6
      test/core/transport/chttp2/bin_decoder_test.cc
  57. 3
      test/core/transport/chttp2/bin_encoder_test.cc
  58. 3
      test/core/transport/chttp2/hpack_parser_fuzzer_test.cc
  59. 3
      test/core/transport/chttp2/varint_test.cc
  60. 2
      test/core/transport/connectivity_state_test.cc
  61. 2
      test/core/transport/metadata_test.cc
  62. 3
      test/core/transport/stream_owned_slice_test.cc
  63. 10
      test/core/util/one_corpus_entry_fuzzer.cc
  64. 11
      test/core/util/port_server_client.cc

@ -182,7 +182,7 @@
#ifndef _BSD_SOURCE #ifndef _BSD_SOURCE
#define _BSD_SOURCE #define _BSD_SOURCE
#endif #endif
#define TLS_NO_SUPPORT 1 #define TLS_NO_SUPPORT 1 /* thread-local storage not supported. Use GPR_TLS */
#if TARGET_OS_IPHONE #if TARGET_OS_IPHONE
#define GPR_PLATFORM_STRING "ios" #define GPR_PLATFORM_STRING "ios"
#define GPR_CPU_IPHONE 1 #define GPR_CPU_IPHONE 1

@ -32,6 +32,12 @@
GPR_TLS_DECL(foo); GPR_TLS_DECL(foo);
Thread locals always have static scope. Thread locals always have static scope.
Declaring a thread local class variable 'foo':
GPR_TLS_CLASS_DECL(foo);
Defining the thread local class variable:
GPR_TLS_CLASS_DEF(foo);
Initializing a thread local (must be done at library initialization Initializing a thread local (must be done at library initialization
time): time):
gpr_tls_init(&foo); gpr_tls_init(&foo);

@ -46,6 +46,11 @@ void gpr_thd_end_blocking_region();
gpr_thd_end_blocking_region(); \ gpr_thd_end_blocking_region(); \
grpc_core::ExecCtx::Get()->InvalidateNow(); \ grpc_core::ExecCtx::Get()->InvalidateNow(); \
} while (0) } while (0)
#define GRPC_SCHEDULING_END_BLOCKING_REGION_NO_EXEC_CTX \
do { \
gpr_thd_end_blocking_region(); \
} while (0)
#else #else
#define GRPC_SCHEDULING_START_BLOCKING_REGION \ #define GRPC_SCHEDULING_START_BLOCKING_REGION \
do { \ do { \
@ -54,6 +59,9 @@ void gpr_thd_end_blocking_region();
do { \ do { \
grpc_core::ExecCtx::Get()->InvalidateNow(); \ grpc_core::ExecCtx::Get()->InvalidateNow(); \
} while (0) } while (0)
#define GRPC_SCHEDULING_END_BLOCKING_REGION_NO_EXEC_CTX \
do { \
} while (0)
#endif #endif
#endif /* GRPC_CORE_LIB_IOMGR_BLOCK_ANNOTATE_H */ #endif /* GRPC_CORE_LIB_IOMGR_BLOCK_ANNOTATE_H */

@ -77,6 +77,7 @@ namespace grpc_core {
class ExecCtx { class ExecCtx {
public: public:
/** Default Constructor */ /** Default Constructor */
ExecCtx() : flags_(GRPC_EXEC_CTX_FLAG_IS_FINISHED) { Set(this); } ExecCtx() : flags_(GRPC_EXEC_CTX_FLAG_IS_FINISHED) { Set(this); }
/** Parameterised Constructor */ /** Parameterised Constructor */
@ -84,7 +85,6 @@ class ExecCtx {
/** Destructor */ /** Destructor */
~ExecCtx() { ~ExecCtx() {
GPR_ASSERT(Get() == this);
flags_ |= GRPC_EXEC_CTX_FLAG_IS_FINISHED; flags_ |= GRPC_EXEC_CTX_FLAG_IS_FINISHED;
Flush(); Flush();
Set(last_exec_ctx_); Set(last_exec_ctx_);

@ -84,6 +84,8 @@ void grpc_iomgr_shutdown() {
gpr_now(GPR_CLOCK_REALTIME), gpr_time_from_seconds(10, GPR_TIMESPAN)); gpr_now(GPR_CLOCK_REALTIME), gpr_time_from_seconds(10, GPR_TIMESPAN));
gpr_timespec last_warning_time = gpr_now(GPR_CLOCK_REALTIME); gpr_timespec last_warning_time = gpr_now(GPR_CLOCK_REALTIME);
{
grpc_core::ExecCtx _local_exec_ctx(0);
grpc_timer_manager_shutdown(); grpc_timer_manager_shutdown();
grpc_iomgr_platform_flush(); grpc_iomgr_platform_flush();
grpc_executor_shutdown(); grpc_executor_shutdown();
@ -119,10 +121,12 @@ void grpc_iomgr_shutdown() {
dump_objects("LEAKED"); dump_objects("LEAKED");
abort(); abort();
} }
gpr_timespec short_deadline = gpr_time_add( gpr_timespec short_deadline =
gpr_now(GPR_CLOCK_REALTIME), gpr_time_from_millis(100, GPR_TIMESPAN)); gpr_time_add(gpr_now(GPR_CLOCK_REALTIME),
gpr_time_from_millis(100, GPR_TIMESPAN));
if (gpr_cv_wait(&g_rcv, &g_mu, short_deadline)) { if (gpr_cv_wait(&g_rcv, &g_mu, short_deadline)) {
if (gpr_time_cmp(gpr_now(GPR_CLOCK_REALTIME), shutdown_deadline) > 0) { if (gpr_time_cmp(gpr_now(GPR_CLOCK_REALTIME), shutdown_deadline) >
0) {
if (g_root_object.next != &g_root_object) { if (g_root_object.next != &g_root_object) {
gpr_log(GPR_DEBUG, gpr_log(GPR_DEBUG,
"Failed to free %" PRIuPTR "Failed to free %" PRIuPTR
@ -139,7 +143,7 @@ void grpc_iomgr_shutdown() {
gpr_mu_unlock(&g_mu); gpr_mu_unlock(&g_mu);
grpc_timer_list_shutdown(); grpc_timer_list_shutdown();
grpc_core::ExecCtx::Get()->Flush(); }
/* ensure all threads have left g_mu */ /* ensure all threads have left g_mu */
gpr_mu_lock(&g_mu); gpr_mu_lock(&g_mu);

@ -30,7 +30,6 @@
grpc_error* grpc_load_file(const char* filename, int add_null_terminator, grpc_error* grpc_load_file(const char* filename, int add_null_terminator,
grpc_slice* output) { grpc_slice* output) {
grpc_core::ExecCtx exec_ctx;
unsigned char* contents = nullptr; unsigned char* contents = nullptr;
size_t contents_size = 0; size_t contents_size = 0;
grpc_slice result = grpc_empty_slice(); grpc_slice result = grpc_empty_slice();
@ -74,6 +73,6 @@ end:
GRPC_ERROR_UNREF(error); GRPC_ERROR_UNREF(error);
error = error_out; error = error_out;
} }
GRPC_SCHEDULING_END_BLOCKING_REGION; GRPC_SCHEDULING_END_BLOCKING_REGION_NO_EXEC_CTX;
return error; return error;
} }

@ -153,24 +153,29 @@ void grpc_shutdown(void) {
if (grpc_core::ExecCtx::Get()) { if (grpc_core::ExecCtx::Get()) {
grpc_core::ExecCtx::Get()->Flush(); grpc_core::ExecCtx::Get()->Flush();
} }
grpc_core::ExecCtx _local_exec_ctx(0);
gpr_mu_lock(&g_init_mu); gpr_mu_lock(&g_init_mu);
if (--g_initializations == 0) { if (--g_initializations == 0) {
{
{
grpc_core::ExecCtx _local_exec_ctx(0);
grpc_executor_shutdown(); grpc_executor_shutdown();
grpc_timer_manager_set_threading(false); // shutdown timer_manager thread grpc_timer_manager_set_threading(
false); // shutdown timer_manager thread
for (i = g_number_of_plugins; i >= 0; i--) { for (i = g_number_of_plugins; i >= 0; i--) {
if (g_all_of_the_plugins[i].destroy != nullptr) { if (g_all_of_the_plugins[i].destroy != nullptr) {
g_all_of_the_plugins[i].destroy(); g_all_of_the_plugins[i].destroy();
} }
} }
grpc_mdctx_global_shutdown();
grpc_handshaker_factory_registry_shutdown();
}
grpc_iomgr_shutdown(); grpc_iomgr_shutdown();
gpr_timers_global_destroy(); gpr_timers_global_destroy();
grpc_tracer_shutdown(); grpc_tracer_shutdown();
grpc_mdctx_global_shutdown();
grpc_handshaker_factory_registry_shutdown();
grpc_slice_intern_shutdown(); grpc_slice_intern_shutdown();
grpc_stats_shutdown(); grpc_stats_shutdown();
} }
}
gpr_mu_unlock(&g_init_mu); gpr_mu_unlock(&g_init_mu);
} }

@ -18,6 +18,7 @@
#include "src/core/lib/backoff/backoff.h" #include "src/core/lib/backoff/backoff.h"
#include <grpc/grpc.h>
#include <grpc/support/log.h> #include <grpc/support/log.h>
#include <grpc/support/useful.h> #include <grpc/support/useful.h>
@ -174,6 +175,7 @@ static void test_jitter_backoff(void) {
int main(int argc, char** argv) { int main(int argc, char** argv) {
grpc_test_init(argc, argv); grpc_test_init(argc, argv);
grpc_init();
gpr_time_init(); gpr_time_init();
test_constant_backoff(); test_constant_backoff();
@ -181,5 +183,6 @@ int main(int argc, char** argv) {
test_no_jitter_backoff(); test_no_jitter_backoff();
test_jitter_backoff(); test_jitter_backoff();
grpc_shutdown();
return 0; return 0;
} }

@ -20,6 +20,8 @@
#include <string.h> #include <string.h>
#include <grpc/grpc.h>
#include "src/core/lib/surface/server.h" #include "src/core/lib/surface/server.h"
#include "test/core/end2end/cq_verifier.h" #include "test/core/end2end/cq_verifier.h"
@ -38,6 +40,7 @@ static void verifier(grpc_server* server, grpc_completion_queue* cq,
int main(int argc, char** argv) { int main(int argc, char** argv) {
grpc_test_init(argc, argv); grpc_test_init(argc, argv);
grpc_init();
/* invalid content type */ /* invalid content type */
GRPC_RUN_BAD_CLIENT_TEST( GRPC_RUN_BAD_CLIENT_TEST(
@ -126,5 +129,6 @@ int main(int argc, char** argv) {
"\x10\x0auser-agent\"bad-client grpc-c/0.12.0.0 (linux)", "\x10\x0auser-agent\"bad-client grpc-c/0.12.0.0 (linux)",
GRPC_BAD_CLIENT_DISCONNECT); GRPC_BAD_CLIENT_DISCONNECT);
grpc_shutdown();
return 0; return 0;
} }

@ -30,6 +30,7 @@ static void verifier(grpc_server* server, grpc_completion_queue* cq,
int main(int argc, char** argv) { int main(int argc, char** argv) {
grpc_test_init(argc, argv); grpc_test_init(argc, argv);
grpc_init();
GRPC_RUN_BAD_CLIENT_TEST(verifier, nullptr, "X", 0); GRPC_RUN_BAD_CLIENT_TEST(verifier, nullptr, "X", 0);
GRPC_RUN_BAD_CLIENT_TEST(verifier, nullptr, "PX", 0); GRPC_RUN_BAD_CLIENT_TEST(verifier, nullptr, "PX", 0);
@ -57,5 +58,7 @@ int main(int argc, char** argv) {
0); 0);
GRPC_RUN_BAD_CLIENT_TEST(verifier, nullptr, "PRI * HTTP/2.0\r\n\r\nSM\r\n\rX", GRPC_RUN_BAD_CLIENT_TEST(verifier, nullptr, "PRI * HTTP/2.0\r\n\r\nSM\r\n\rX",
0); 0);
grpc_shutdown();
return 0; return 0;
} }

@ -20,6 +20,7 @@
#include <string.h> #include <string.h>
#include <grpc/grpc.h>
#include <grpc/support/alloc.h> #include <grpc/support/alloc.h>
#include "src/core/lib/surface/server.h" #include "src/core/lib/surface/server.h"
@ -109,6 +110,7 @@ static void addbuf(const void* data, size_t len) {
int main(int argc, char** argv) { int main(int argc, char** argv) {
int i; int i;
grpc_test_init(argc, argv); grpc_test_init(argc, argv);
grpc_init();
#define NUM_FRAMES 10 #define NUM_FRAMES 10
#define FRAME_SIZE 1000 #define FRAME_SIZE 1000
@ -131,6 +133,7 @@ int main(int argc, char** argv) {
} }
grpc_run_bad_client_test(verifier, nullptr, g_buffer, g_count, 0); grpc_run_bad_client_test(verifier, nullptr, g_buffer, g_count, 0);
gpr_free(g_buffer); gpr_free(g_buffer);
grpc_shutdown();
return 0; return 0;
} }

@ -34,6 +34,7 @@ static void verifier(grpc_server* server, grpc_completion_queue* cq,
int main(int argc, char** argv) { int main(int argc, char** argv) {
grpc_test_init(argc, argv); grpc_test_init(argc, argv);
grpc_init();
/* partial http2 header prefixes */ /* partial http2 header prefixes */
GRPC_RUN_BAD_CLIENT_TEST(verifier, nullptr, PFX_STR "\x00", GRPC_RUN_BAD_CLIENT_TEST(verifier, nullptr, PFX_STR "\x00",
@ -335,5 +336,6 @@ int main(int argc, char** argv) {
"15 seconds", "15 seconds",
GRPC_BAD_CLIENT_DISCONNECT); GRPC_BAD_CLIENT_DISCONNECT);
grpc_shutdown();
return 0; return 0;
} }

@ -33,6 +33,7 @@ static void verifier(grpc_server* server, grpc_completion_queue* cq,
int main(int argc, char** argv) { int main(int argc, char** argv) {
grpc_test_init(argc, argv); grpc_test_init(argc, argv);
grpc_init();
/* various partial prefixes */ /* various partial prefixes */
GRPC_RUN_BAD_CLIENT_TEST(verifier, nullptr, PFX_STR "\x00", GRPC_RUN_BAD_CLIENT_TEST(verifier, nullptr, PFX_STR "\x00",
@ -106,5 +107,6 @@ int main(int argc, char** argv) {
PFX_STR ONE_SETTING_HDR "\x00\x99\x00\x00\x00\x00", PFX_STR ONE_SETTING_HDR "\x00\x99\x00\x00\x00\x00",
GRPC_BAD_CLIENT_DISCONNECT); GRPC_BAD_CLIENT_DISCONNECT);
grpc_shutdown();
return 0; return 0;
} }

@ -77,6 +77,7 @@ static void verifier_fails(grpc_server* server, grpc_completion_queue* cq,
int main(int argc, char** argv) { int main(int argc, char** argv) {
grpc_test_init(argc, argv); grpc_test_init(argc, argv);
grpc_init();
/* body generated with /* body generated with
* tools/codegen/core/gen_server_registered_method_bad_client_test_body.py */ * tools/codegen/core/gen_server_registered_method_bad_client_test_body.py */
@ -123,5 +124,6 @@ int main(int argc, char** argv) {
"\x00\x00\x07\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x02\x00\x00", "\x00\x00\x07\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x02\x00\x00",
0); 0);
grpc_shutdown();
return 0; return 0;
} }

@ -20,6 +20,8 @@
#include <string.h> #include <string.h>
#include <grpc/grpc.h>
#include "src/core/lib/surface/server.h" #include "src/core/lib/surface/server.h"
#include "test/core/end2end/cq_verifier.h" #include "test/core/end2end/cq_verifier.h"
@ -122,6 +124,7 @@ static void failure_verifier(grpc_server* server, grpc_completion_queue* cq,
int main(int argc, char** argv) { int main(int argc, char** argv) {
grpc_test_init(argc, argv); grpc_test_init(argc, argv);
grpc_init();
/* basic request: check that things are working */ /* basic request: check that things are working */
GRPC_RUN_BAD_CLIENT_TEST(verifier, nullptr, PFX_STR, 0); GRPC_RUN_BAD_CLIENT_TEST(verifier, nullptr, PFX_STR, 0);
@ -164,5 +167,6 @@ int main(int argc, char** argv) {
GRPC_RUN_BAD_CLIENT_TEST(failure_verifier, nullptr, GRPC_RUN_BAD_CLIENT_TEST(failure_verifier, nullptr,
PFX_STR "\x00\x00\x00\x03\x10\x00\x00\x00\x01", 0); PFX_STR "\x00\x00\x00\x03\x10\x00\x00\x00\x01", 0);
grpc_shutdown();
return 0; return 0;
} }

@ -33,6 +33,7 @@ static void verifier(grpc_server* server, grpc_completion_queue* cq,
} }
int main(int argc, char** argv) { int main(int argc, char** argv) {
grpc_init();
grpc_test_init(argc, argv); grpc_test_init(argc, argv);
/* test adding prioritization data */ /* test adding prioritization data */
@ -40,5 +41,6 @@ int main(int argc, char** argv) {
PFX_STR "\x00\x00\x00\x88\x00\x00\x00\x00\x01", PFX_STR "\x00\x00\x00\x88\x00\x00\x00\x00\x01",
GRPC_BAD_CLIENT_DISCONNECT); GRPC_BAD_CLIENT_DISCONNECT);
grpc_shutdown();
return 0; return 0;
} }

@ -20,6 +20,7 @@
#include <string.h> #include <string.h>
#include <grpc/grpc.h>
#include <grpc/support/alloc.h> #include <grpc/support/alloc.h>
#include "src/core/lib/surface/server.h" #include "src/core/lib/surface/server.h"
@ -72,6 +73,7 @@ int main(int argc, char** argv) {
#define SEND_SIZE (6 * 1024 * 1024) #define SEND_SIZE (6 * 1024 * 1024)
#define NUM_FRAMES (SEND_SIZE / FRAME_SIZE + 1) #define NUM_FRAMES (SEND_SIZE / FRAME_SIZE + 1)
grpc_test_init(argc, argv); grpc_test_init(argc, argv);
grpc_init();
addbuf(PFX_STR, sizeof(PFX_STR) - 1); addbuf(PFX_STR, sizeof(PFX_STR) - 1);
for (i = 0; i < NUM_FRAMES; i++) { for (i = 0; i < NUM_FRAMES; i++) {
@ -93,6 +95,7 @@ int main(int argc, char** argv) {
grpc_run_bad_client_test(verifier, nullptr, g_buffer, g_count, grpc_run_bad_client_test(verifier, nullptr, g_buffer, g_count,
GRPC_BAD_CLIENT_LARGE_REQUEST); GRPC_BAD_CLIENT_LARGE_REQUEST);
gpr_free(g_buffer); gpr_free(g_buffer);
grpc_shutdown();
return 0; return 0;
} }

@ -24,6 +24,7 @@
#include <sys/un.h> #include <sys/un.h>
#endif #endif
#include <grpc/grpc.h>
#include <grpc/support/log.h> #include <grpc/support/log.h>
#include "src/core/lib/iomgr/exec_ctx.h" #include "src/core/lib/iomgr/exec_ctx.h"
@ -90,9 +91,12 @@ static void test_grpc_parse_ipv6(const char* uri_text, const char* host,
int main(int argc, char** argv) { int main(int argc, char** argv) {
grpc_test_init(argc, argv); grpc_test_init(argc, argv);
grpc_init();
test_grpc_parse_unix("unix:/path/name", "/path/name"); test_grpc_parse_unix("unix:/path/name", "/path/name");
test_grpc_parse_ipv4("ipv4:192.0.2.1:12345", "192.0.2.1", 12345); test_grpc_parse_ipv4("ipv4:192.0.2.1:12345", "192.0.2.1", 12345);
test_grpc_parse_ipv6("ipv6:[2001:db8::1]:12345", "2001:db8::1", 12345, 0); test_grpc_parse_ipv6("ipv6:[2001:db8::1]:12345", "2001:db8::1", 12345, 0);
test_grpc_parse_ipv6("ipv6:[2001:db8::1%252]:12345", "2001:db8::1", 12345, 2); test_grpc_parse_ipv6("ipv6:[2001:db8::1%252]:12345", "2001:db8::1", 12345, 2);
grpc_shutdown();
} }

@ -147,6 +147,7 @@ int main(int argc, char** argv) {
grpc_dns_lookup_ares = my_dns_lookup_ares; grpc_dns_lookup_ares = my_dns_lookup_ares;
grpc_channel_args* result = (grpc_channel_args*)1; grpc_channel_args* result = (grpc_channel_args*)1;
{
grpc_core::ExecCtx _local_exec_ctx; grpc_core::ExecCtx _local_exec_ctx;
grpc_resolver* resolver = create_resolver("dns:test"); grpc_resolver* resolver = create_resolver("dns:test");
gpr_event ev1; gpr_event ev1;
@ -170,6 +171,7 @@ int main(int argc, char** argv) {
grpc_channel_args_destroy(result); grpc_channel_args_destroy(result);
GRPC_RESOLVER_UNREF(resolver, "test"); GRPC_RESOLVER_UNREF(resolver, "test");
GRPC_COMBINER_UNREF(g_combiner, "test"); GRPC_COMBINER_UNREF(g_combiner, "test");
}
grpc_shutdown(); grpc_shutdown();
gpr_mu_destroy(&g_mu); gpr_mu_destroy(&g_mu);

@ -20,6 +20,7 @@
#include <stdint.h> #include <stdint.h>
#include <string.h> #include <string.h>
#include <grpc/grpc.h>
#include <grpc/support/alloc.h> #include <grpc/support/alloc.h>
#include "src/core/ext/filters/client_channel/uri_parser.h" #include "src/core/ext/filters/client_channel/uri_parser.h"
@ -33,6 +34,9 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
memcpy(s, data, size); memcpy(s, data, size);
s[size] = 0; s[size] = 0;
grpc_init();
{
grpc_core::ExecCtx _local_exec_ctx; grpc_core::ExecCtx _local_exec_ctx;
grpc_uri* x; grpc_uri* x;
if ((x = grpc_uri_parse(s, 1))) { if ((x = grpc_uri_parse(s, 1))) {
@ -40,5 +44,8 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
} }
gpr_free(s); gpr_free(s);
}
grpc_shutdown();
return 0; return 0;
} }

@ -20,6 +20,7 @@
#include <string.h> #include <string.h>
#include <grpc/grpc.h>
#include <grpc/support/log.h> #include <grpc/support/log.h>
#include "src/core/lib/iomgr/exec_ctx.h" #include "src/core/lib/iomgr/exec_ctx.h"
@ -119,6 +120,7 @@ static void test_query_parts() {
int main(int argc, char** argv) { int main(int argc, char** argv) {
grpc_test_init(argc, argv); grpc_test_init(argc, argv);
grpc_init();
test_succeeds("http://www.google.com", "http", "www.google.com", "", "", ""); test_succeeds("http://www.google.com", "http", "www.google.com", "", "", "");
test_succeeds("dns:///foo", "dns", "", "/foo", "", ""); test_succeeds("dns:///foo", "dns", "", "/foo", "", "");
test_succeeds("http://www.google.com:90", "http", "www.google.com:90", "", "", test_succeeds("http://www.google.com:90", "http", "www.google.com:90", "", "",
@ -146,5 +148,6 @@ int main(int argc, char** argv) {
test_fails("http://foo?bar#lol#"); test_fails("http://foo?bar#lol#");
test_query_parts(); test_query_parts();
grpc_shutdown();
return 0; return 0;
} }

@ -298,6 +298,7 @@ static void run_test(const char* response_payload,
int main(int argc, char** argv) { int main(int argc, char** argv) {
grpc_test_init(argc, argv); grpc_test_init(argc, argv);
grpc_init();
/* status defined in hpack static table */ /* status defined in hpack static table */
run_test(HTTP2_RESP(204), sizeof(HTTP2_RESP(204)) - 1, GRPC_STATUS_CANCELLED, run_test(HTTP2_RESP(204), sizeof(HTTP2_RESP(204)) - 1, GRPC_STATUS_CANCELLED,
@ -336,5 +337,6 @@ int main(int argc, char** argv) {
run_test(HTTP1_RESP, sizeof(HTTP1_RESP) - 1, GRPC_STATUS_UNAVAILABLE, run_test(HTTP1_RESP, sizeof(HTTP1_RESP) - 1, GRPC_STATUS_UNAVAILABLE,
HTTP1_DETAIL_MSG); HTTP1_DETAIL_MSG);
grpc_shutdown();
return 0; return 0;
} }

@ -126,7 +126,6 @@ static grpc_end2end_test_config configs[] = {
int main(int argc, char** argv) { int main(int argc, char** argv) {
size_t i; size_t i;
grpc_core::ExecCtx _local_exec_ctx;
/* force tracing on, with a value to force many /* force tracing on, with a value to force many
code paths in trace.c to be taken */ code paths in trace.c to be taken */

@ -745,8 +745,8 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
input_stream inp = {data, data + size}; input_stream inp = {data, data + size};
grpc_tcp_client_connect_impl = my_tcp_client_connect; grpc_tcp_client_connect_impl = my_tcp_client_connect;
gpr_now_impl = now_impl; gpr_now_impl = now_impl;
grpc_init();
grpc_timer_manager_set_threading(false); grpc_timer_manager_set_threading(false);
grpc_init();
{ {
grpc_core::ExecCtx _local_exec_ctx; grpc_core::ExecCtx _local_exec_ctx;
grpc_executor_set_threading(false); grpc_executor_set_threading(false);

@ -43,6 +43,7 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
if (squelch) gpr_set_log_function(dont_log); if (squelch) gpr_set_log_function(dont_log);
if (leak_check) grpc_memory_counters_init(); if (leak_check) grpc_memory_counters_init();
grpc_init(); grpc_init();
{
grpc_core::ExecCtx _local_exec_ctx; grpc_core::ExecCtx _local_exec_ctx;
grpc_executor_set_threading(false); grpc_executor_set_threading(false);
@ -85,7 +86,8 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
op->reserved = nullptr; op->reserved = nullptr;
op++; op++;
op->op = GRPC_OP_RECV_INITIAL_METADATA; op->op = GRPC_OP_RECV_INITIAL_METADATA;
op->data.recv_initial_metadata.recv_initial_metadata = &initial_metadata_recv; op->data.recv_initial_metadata.recv_initial_metadata =
&initial_metadata_recv;
op->flags = 0; op->flags = 0;
op->reserved = nullptr; op->reserved = nullptr;
op++; op++;
@ -125,7 +127,7 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
} }
} }
done: done:
if (requested_calls) { if (requested_calls) {
grpc_call_cancel(call, nullptr); grpc_call_cancel(call, nullptr);
} }
@ -149,6 +151,7 @@ done:
if (response_payload_recv != nullptr) { if (response_payload_recv != nullptr) {
grpc_byte_buffer_destroy(response_payload_recv); grpc_byte_buffer_destroy(response_payload_recv);
} }
}
grpc_shutdown(); grpc_shutdown();
if (leak_check) { if (leak_check) {
counters = grpc_memory_counters_snapshot(); counters = grpc_memory_counters_snapshot();

@ -41,6 +41,7 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
if (squelch) gpr_set_log_function(dont_log); if (squelch) gpr_set_log_function(dont_log);
if (leak_check) grpc_memory_counters_init(); if (leak_check) grpc_memory_counters_init();
grpc_init(); grpc_init();
{
grpc_core::ExecCtx _local_exec_ctx; grpc_core::ExecCtx _local_exec_ctx;
grpc_executor_set_threading(false); grpc_executor_set_threading(false);
@ -96,7 +97,7 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
} }
} }
done: done:
if (call1 != nullptr) grpc_call_unref(call1); if (call1 != nullptr) grpc_call_unref(call1);
grpc_call_details_destroy(&call_details1); grpc_call_details_destroy(&call_details1);
grpc_metadata_array_destroy(&request_metadata1); grpc_metadata_array_destroy(&request_metadata1);
@ -115,6 +116,7 @@ done:
} }
grpc_server_destroy(server); grpc_server_destroy(server);
grpc_completion_queue_destroy(cq); grpc_completion_queue_destroy(cq);
}
grpc_shutdown(); grpc_shutdown();
if (leak_check) { if (leak_check) {
counters = grpc_memory_counters_snapshot(); counters = grpc_memory_counters_snapshot();

@ -139,11 +139,13 @@ static void test_format_post_request_content_type_override(void) {
int main(int argc, char** argv) { int main(int argc, char** argv) {
grpc_test_init(argc, argv); grpc_test_init(argc, argv);
grpc_init();
test_format_get_request(); test_format_get_request();
test_format_post_request(); test_format_post_request();
test_format_post_request_no_body(); test_format_post_request_no_body();
test_format_post_request_content_type_override(); test_format_post_request_content_type_override();
grpc_shutdown();
return 0; return 0;
} }

@ -141,9 +141,12 @@ static void destroy_pops(void* p, grpc_error* error) {
} }
int main(int argc, char** argv) { int main(int argc, char** argv) {
gpr_subprocess* server;
grpc_test_init(argc, argv);
grpc_init();
{
grpc_closure destroyed; grpc_closure destroyed;
grpc_core::ExecCtx _local_exec_ctx; grpc_core::ExecCtx _local_exec_ctx;
gpr_subprocess* server;
char* me = argv[0]; char* me = argv[0];
char* lslash = strrchr(me, '/'); char* lslash = strrchr(me, '/');
char* args[4]; char* args[4];
@ -181,8 +184,6 @@ int main(int argc, char** argv) {
gpr_sleep_until(gpr_time_add(gpr_now(GPR_CLOCK_REALTIME), gpr_sleep_until(gpr_time_add(gpr_now(GPR_CLOCK_REALTIME),
gpr_time_from_seconds(5, GPR_TIMESPAN))); gpr_time_from_seconds(5, GPR_TIMESPAN)));
grpc_test_init(argc, argv);
grpc_init();
grpc_httpcli_context_init(&g_context); grpc_httpcli_context_init(&g_context);
grpc_pollset* pollset = grpc_pollset* pollset =
static_cast<grpc_pollset*>(gpr_zalloc(grpc_pollset_size())); static_cast<grpc_pollset*>(gpr_zalloc(grpc_pollset_size()));
@ -196,7 +197,7 @@ int main(int argc, char** argv) {
GRPC_CLOSURE_INIT(&destroyed, destroy_pops, &g_pops, GRPC_CLOSURE_INIT(&destroyed, destroy_pops, &g_pops,
grpc_schedule_on_exec_ctx); grpc_schedule_on_exec_ctx);
grpc_pollset_shutdown(grpc_polling_entity_pollset(&g_pops), &destroyed); grpc_pollset_shutdown(grpc_polling_entity_pollset(&g_pops), &destroyed);
}
grpc_shutdown(); grpc_shutdown();
gpr_free(grpc_polling_entity_pollset(&g_pops)); gpr_free(grpc_polling_entity_pollset(&g_pops));

@ -195,11 +195,12 @@ int main(int argc, char** argv) {
test_get(port); test_get(port);
test_post(port); test_post(port);
{
grpc_httpcli_context_destroy(&g_context); grpc_httpcli_context_destroy(&g_context);
GRPC_CLOSURE_INIT(&destroyed, destroy_pops, &g_pops, GRPC_CLOSURE_INIT(&destroyed, destroy_pops, &g_pops,
grpc_schedule_on_exec_ctx); grpc_schedule_on_exec_ctx);
grpc_pollset_shutdown(grpc_polling_entity_pollset(&g_pops), &destroyed); grpc_pollset_shutdown(grpc_polling_entity_pollset(&g_pops), &destroyed);
}
grpc_shutdown(); grpc_shutdown();
gpr_free(grpc_polling_entity_pollset(&g_pops)); gpr_free(grpc_polling_entity_pollset(&g_pops));

@ -21,6 +21,7 @@
#include <stdarg.h> #include <stdarg.h>
#include <string.h> #include <string.h>
#include <grpc/grpc.h>
#include <grpc/support/alloc.h> #include <grpc/support/alloc.h>
#include <grpc/support/log.h> #include <grpc/support/log.h>
#include <grpc/support/string_util.h> #include <grpc/support/string_util.h>
@ -217,6 +218,7 @@ int main(int argc, char** argv) {
char *tmp1, *tmp2; char *tmp1, *tmp2;
grpc_test_init(argc, argv); grpc_test_init(argc, argv);
grpc_init();
for (i = 0; i < GPR_ARRAY_SIZE(split_modes); i++) { for (i = 0; i < GPR_ARRAY_SIZE(split_modes); i++) {
test_succeeds(split_modes[i], test_succeeds(split_modes[i],
@ -300,5 +302,6 @@ int main(int argc, char** argv) {
gpr_free(tmp2); gpr_free(tmp2);
} }
grpc_shutdown();
return 0; return 0;
} }

@ -59,16 +59,17 @@ static void destroy_pollset(void* p, grpc_error* error) {
int main(int argc, char** argv) { int main(int argc, char** argv) {
grpc_closure destroyed; grpc_closure destroyed;
grpc_core::ExecCtx _local_exec_ctx;
grpc_test_init(argc, argv); grpc_test_init(argc, argv);
grpc_init(); grpc_init();
{
grpc_core::ExecCtx _local_exec_ctx;
g_pollset = static_cast<grpc_pollset*>(gpr_zalloc(grpc_pollset_size())); g_pollset = static_cast<grpc_pollset*>(gpr_zalloc(grpc_pollset_size()));
grpc_pollset_init(g_pollset, &g_mu); grpc_pollset_init(g_pollset, &g_mu);
grpc_endpoint_tests(configs[0], g_pollset, g_mu); grpc_endpoint_tests(configs[0], g_pollset, g_mu);
GRPC_CLOSURE_INIT(&destroyed, destroy_pollset, g_pollset, GRPC_CLOSURE_INIT(&destroyed, destroy_pollset, g_pollset,
grpc_schedule_on_exec_ctx); grpc_schedule_on_exec_ctx);
grpc_pollset_shutdown(g_pollset, &destroyed); grpc_pollset_shutdown(g_pollset, &destroyed);
}
grpc_shutdown(); grpc_shutdown();
gpr_free(g_pollset); gpr_free(g_pollset);

@ -301,6 +301,7 @@ int main(int argc, char** argv) {
const char* poll_strategy = nullptr; const char* poll_strategy = nullptr;
grpc_test_init(argc, argv); grpc_test_init(argc, argv);
grpc_init(); grpc_init();
{
grpc_core::ExecCtx _local_exec_ctx; grpc_core::ExecCtx _local_exec_ctx;
poll_strategy = grpc_get_poll_strategy_name(); poll_strategy = grpc_get_poll_strategy_name();
@ -313,6 +314,7 @@ int main(int argc, char** argv) {
"strategy. and the current strategy is: '%s'", "strategy. and the current strategy is: '%s'",
poll_strategy); poll_strategy);
} }
}
grpc_shutdown(); grpc_shutdown();
return 0; return 0;

@ -31,6 +31,7 @@ int main(int argc, char** argv) {
grpc_test_init(argc, argv); grpc_test_init(argc, argv);
grpc_init(); grpc_init();
{
grpc_core::ExecCtx _local_exec_ctx; grpc_core::ExecCtx _local_exec_ctx;
/* set max # of file descriptors to a low value, and /* set max # of file descriptors to a low value, and
@ -49,6 +50,7 @@ int main(int argc, char** argv) {
} }
grpc_resource_quota_unref(resource_quota); grpc_resource_quota_unref(resource_quota);
}
grpc_shutdown(); grpc_shutdown();
return 0; return 0;

@ -513,9 +513,10 @@ static void destroy_pollset(void* p, grpc_error* error) {
int main(int argc, char** argv) { int main(int argc, char** argv) {
grpc_closure destroyed; grpc_closure destroyed;
grpc_core::ExecCtx _local_exec_ctx;
grpc_test_init(argc, argv); grpc_test_init(argc, argv);
grpc_init(); grpc_init();
{
grpc_core::ExecCtx _local_exec_ctx;
g_pollset = static_cast<grpc_pollset*>(gpr_zalloc(grpc_pollset_size())); g_pollset = static_cast<grpc_pollset*>(gpr_zalloc(grpc_pollset_size()));
grpc_pollset_init(g_pollset, &g_mu); grpc_pollset_init(g_pollset, &g_mu);
test_grpc_fd(); test_grpc_fd();
@ -525,7 +526,7 @@ int main(int argc, char** argv) {
grpc_pollset_shutdown(g_pollset, &destroyed); grpc_pollset_shutdown(g_pollset, &destroyed);
grpc_core::ExecCtx::Get()->Flush(); grpc_core::ExecCtx::Get()->Flush();
gpr_free(g_pollset); gpr_free(g_pollset);
}
grpc_shutdown(); grpc_shutdown();
return 0; return 0;
} }

@ -19,6 +19,7 @@
#include <stdio.h> #include <stdio.h>
#include <string.h> #include <string.h>
#include <grpc/grpc.h>
#include <grpc/slice.h> #include <grpc/slice.h>
#include <grpc/support/alloc.h> #include <grpc/support/alloc.h>
#include <grpc/support/log.h> #include <grpc/support/log.h>
@ -152,9 +153,11 @@ static void test_load_big_file(void) {
int main(int argc, char** argv) { int main(int argc, char** argv) {
grpc_test_init(argc, argv); grpc_test_init(argc, argv);
grpc_init();
test_load_empty_file(); test_load_empty_file();
test_load_failure(); test_load_failure();
test_load_small_file(); test_load_small_file();
test_load_big_file(); test_load_big_file();
grpc_shutdown();
return 0; return 0;
} }

@ -421,9 +421,10 @@ void pollset_set_test_empty_pollset() {
} }
int main(int argc, char** argv) { int main(int argc, char** argv) {
grpc_core::ExecCtx _local_exec_ctx;
grpc_test_init(argc, argv); grpc_test_init(argc, argv);
grpc_init(); grpc_init();
{
grpc_core::ExecCtx _local_exec_ctx;
const char* poll_strategy = grpc_get_poll_strategy_name(); const char* poll_strategy = grpc_get_poll_strategy_name();
if (poll_strategy != nullptr && if (poll_strategy != nullptr &&
@ -438,7 +439,7 @@ int main(int argc, char** argv) {
"strategy. and the current strategy is: '%s'", "strategy. and the current strategy is: '%s'",
poll_strategy); poll_strategy);
} }
}
grpc_shutdown(); grpc_shutdown();
return 0; return 0;
} }

@ -156,10 +156,12 @@ static void test_unix_socket_path_name_too_long(void) {
int main(int argc, char** argv) { int main(int argc, char** argv) {
grpc_test_init(argc, argv); grpc_test_init(argc, argv);
grpc_init(); grpc_init();
{
grpc_core::ExecCtx _local_exec_ctx; grpc_core::ExecCtx _local_exec_ctx;
test_unix_socket(); test_unix_socket();
test_unix_socket_path_name_too_long(); test_unix_socket_path_name_too_long();
grpc_executor_shutdown(); }
grpc_shutdown(); grpc_shutdown();
return 0; return 0;

@ -242,6 +242,7 @@ static void test_unparseable_hostports(void) {
int main(int argc, char** argv) { int main(int argc, char** argv) {
grpc_test_init(argc, argv); grpc_test_init(argc, argv);
grpc_init(); grpc_init();
{
grpc_core::ExecCtx _local_exec_ctx; grpc_core::ExecCtx _local_exec_ctx;
test_localhost(); test_localhost();
test_default_port(); test_default_port();
@ -252,6 +253,7 @@ int main(int argc, char** argv) {
test_invalid_ip_addresses(); test_invalid_ip_addresses();
test_unparseable_hostports(); test_unparseable_hostports();
grpc_executor_shutdown(); grpc_executor_shutdown();
}
grpc_shutdown(); grpc_shutdown();
return 0; return 0;

@ -188,9 +188,11 @@ static void destroy_pollset(void* p, grpc_error* error) {
int main(int argc, char** argv) { int main(int argc, char** argv) {
grpc_closure destroyed; grpc_closure destroyed;
grpc_core::ExecCtx _local_exec_ctx;
grpc_test_init(argc, argv); grpc_test_init(argc, argv);
grpc_init(); grpc_init();
{
grpc_core::ExecCtx _local_exec_ctx;
g_pollset_set = grpc_pollset_set_create(); g_pollset_set = grpc_pollset_set_create();
g_pollset = static_cast<grpc_pollset*>(gpr_zalloc(grpc_pollset_size())); g_pollset = static_cast<grpc_pollset*>(gpr_zalloc(grpc_pollset_size()));
grpc_pollset_init(g_pollset, &g_mu); grpc_pollset_init(g_pollset, &g_mu);
@ -203,6 +205,7 @@ int main(int argc, char** argv) {
GRPC_CLOSURE_INIT(&destroyed, destroy_pollset, g_pollset, GRPC_CLOSURE_INIT(&destroyed, destroy_pollset, g_pollset,
grpc_schedule_on_exec_ctx); grpc_schedule_on_exec_ctx);
grpc_pollset_shutdown(g_pollset, &destroyed); grpc_pollset_shutdown(g_pollset, &destroyed);
}
grpc_shutdown(); grpc_shutdown();
gpr_free(g_pollset); gpr_free(g_pollset);

@ -538,9 +538,10 @@ static void destroy_pollset(void* p, grpc_error* error) {
int main(int argc, char** argv) { int main(int argc, char** argv) {
grpc_closure destroyed; grpc_closure destroyed;
grpc_core::ExecCtx _local_exec_ctx;
grpc_test_init(argc, argv); grpc_test_init(argc, argv);
grpc_init(); grpc_init();
{
grpc_core::ExecCtx _local_exec_ctx;
g_pollset = (grpc_pollset*)gpr_zalloc(grpc_pollset_size()); g_pollset = (grpc_pollset*)gpr_zalloc(grpc_pollset_size());
grpc_pollset_init(g_pollset, &g_mu); grpc_pollset_init(g_pollset, &g_mu);
grpc_endpoint_tests(configs[0], g_pollset, g_mu); grpc_endpoint_tests(configs[0], g_pollset, g_mu);
@ -550,6 +551,7 @@ int main(int argc, char** argv) {
grpc_pollset_shutdown(g_pollset, &destroyed); grpc_pollset_shutdown(g_pollset, &destroyed);
grpc_core::ExecCtx::Get()->Flush(); grpc_core::ExecCtx::Get()->Flush();
}
grpc_shutdown(); grpc_shutdown();
gpr_free(g_pollset); gpr_free(g_pollset);

@ -423,7 +423,6 @@ static void destroy_pollset(void* p, grpc_error* error) {
int main(int argc, char** argv) { int main(int argc, char** argv) {
grpc_closure destroyed; grpc_closure destroyed;
grpc_core::ExecCtx _local_exec_ctx;
grpc_arg chan_args[1]; grpc_arg chan_args[1];
chan_args[0].type = GRPC_ARG_INTEGER; chan_args[0].type = GRPC_ARG_INTEGER;
chan_args[0].key = const_cast<char*>(GRPC_ARG_EXPAND_WILDCARD_ADDRS); chan_args[0].key = const_cast<char*>(GRPC_ARG_EXPAND_WILDCARD_ADDRS);
@ -436,6 +435,8 @@ int main(int argc, char** argv) {
static_cast<test_addrs*>(gpr_zalloc(sizeof(*dst_addrs))); static_cast<test_addrs*>(gpr_zalloc(sizeof(*dst_addrs)));
grpc_test_init(argc, argv); grpc_test_init(argc, argv);
grpc_init(); grpc_init();
{
grpc_core::ExecCtx _local_exec_ctx;
g_pollset = static_cast<grpc_pollset*>(gpr_zalloc(grpc_pollset_size())); g_pollset = static_cast<grpc_pollset*>(gpr_zalloc(grpc_pollset_size()));
grpc_pollset_init(g_pollset, &g_mu); grpc_pollset_init(g_pollset, &g_mu);
@ -454,7 +455,8 @@ int main(int argc, char** argv) {
if (ifa_it->ifa_addr == nullptr) { if (ifa_it->ifa_addr == nullptr) {
continue; continue;
} else if (ifa_it->ifa_addr->sa_family == AF_INET) { } else if (ifa_it->ifa_addr->sa_family == AF_INET) {
dst_addrs->addrs[dst_addrs->naddrs].addr.len = sizeof(struct sockaddr_in); dst_addrs->addrs[dst_addrs->naddrs].addr.len =
sizeof(struct sockaddr_in);
} else if (ifa_it->ifa_addr->sa_family == AF_INET6) { } else if (ifa_it->ifa_addr->sa_family == AF_INET6) {
dst_addrs->addrs[dst_addrs->naddrs].addr.len = dst_addrs->addrs[dst_addrs->naddrs].addr.len =
sizeof(struct sockaddr_in6); sizeof(struct sockaddr_in6);
@ -487,7 +489,7 @@ int main(int argc, char** argv) {
GRPC_CLOSURE_INIT(&destroyed, destroy_pollset, g_pollset, GRPC_CLOSURE_INIT(&destroyed, destroy_pollset, g_pollset,
grpc_schedule_on_exec_ctx); grpc_schedule_on_exec_ctx);
grpc_pollset_shutdown(g_pollset, &destroyed); grpc_pollset_shutdown(g_pollset, &destroyed);
}
grpc_shutdown(); grpc_shutdown();
gpr_free(dst_addrs); gpr_free(dst_addrs);
gpr_free(g_pollset); gpr_free(g_pollset);

@ -25,6 +25,7 @@
#include <string.h> #include <string.h>
#include <grpc/grpc.h>
#include <grpc/support/log.h> #include <grpc/support/log.h>
#include "src/core/lib/debug/trace.h" #include "src/core/lib/debug/trace.h"
#include "test/core/util/test_config.h" #include "test/core/util/test_config.h"
@ -151,9 +152,11 @@ void destruction_test(void) {
int main(int argc, char** argv) { int main(int argc, char** argv) {
grpc_test_init(argc, argv); grpc_test_init(argc, argv);
grpc_core::ExecCtx::GlobalInit();
gpr_set_log_verbosity(GPR_LOG_SEVERITY_DEBUG); gpr_set_log_verbosity(GPR_LOG_SEVERITY_DEBUG);
add_test(); add_test();
destruction_test(); destruction_test();
grpc_core::ExecCtx::GlobalShutdown();
return 0; return 0;
} }

@ -291,9 +291,10 @@ static void destroy_pollset(void* p, grpc_error* error) {
int main(int argc, char** argv) { int main(int argc, char** argv) {
grpc_closure destroyed; grpc_closure destroyed;
grpc_core::ExecCtx _local_exec_ctx;
grpc_test_init(argc, argv); grpc_test_init(argc, argv);
grpc_init(); grpc_init();
{
grpc_core::ExecCtx _local_exec_ctx;
g_pollset = static_cast<grpc_pollset*>(gpr_zalloc(grpc_pollset_size())); g_pollset = static_cast<grpc_pollset*>(gpr_zalloc(grpc_pollset_size()));
grpc_pollset_init(g_pollset, &g_mu); grpc_pollset_init(g_pollset, &g_mu);
@ -310,6 +311,7 @@ int main(int argc, char** argv) {
grpc_pollset_shutdown(g_pollset, &destroyed); grpc_pollset_shutdown(g_pollset, &destroyed);
grpc_core::ExecCtx::Get()->Flush(); grpc_core::ExecCtx::Get()->Flush();
gpr_free(g_pollset); gpr_free(g_pollset);
}
grpc_shutdown(); grpc_shutdown();
return 0; return 0;
} }

@ -483,6 +483,7 @@ static void test_parse_refresh_token_failure_no_refresh_token(void) {
int main(int argc, char** argv) { int main(int argc, char** argv) {
grpc_test_init(argc, argv); grpc_test_init(argc, argv);
grpc_init();
test_parse_json_key_success(); test_parse_json_key_success();
test_parse_json_key_failure_bad_json(); test_parse_json_key_failure_bad_json();
test_parse_json_key_failure_no_type(); test_parse_json_key_failure_no_type();
@ -497,5 +498,6 @@ int main(int argc, char** argv) {
test_parse_refresh_token_failure_no_client_id(); test_parse_refresh_token_failure_no_client_id();
test_parse_refresh_token_failure_no_client_secret(); test_parse_refresh_token_failure_no_client_secret();
test_parse_refresh_token_failure_no_refresh_token(); test_parse_refresh_token_failure_no_refresh_token();
grpc_shutdown();
return 0; return 0;
} }

@ -205,10 +205,11 @@ static void destroy_pollset(void* p, grpc_error* error) {
int main(int argc, char** argv) { int main(int argc, char** argv) {
grpc_closure destroyed; grpc_closure destroyed;
grpc_core::ExecCtx _local_exec_ctx;
grpc_test_init(argc, argv); grpc_test_init(argc, argv);
grpc_init(); grpc_init();
{
grpc_core::ExecCtx _local_exec_ctx;
g_pollset = (grpc_pollset*)gpr_zalloc(grpc_pollset_size()); g_pollset = (grpc_pollset*)gpr_zalloc(grpc_pollset_size());
grpc_pollset_init(g_pollset, &g_mu); grpc_pollset_init(g_pollset, &g_mu);
grpc_endpoint_tests(configs[0], g_pollset, g_mu); grpc_endpoint_tests(configs[0], g_pollset, g_mu);
@ -218,6 +219,7 @@ int main(int argc, char** argv) {
GRPC_CLOSURE_INIT(&destroyed, destroy_pollset, g_pollset, GRPC_CLOSURE_INIT(&destroyed, destroy_pollset, g_pollset,
grpc_schedule_on_exec_ctx); grpc_schedule_on_exec_ctx);
grpc_pollset_shutdown(g_pollset, &destroyed); grpc_pollset_shutdown(g_pollset, &destroyed);
}
grpc_shutdown(); grpc_shutdown();

@ -55,6 +55,7 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
if (squelch) gpr_set_log_function(dont_log); if (squelch) gpr_set_log_function(dont_log);
if (leak_check) grpc_memory_counters_init(); if (leak_check) grpc_memory_counters_init();
grpc_init(); grpc_init();
{
grpc_core::ExecCtx _local_exec_ctx; grpc_core::ExecCtx _local_exec_ctx;
grpc_resource_quota* resource_quota = grpc_resource_quota* resource_quota =
@ -73,8 +74,10 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
cert_slice = grpc_slice_from_static_string(test_server1_cert); cert_slice = grpc_slice_from_static_string(test_server1_cert);
key_slice = grpc_slice_from_static_string(test_server1_key); key_slice = grpc_slice_from_static_string(test_server1_key);
const char* ca_cert = (const char*)GRPC_SLICE_START_PTR(ca_slice); const char* ca_cert = (const char*)GRPC_SLICE_START_PTR(ca_slice);
pem_key_cert_pair.private_key = (const char*)GRPC_SLICE_START_PTR(key_slice); pem_key_cert_pair.private_key =
pem_key_cert_pair.cert_chain = (const char*)GRPC_SLICE_START_PTR(cert_slice); (const char*)GRPC_SLICE_START_PTR(key_slice);
pem_key_cert_pair.cert_chain =
(const char*)GRPC_SLICE_START_PTR(cert_slice);
grpc_server_credentials* creds = grpc_ssl_server_credentials_create( grpc_server_credentials* creds = grpc_ssl_server_credentials_create(
ca_cert, &pem_key_cert_pair, 1, 0, nullptr); ca_cert, &pem_key_cert_pair, 1, 0, nullptr);
@ -95,11 +98,12 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
grpc_core::ExecCtx::Get()->Flush(); grpc_core::ExecCtx::Get()->Flush();
// If the given string happens to be part of the correct client hello, the // If the given string happens to be part of the correct client hello, the
// server will wait for more data. Explicitly fail the server by shutting down // server will wait for more data. Explicitly fail the server by shutting
// the endpoint. // down the endpoint.
if (!state.done_callback_called) { if (!state.done_callback_called) {
grpc_endpoint_shutdown( grpc_endpoint_shutdown(
mock_endpoint, GRPC_ERROR_CREATE_FROM_STATIC_STRING("Explicit close")); mock_endpoint,
GRPC_ERROR_CREATE_FROM_STATIC_STRING("Explicit close"));
grpc_core::ExecCtx::Get()->Flush(); grpc_core::ExecCtx::Get()->Flush();
} }
@ -112,6 +116,7 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
grpc_slice_unref(key_slice); grpc_slice_unref(key_slice);
grpc_slice_unref(ca_slice); grpc_slice_unref(ca_slice);
grpc_core::ExecCtx::Get()->Flush(); grpc_core::ExecCtx::Get()->Flush();
}
grpc_shutdown(); grpc_shutdown();
if (leak_check) { if (leak_check) {

@ -20,6 +20,7 @@
#include <string.h> #include <string.h>
#include <grpc/grpc.h>
#include <grpc/slice.h> #include <grpc/slice.h>
#include <grpc/support/alloc.h> #include <grpc/support/alloc.h>
#include <grpc/support/log.h> #include <grpc/support/log.h>
@ -201,6 +202,7 @@ static void test_unpadded_decode(void) {
int main(int argc, char** argv) { int main(int argc, char** argv) {
grpc_test_init(argc, argv); grpc_test_init(argc, argv);
grpc_init();
test_simple_encode_decode_b64_no_multiline(); test_simple_encode_decode_b64_no_multiline();
test_simple_encode_decode_b64_multiline(); test_simple_encode_decode_b64_multiline();
test_simple_encode_decode_b64_urlsafe_no_multiline(); test_simple_encode_decode_b64_urlsafe_no_multiline();
@ -212,5 +214,6 @@ int main(int argc, char** argv) {
test_url_safe_unsafe_mismatch_failure(); test_url_safe_unsafe_mismatch_failure();
test_rfc4648_test_vectors(); test_rfc4648_test_vectors();
test_unpadded_decode(); test_unpadded_decode();
grpc_shutdown();
return 0; return 0;
} }

@ -18,6 +18,7 @@
#include "src/core/lib/slice/percent_encoding.h" #include "src/core/lib/slice/percent_encoding.h"
#include <grpc/grpc.h>
#include <grpc/support/alloc.h> #include <grpc/support/alloc.h>
#include <grpc/support/log.h> #include <grpc/support/log.h>
@ -118,6 +119,7 @@ static void test_nonconformant_vector(const char* encoded,
int main(int argc, char** argv) { int main(int argc, char** argv) {
grpc_test_init(argc, argv); grpc_test_init(argc, argv);
grpc_init();
TEST_VECTOR( TEST_VECTOR(
"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_.~", "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_.~",
"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_.~", "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_.~",
@ -140,5 +142,6 @@ int main(int argc, char** argv) {
grpc_url_percent_encoding_unreserved_bytes); grpc_url_percent_encoding_unreserved_bytes);
TEST_NONCONFORMANT_VECTOR("\0", "\0", TEST_NONCONFORMANT_VECTOR("\0", "\0",
grpc_url_percent_encoding_unreserved_bytes); grpc_url_percent_encoding_unreserved_bytes);
grpc_shutdown();
return 0; return 0;
} }

@ -16,6 +16,7 @@
* *
*/ */
#include <grpc/grpc.h>
#include <grpc/slice_buffer.h> #include <grpc/slice_buffer.h>
#include <grpc/support/log.h> #include <grpc/support/log.h>
#include "test/core/util/test_config.h" #include "test/core/util/test_config.h"
@ -106,9 +107,11 @@ void test_slice_buffer_move_first() {
int main(int argc, char** argv) { int main(int argc, char** argv) {
grpc_test_init(argc, argv); grpc_test_init(argc, argv);
grpc_init();
test_slice_buffer_add(); test_slice_buffer_add();
test_slice_buffer_move_first(); test_slice_buffer_move_first();
grpc_shutdown();
return 0; return 0;
} }

@ -231,8 +231,10 @@ static void test_slice_hash_table_not_eq() {
int main(int argc, char** argv) { int main(int argc, char** argv) {
grpc_test_init(argc, argv); grpc_test_init(argc, argv);
grpc_core::ExecCtx::GlobalInit();
test_slice_hash_table(); test_slice_hash_table();
test_slice_hash_table_eq(); test_slice_hash_table_eq();
test_slice_hash_table_not_eq(); test_slice_hash_table_not_eq();
grpc_core::ExecCtx::GlobalShutdown();
return 0; return 0;
} }

@ -23,6 +23,7 @@
#include <stdlib.h> #include <stdlib.h>
#include <string.h> #include <string.h>
#include <grpc/grpc.h>
#include <grpc/support/alloc.h> #include <grpc/support/alloc.h>
#include <grpc/support/log.h> #include <grpc/support/log.h>
#include <grpc/support/string_util.h> #include <grpc/support/string_util.h>
@ -130,7 +131,9 @@ static void test_strsplit(void) {
int main(int argc, char** argv) { int main(int argc, char** argv) {
grpc_test_init(argc, argv); grpc_test_init(argc, argv);
grpc_init();
test_dump_slice(); test_dump_slice();
test_strsplit(); test_strsplit();
grpc_shutdown();
return 0; return 0;
} }

@ -292,6 +292,7 @@ static void test_static_slice_copy_interning(void) {
int main(int argc, char** argv) { int main(int argc, char** argv) {
unsigned length; unsigned length;
grpc_test_init(argc, argv); grpc_test_init(argc, argv);
grpc_init();
test_slice_malloc_returns_something_sensible(); test_slice_malloc_returns_something_sensible();
test_slice_new_returns_something_sensible(); test_slice_new_returns_something_sensible();
test_slice_new_with_user_data(); test_slice_new_with_user_data();
@ -305,5 +306,6 @@ int main(int argc, char** argv) {
test_slice_interning(); test_slice_interning();
test_static_slice_interning(); test_static_slice_interning();
test_static_slice_copy_interning(); test_static_slice_copy_interning();
grpc_shutdown();
return 0; return 0;
} }

@ -265,6 +265,7 @@ static void test_byte_buffer_copy(void) {
int main(int argc, char** argv) { int main(int argc, char** argv) {
grpc_test_init(argc, argv); grpc_test_init(argc, argv);
grpc_init();
test_read_one_slice(); test_read_one_slice();
test_read_one_slice_malloc(); test_read_one_slice_malloc();
test_read_none_compressed_slice(); test_read_none_compressed_slice();
@ -274,5 +275,6 @@ int main(int argc, char** argv) {
test_byte_buffer_from_reader(); test_byte_buffer_from_reader();
test_byte_buffer_copy(); test_byte_buffer_copy();
test_readall(); test_readall();
grpc_shutdown();
return 0; return 0;
} }

@ -224,10 +224,12 @@ int run_concurrent_connectivity_test() {
gpr_atm_rel_store(&args.stop, 1); gpr_atm_rel_store(&args.stop, 1);
gpr_thd_join(server); gpr_thd_join(server);
{
grpc_core::ExecCtx _local_exec_ctx; grpc_core::ExecCtx _local_exec_ctx;
grpc_pollset_shutdown(args.pollset, grpc_pollset_shutdown(
GRPC_CLOSURE_CREATE(done_pollset_shutdown, args.pollset, args.pollset, GRPC_CLOSURE_CREATE(done_pollset_shutdown, args.pollset,
grpc_schedule_on_exec_ctx)); grpc_schedule_on_exec_ctx));
}
grpc_shutdown(); grpc_shutdown();
return 0; return 0;

@ -18,6 +18,7 @@
#include "src/core/lib/transport/byte_stream.h" #include "src/core/lib/transport/byte_stream.h"
#include <grpc/grpc.h>
#include <grpc/support/alloc.h> #include <grpc/support/alloc.h>
#include <grpc/support/log.h> #include <grpc/support/log.h>
#include <grpc/support/useful.h> #include <grpc/support/useful.h>
@ -253,11 +254,13 @@ static void test_caching_byte_stream_shared_cache(void) {
} }
int main(int argc, char** argv) { int main(int argc, char** argv) {
grpc_init();
grpc_test_init(argc, argv); grpc_test_init(argc, argv);
test_slice_buffer_stream_basic(); test_slice_buffer_stream_basic();
test_slice_buffer_stream_shutdown(); test_slice_buffer_stream_shutdown();
test_caching_byte_stream_basic(); test_caching_byte_stream_basic();
test_caching_byte_stream_reset(); test_caching_byte_stream_reset();
test_caching_byte_stream_shared_cache(); test_caching_byte_stream_shared_cache();
grpc_shutdown();
return 0; return 0;
} }

@ -20,6 +20,7 @@
#include <string.h> #include <string.h>
#include <grpc/grpc.h>
#include <grpc/support/alloc.h> #include <grpc/support/alloc.h>
#include <grpc/support/log.h> #include <grpc/support/log.h>
#include "src/core/ext/transport/chttp2/transport/bin_encoder.h" #include "src/core/ext/transport/chttp2/transport/bin_encoder.h"
@ -76,6 +77,8 @@ static grpc_slice base64_decode_with_length(const char* s,
s, grpc_chttp2_base64_decode_with_length(base64_encode(s), strlen(s))); s, grpc_chttp2_base64_decode_with_length(base64_encode(s), strlen(s)));
int main(int argc, char** argv) { int main(int argc, char** argv) {
grpc_init();
{
grpc_core::ExecCtx _local_exec_ctx; grpc_core::ExecCtx _local_exec_ctx;
/* ENCODE_AND_DECODE tests grpc_chttp2_base64_decode_with_length(), which /* ENCODE_AND_DECODE tests grpc_chttp2_base64_decode_with_length(), which
@ -128,6 +131,7 @@ int main(int argc, char** argv) {
// Test illegal charactors in grpc_chttp2_base64_decode_with_length // Test illegal charactors in grpc_chttp2_base64_decode_with_length
EXPECT_SLICE_EQ("", base64_decode_with_length("Zm:v", 3)); EXPECT_SLICE_EQ("", base64_decode_with_length("Zm:v", 3));
EXPECT_SLICE_EQ("", base64_decode_with_length("Zm=v", 3)); EXPECT_SLICE_EQ("", base64_decode_with_length("Zm=v", 3));
}
grpc_shutdown();
return all_ok ? 0 : 1; return all_ok ? 0 : 1;
} }

@ -99,6 +99,8 @@ static void expect_binary_header(const char* hdr, int binary) {
} }
int main(int argc, char** argv) { int main(int argc, char** argv) {
grpc_init();
/* Base64 test vectors from RFC 4648, with padding removed */ /* Base64 test vectors from RFC 4648, with padding removed */
/* BASE64("") = "" */ /* BASE64("") = "" */
EXPECT_SLICE_EQ("", B64("")); EXPECT_SLICE_EQ("", B64(""));
@ -169,5 +171,6 @@ int main(int argc, char** argv) {
expect_binary_header("foo-bar", 0); expect_binary_header("foo-bar", 0);
expect_binary_header("-bin", 0); expect_binary_header("-bin", 0);
grpc_shutdown();
return all_ok ? 0 : 1; return all_ok ? 0 : 1;
} }

@ -37,13 +37,14 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
if (squelch) gpr_set_log_function(dont_log); if (squelch) gpr_set_log_function(dont_log);
grpc_init(); grpc_init();
grpc_chttp2_hpack_parser parser; grpc_chttp2_hpack_parser parser;
{
grpc_core::ExecCtx _local_exec_ctx; grpc_core::ExecCtx _local_exec_ctx;
grpc_chttp2_hpack_parser_init(&parser); grpc_chttp2_hpack_parser_init(&parser);
parser.on_header = onhdr; parser.on_header = onhdr;
GRPC_ERROR_UNREF(grpc_chttp2_hpack_parser_parse( GRPC_ERROR_UNREF(grpc_chttp2_hpack_parser_parse(
&parser, grpc_slice_from_static_buffer(data, size))); &parser, grpc_slice_from_static_buffer(data, size)));
grpc_chttp2_hpack_parser_destroy(&parser); grpc_chttp2_hpack_parser_destroy(&parser);
}
grpc_shutdown(); grpc_shutdown();
return 0; return 0;
} }

@ -18,6 +18,7 @@
#include "src/core/ext/transport/chttp2/transport/varint.h" #include "src/core/ext/transport/chttp2/transport/varint.h"
#include <grpc/grpc.h>
#include <grpc/slice.h> #include <grpc/slice.h>
#include <grpc/support/log.h> #include <grpc/support/log.h>
@ -44,11 +45,13 @@ static void test_varint(uint32_t value, uint32_t prefix_bits, uint8_t prefix_or,
int main(int argc, char** argv) { int main(int argc, char** argv) {
grpc_test_init(argc, argv); grpc_test_init(argc, argv);
grpc_init();
TEST_VARINT(0, 1, 0, "\x00"); TEST_VARINT(0, 1, 0, "\x00");
TEST_VARINT(128, 1, 0, "\x7f\x01"); TEST_VARINT(128, 1, 0, "\x7f\x01");
TEST_VARINT(16384, 1, 0, "\x7f\x81\x7f"); TEST_VARINT(16384, 1, 0, "\x7f\x81\x7f");
TEST_VARINT(2097152, 1, 0, "\x7f\x81\xff\x7f"); TEST_VARINT(2097152, 1, 0, "\x7f\x81\xff\x7f");
TEST_VARINT(268435456, 1, 0, "\x7f\x81\xff\xff\x7f"); TEST_VARINT(268435456, 1, 0, "\x7f\x81\xff\xff\x7f");
TEST_VARINT(0xffffffff, 1, 0, "\x7f\x80\xff\xff\xff\x0f"); TEST_VARINT(0xffffffff, 1, 0, "\x7f\x80\xff\xff\xff\x0f");
grpc_shutdown();
return 0; return 0;
} }

@ -134,11 +134,13 @@ static void test_subscribe_with_failure_then_destroy(void) {
int main(int argc, char** argv) { int main(int argc, char** argv) {
grpc_test_init(argc, argv); grpc_test_init(argc, argv);
grpc_init();
grpc_core::testing::grpc_tracer_enable_flag(&grpc_connectivity_state_trace); grpc_core::testing::grpc_tracer_enable_flag(&grpc_connectivity_state_trace);
test_connectivity_state_name(); test_connectivity_state_name();
test_check(); test_check();
test_subscribe_then_unsubscribe(); test_subscribe_then_unsubscribe();
test_subscribe_then_destroy(); test_subscribe_then_destroy();
test_subscribe_with_failure_then_destroy(); test_subscribe_with_failure_then_destroy();
grpc_shutdown();
return 0; return 0;
} }

@ -369,6 +369,7 @@ static void test_copied_static_metadata(bool dup_key, bool dup_value) {
int main(int argc, char** argv) { int main(int argc, char** argv) {
grpc_test_init(argc, argv); grpc_test_init(argc, argv);
grpc_init();
test_no_op(); test_no_op();
for (int k = 0; k <= 1; k++) { for (int k = 0; k <= 1; k++) {
for (int v = 0; v <= 1; v++) { for (int v = 0; v <= 1; v++) {
@ -383,5 +384,6 @@ int main(int argc, char** argv) {
test_create_many_persistant_metadata(); test_create_many_persistant_metadata();
test_things_stick_around(); test_things_stick_around();
test_user_data_works(); test_user_data_works();
grpc_shutdown();
return 0; return 0;
} }

@ -20,12 +20,14 @@
#include "test/core/util/test_config.h" #include "test/core/util/test_config.h"
#include <grpc/grpc.h>
#include <grpc/support/log.h> #include <grpc/support/log.h>
static void do_nothing(void* arg, grpc_error* error) {} static void do_nothing(void* arg, grpc_error* error) {}
int main(int argc, char** argv) { int main(int argc, char** argv) {
grpc_test_init(argc, argv); grpc_test_init(argc, argv);
grpc_init();
uint8_t buffer[] = "abc123"; uint8_t buffer[] = "abc123";
grpc_stream_refcount r; grpc_stream_refcount r;
@ -39,5 +41,6 @@ int main(int argc, char** argv) {
grpc_slice_unref(slice); grpc_slice_unref(slice);
GPR_ASSERT(r.refs.count == 1); GPR_ASSERT(r.refs.count == 1);
grpc_shutdown();
return 0; return 0;
} }

@ -18,7 +18,10 @@
#include <stdbool.h> #include <stdbool.h>
#include <grpc/grpc.h>
#include <grpc/support/log.h> #include <grpc/support/log.h>
#include "src/core/lib/iomgr/exec_ctx.h"
#include "src/core/lib/iomgr/load_file.h" #include "src/core/lib/iomgr/load_file.h"
extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size); extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size);
@ -30,10 +33,17 @@ int main(int argc, char** argv) {
grpc_slice buffer; grpc_slice buffer;
squelch = false; squelch = false;
leak_check = false; leak_check = false;
/* TODO(yashkt) Calling grpc_init breaks tests. Fix the tests and replace
* grpc_core::ExecCtx::GlobalInit with grpc_init and GlobalShutdown with
* grpc_shutdown */
grpc_core::ExecCtx::GlobalInit();
GPR_ASSERT( GPR_ASSERT(
GRPC_LOG_IF_ERROR("load_file", grpc_load_file(argv[1], 0, &buffer))); GRPC_LOG_IF_ERROR("load_file", grpc_load_file(argv[1], 0, &buffer)));
LLVMFuzzerTestOneInput(GRPC_SLICE_START_PTR(buffer), LLVMFuzzerTestOneInput(GRPC_SLICE_START_PTR(buffer),
GRPC_SLICE_LENGTH(buffer)); GRPC_SLICE_LENGTH(buffer));
grpc_core::ExecCtx::GlobalShutdown();
grpc_core::ExecCtx::GlobalInit();
grpc_slice_unref(buffer); grpc_slice_unref(buffer);
grpc_core::ExecCtx::GlobalShutdown();
return 0; return 0;
} }

@ -194,11 +194,11 @@ int grpc_pick_port_using_server(void) {
grpc_httpcli_context context; grpc_httpcli_context context;
grpc_httpcli_request req; grpc_httpcli_request req;
portreq pr; portreq pr;
grpc_core::ExecCtx _local_exec_ctx;
grpc_closure* shutdown_closure; grpc_closure* shutdown_closure;
grpc_init(); grpc_init();
{
grpc_core::ExecCtx _local_exec_ctx;
memset(&pr, 0, sizeof(pr)); memset(&pr, 0, sizeof(pr));
memset(&req, 0, sizeof(req)); memset(&req, 0, sizeof(req));
grpc_pollset* pollset = (grpc_pollset*)gpr_zalloc(grpc_pollset_size()); grpc_pollset* pollset = (grpc_pollset*)gpr_zalloc(grpc_pollset_size());
@ -216,10 +216,10 @@ int grpc_pick_port_using_server(void) {
grpc_httpcli_context_init(&context); grpc_httpcli_context_init(&context);
grpc_resource_quota* resource_quota = grpc_resource_quota* resource_quota =
grpc_resource_quota_create("port_server_client/pick"); grpc_resource_quota_create("port_server_client/pick");
grpc_httpcli_get( grpc_httpcli_get(&context, &pr.pops, resource_quota, &req,
&context, &pr.pops, resource_quota, &req,
grpc_core::ExecCtx::Get()->Now() + 30 * GPR_MS_PER_SEC, grpc_core::ExecCtx::Get()->Now() + 30 * GPR_MS_PER_SEC,
GRPC_CLOSURE_CREATE(got_port_from_server, &pr, grpc_schedule_on_exec_ctx), GRPC_CLOSURE_CREATE(got_port_from_server, &pr,
grpc_schedule_on_exec_ctx),
&pr.response); &pr.response);
grpc_resource_quota_unref_internal(resource_quota); grpc_resource_quota_unref_internal(resource_quota);
grpc_core::ExecCtx::Get()->Flush(); grpc_core::ExecCtx::Get()->Flush();
@ -242,6 +242,7 @@ int grpc_pick_port_using_server(void) {
shutdown_closure); shutdown_closure);
grpc_core::ExecCtx::Get()->Flush(); grpc_core::ExecCtx::Get()->Flush();
}
grpc_shutdown(); grpc_shutdown();
return pr.port; return pr.port;

Loading…
Cancel
Save