rename all test core files to cc and a lot of C++ style conversions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 579621b..4865c35 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -920,7 +920,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_library(gpr_test_util
-  test/core/util/test_config.c
+  test/core/util/test_config.cc
 )
 
 if(WIN32 AND MSVC)
@@ -1613,26 +1613,26 @@
 if (gRPC_BUILD_TESTS)
 
 add_library(grpc_test_util
-  test/core/end2end/data/client_certs.c
-  test/core/end2end/data/server1_cert.c
-  test/core/end2end/data/server1_key.c
-  test/core/end2end/data/test_root_cert.c
-  test/core/security/oauth2_utils.c
+  test/core/end2end/data/client_certs.cc
+  test/core/end2end/data/server1_cert.cc
+  test/core/end2end/data/server1_key.cc
+  test/core/end2end/data/test_root_cert.cc
+  test/core/security/oauth2_utils.cc
   src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc
-  test/core/end2end/cq_verifier.c
-  test/core/end2end/fixtures/http_proxy_fixture.c
-  test/core/end2end/fixtures/proxy.c
-  test/core/iomgr/endpoint_tests.c
+  test/core/end2end/cq_verifier.cc
+  test/core/end2end/fixtures/http_proxy_fixture.cc
+  test/core/end2end/fixtures/proxy.cc
+  test/core/iomgr/endpoint_tests.cc
   test/core/util/debugger_macros.cc
-  test/core/util/grpc_profiler.c
-  test/core/util/memory_counters.c
-  test/core/util/mock_endpoint.c
-  test/core/util/parse_hexstring.c
-  test/core/util/passthru_endpoint.c
-  test/core/util/port.c
-  test/core/util/port_server_client.c
-  test/core/util/slice_splitter.c
-  test/core/util/trickle_endpoint.c
+  test/core/util/grpc_profiler.cc
+  test/core/util/memory_counters.cc
+  test/core/util/mock_endpoint.cc
+  test/core/util/parse_hexstring.cc
+  test/core/util/passthru_endpoint.cc
+  test/core/util/port.cc
+  test/core/util/port_server_client.cc
+  test/core/util/slice_splitter.cc
+  test/core/util/trickle_endpoint.cc
   src/core/lib/backoff/backoff.cc
   src/core/lib/channel/channel_args.cc
   src/core/lib/channel/channel_stack.cc
@@ -1884,20 +1884,20 @@
 
 add_library(grpc_test_util_unsecure
   src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc
-  test/core/end2end/cq_verifier.c
-  test/core/end2end/fixtures/http_proxy_fixture.c
-  test/core/end2end/fixtures/proxy.c
-  test/core/iomgr/endpoint_tests.c
+  test/core/end2end/cq_verifier.cc
+  test/core/end2end/fixtures/http_proxy_fixture.cc
+  test/core/end2end/fixtures/proxy.cc
+  test/core/iomgr/endpoint_tests.cc
   test/core/util/debugger_macros.cc
-  test/core/util/grpc_profiler.c
-  test/core/util/memory_counters.c
-  test/core/util/mock_endpoint.c
-  test/core/util/parse_hexstring.c
-  test/core/util/passthru_endpoint.c
-  test/core/util/port.c
-  test/core/util/port_server_client.c
-  test/core/util/slice_splitter.c
-  test/core/util/trickle_endpoint.c
+  test/core/util/grpc_profiler.cc
+  test/core/util/memory_counters.cc
+  test/core/util/mock_endpoint.cc
+  test/core/util/parse_hexstring.cc
+  test/core/util/passthru_endpoint.cc
+  test/core/util/port.cc
+  test/core/util/port_server_client.cc
+  test/core/util/slice_splitter.cc
+  test/core/util/trickle_endpoint.cc
   src/core/lib/backoff/backoff.cc
   src/core/lib/channel/channel_args.cc
   src/core/lib/channel/channel_stack.cc
@@ -2468,7 +2468,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_library(reconnect_server
-  test/core/util/reconnect_server.c
+  test/core/util/reconnect_server.cc
 )
 
 if(WIN32 AND MSVC)
@@ -2511,7 +2511,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_library(test_tcp_server
-  test/core/util/test_tcp_server.c
+  test/core/util/test_tcp_server.cc
 )
 
 if(WIN32 AND MSVC)
@@ -4809,7 +4809,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_library(bad_client_test
-  test/core/bad_client/bad_client.c
+  test/core/bad_client/bad_client.cc
 )
 
 if(WIN32 AND MSVC)
@@ -4851,7 +4851,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_library(bad_ssl_test_server
-  test/core/bad_ssl/server_common.c
+  test/core/bad_ssl/server_common.cc
 )
 
 if(WIN32 AND MSVC)
@@ -4893,67 +4893,67 @@
 if (gRPC_BUILD_TESTS)
 
 add_library(end2end_tests
-  test/core/end2end/end2end_tests.c
-  test/core/end2end/end2end_test_utils.c
-  test/core/end2end/tests/authority_not_supported.c
-  test/core/end2end/tests/bad_hostname.c
-  test/core/end2end/tests/bad_ping.c
-  test/core/end2end/tests/binary_metadata.c
-  test/core/end2end/tests/call_creds.c
-  test/core/end2end/tests/cancel_after_accept.c
-  test/core/end2end/tests/cancel_after_client_done.c
-  test/core/end2end/tests/cancel_after_invoke.c
-  test/core/end2end/tests/cancel_after_round_trip.c
-  test/core/end2end/tests/cancel_before_invoke.c
-  test/core/end2end/tests/cancel_in_a_vacuum.c
-  test/core/end2end/tests/cancel_with_status.c
-  test/core/end2end/tests/compressed_payload.c
-  test/core/end2end/tests/connectivity.c
-  test/core/end2end/tests/default_host.c
-  test/core/end2end/tests/disappearing_server.c
-  test/core/end2end/tests/empty_batch.c
-  test/core/end2end/tests/filter_call_init_fails.c
-  test/core/end2end/tests/filter_causes_close.c
-  test/core/end2end/tests/filter_latency.c
-  test/core/end2end/tests/graceful_server_shutdown.c
-  test/core/end2end/tests/high_initial_seqno.c
-  test/core/end2end/tests/hpack_size.c
-  test/core/end2end/tests/idempotent_request.c
-  test/core/end2end/tests/invoke_large_request.c
-  test/core/end2end/tests/keepalive_timeout.c
-  test/core/end2end/tests/large_metadata.c
-  test/core/end2end/tests/load_reporting_hook.c
-  test/core/end2end/tests/max_concurrent_streams.c
-  test/core/end2end/tests/max_connection_age.c
-  test/core/end2end/tests/max_connection_idle.c
-  test/core/end2end/tests/max_message_length.c
-  test/core/end2end/tests/negative_deadline.c
-  test/core/end2end/tests/network_status_change.c
-  test/core/end2end/tests/no_logging.c
-  test/core/end2end/tests/no_op.c
-  test/core/end2end/tests/payload.c
-  test/core/end2end/tests/ping.c
-  test/core/end2end/tests/ping_pong_streaming.c
-  test/core/end2end/tests/proxy_auth.c
-  test/core/end2end/tests/registered_call.c
-  test/core/end2end/tests/request_with_flags.c
-  test/core/end2end/tests/request_with_payload.c
-  test/core/end2end/tests/resource_quota_server.c
-  test/core/end2end/tests/server_finishes_request.c
-  test/core/end2end/tests/shutdown_finishes_calls.c
-  test/core/end2end/tests/shutdown_finishes_tags.c
-  test/core/end2end/tests/simple_cacheable_request.c
-  test/core/end2end/tests/simple_delayed_request.c
-  test/core/end2end/tests/simple_metadata.c
-  test/core/end2end/tests/simple_request.c
-  test/core/end2end/tests/stream_compression_compressed_payload.c
-  test/core/end2end/tests/stream_compression_payload.c
-  test/core/end2end/tests/stream_compression_ping_pong_streaming.c
-  test/core/end2end/tests/streaming_error_response.c
-  test/core/end2end/tests/trailing_metadata.c
-  test/core/end2end/tests/workaround_cronet_compression.c
-  test/core/end2end/tests/write_buffering.c
-  test/core/end2end/tests/write_buffering_at_end.c
+  test/core/end2end/end2end_tests.cc
+  test/core/end2end/end2end_test_utils.cc
+  test/core/end2end/tests/authority_not_supported.cc
+  test/core/end2end/tests/bad_hostname.cc
+  test/core/end2end/tests/bad_ping.cc
+  test/core/end2end/tests/binary_metadata.cc
+  test/core/end2end/tests/call_creds.cc
+  test/core/end2end/tests/cancel_after_accept.cc
+  test/core/end2end/tests/cancel_after_client_done.cc
+  test/core/end2end/tests/cancel_after_invoke.cc
+  test/core/end2end/tests/cancel_after_round_trip.cc
+  test/core/end2end/tests/cancel_before_invoke.cc
+  test/core/end2end/tests/cancel_in_a_vacuum.cc
+  test/core/end2end/tests/cancel_with_status.cc
+  test/core/end2end/tests/compressed_payload.cc
+  test/core/end2end/tests/connectivity.cc
+  test/core/end2end/tests/default_host.cc
+  test/core/end2end/tests/disappearing_server.cc
+  test/core/end2end/tests/empty_batch.cc
+  test/core/end2end/tests/filter_call_init_fails.cc
+  test/core/end2end/tests/filter_causes_close.cc
+  test/core/end2end/tests/filter_latency.cc
+  test/core/end2end/tests/graceful_server_shutdown.cc
+  test/core/end2end/tests/high_initial_seqno.cc
+  test/core/end2end/tests/hpack_size.cc
+  test/core/end2end/tests/idempotent_request.cc
+  test/core/end2end/tests/invoke_large_request.cc
+  test/core/end2end/tests/keepalive_timeout.cc
+  test/core/end2end/tests/large_metadata.cc
+  test/core/end2end/tests/load_reporting_hook.cc
+  test/core/end2end/tests/max_concurrent_streams.cc
+  test/core/end2end/tests/max_connection_age.cc
+  test/core/end2end/tests/max_connection_idle.cc
+  test/core/end2end/tests/max_message_length.cc
+  test/core/end2end/tests/negative_deadline.cc
+  test/core/end2end/tests/network_status_change.cc
+  test/core/end2end/tests/no_logging.cc
+  test/core/end2end/tests/no_op.cc
+  test/core/end2end/tests/payload.cc
+  test/core/end2end/tests/ping.cc
+  test/core/end2end/tests/ping_pong_streaming.cc
+  test/core/end2end/tests/proxy_auth.cc
+  test/core/end2end/tests/registered_call.cc
+  test/core/end2end/tests/request_with_flags.cc
+  test/core/end2end/tests/request_with_payload.cc
+  test/core/end2end/tests/resource_quota_server.cc
+  test/core/end2end/tests/server_finishes_request.cc
+  test/core/end2end/tests/shutdown_finishes_calls.cc
+  test/core/end2end/tests/shutdown_finishes_tags.cc
+  test/core/end2end/tests/simple_cacheable_request.cc
+  test/core/end2end/tests/simple_delayed_request.cc
+  test/core/end2end/tests/simple_metadata.cc
+  test/core/end2end/tests/simple_request.cc
+  test/core/end2end/tests/stream_compression_compressed_payload.cc
+  test/core/end2end/tests/stream_compression_payload.cc
+  test/core/end2end/tests/stream_compression_ping_pong_streaming.cc
+  test/core/end2end/tests/streaming_error_response.cc
+  test/core/end2end/tests/trailing_metadata.cc
+  test/core/end2end/tests/workaround_cronet_compression.cc
+  test/core/end2end/tests/write_buffering.cc
+  test/core/end2end/tests/write_buffering_at_end.cc
 )
 
 if(WIN32 AND MSVC)
@@ -4996,66 +4996,66 @@
 if (gRPC_BUILD_TESTS)
 
 add_library(end2end_nosec_tests
-  test/core/end2end/end2end_nosec_tests.c
-  test/core/end2end/end2end_test_utils.c
-  test/core/end2end/tests/authority_not_supported.c
-  test/core/end2end/tests/bad_hostname.c
-  test/core/end2end/tests/bad_ping.c
-  test/core/end2end/tests/binary_metadata.c
-  test/core/end2end/tests/cancel_after_accept.c
-  test/core/end2end/tests/cancel_after_client_done.c
-  test/core/end2end/tests/cancel_after_invoke.c
-  test/core/end2end/tests/cancel_after_round_trip.c
-  test/core/end2end/tests/cancel_before_invoke.c
-  test/core/end2end/tests/cancel_in_a_vacuum.c
-  test/core/end2end/tests/cancel_with_status.c
-  test/core/end2end/tests/compressed_payload.c
-  test/core/end2end/tests/connectivity.c
-  test/core/end2end/tests/default_host.c
-  test/core/end2end/tests/disappearing_server.c
-  test/core/end2end/tests/empty_batch.c
-  test/core/end2end/tests/filter_call_init_fails.c
-  test/core/end2end/tests/filter_causes_close.c
-  test/core/end2end/tests/filter_latency.c
-  test/core/end2end/tests/graceful_server_shutdown.c
-  test/core/end2end/tests/high_initial_seqno.c
-  test/core/end2end/tests/hpack_size.c
-  test/core/end2end/tests/idempotent_request.c
-  test/core/end2end/tests/invoke_large_request.c
-  test/core/end2end/tests/keepalive_timeout.c
-  test/core/end2end/tests/large_metadata.c
-  test/core/end2end/tests/load_reporting_hook.c
-  test/core/end2end/tests/max_concurrent_streams.c
-  test/core/end2end/tests/max_connection_age.c
-  test/core/end2end/tests/max_connection_idle.c
-  test/core/end2end/tests/max_message_length.c
-  test/core/end2end/tests/negative_deadline.c
-  test/core/end2end/tests/network_status_change.c
-  test/core/end2end/tests/no_logging.c
-  test/core/end2end/tests/no_op.c
-  test/core/end2end/tests/payload.c
-  test/core/end2end/tests/ping.c
-  test/core/end2end/tests/ping_pong_streaming.c
-  test/core/end2end/tests/proxy_auth.c
-  test/core/end2end/tests/registered_call.c
-  test/core/end2end/tests/request_with_flags.c
-  test/core/end2end/tests/request_with_payload.c
-  test/core/end2end/tests/resource_quota_server.c
-  test/core/end2end/tests/server_finishes_request.c
-  test/core/end2end/tests/shutdown_finishes_calls.c
-  test/core/end2end/tests/shutdown_finishes_tags.c
-  test/core/end2end/tests/simple_cacheable_request.c
-  test/core/end2end/tests/simple_delayed_request.c
-  test/core/end2end/tests/simple_metadata.c
-  test/core/end2end/tests/simple_request.c
-  test/core/end2end/tests/stream_compression_compressed_payload.c
-  test/core/end2end/tests/stream_compression_payload.c
-  test/core/end2end/tests/stream_compression_ping_pong_streaming.c
-  test/core/end2end/tests/streaming_error_response.c
-  test/core/end2end/tests/trailing_metadata.c
-  test/core/end2end/tests/workaround_cronet_compression.c
-  test/core/end2end/tests/write_buffering.c
-  test/core/end2end/tests/write_buffering_at_end.c
+  test/core/end2end/end2end_nosec_tests.cc
+  test/core/end2end/end2end_test_utils.cc
+  test/core/end2end/tests/authority_not_supported.cc
+  test/core/end2end/tests/bad_hostname.cc
+  test/core/end2end/tests/bad_ping.cc
+  test/core/end2end/tests/binary_metadata.cc
+  test/core/end2end/tests/cancel_after_accept.cc
+  test/core/end2end/tests/cancel_after_client_done.cc
+  test/core/end2end/tests/cancel_after_invoke.cc
+  test/core/end2end/tests/cancel_after_round_trip.cc
+  test/core/end2end/tests/cancel_before_invoke.cc
+  test/core/end2end/tests/cancel_in_a_vacuum.cc
+  test/core/end2end/tests/cancel_with_status.cc
+  test/core/end2end/tests/compressed_payload.cc
+  test/core/end2end/tests/connectivity.cc
+  test/core/end2end/tests/default_host.cc
+  test/core/end2end/tests/disappearing_server.cc
+  test/core/end2end/tests/empty_batch.cc
+  test/core/end2end/tests/filter_call_init_fails.cc
+  test/core/end2end/tests/filter_causes_close.cc
+  test/core/end2end/tests/filter_latency.cc
+  test/core/end2end/tests/graceful_server_shutdown.cc
+  test/core/end2end/tests/high_initial_seqno.cc
+  test/core/end2end/tests/hpack_size.cc
+  test/core/end2end/tests/idempotent_request.cc
+  test/core/end2end/tests/invoke_large_request.cc
+  test/core/end2end/tests/keepalive_timeout.cc
+  test/core/end2end/tests/large_metadata.cc
+  test/core/end2end/tests/load_reporting_hook.cc
+  test/core/end2end/tests/max_concurrent_streams.cc
+  test/core/end2end/tests/max_connection_age.cc
+  test/core/end2end/tests/max_connection_idle.cc
+  test/core/end2end/tests/max_message_length.cc
+  test/core/end2end/tests/negative_deadline.cc
+  test/core/end2end/tests/network_status_change.cc
+  test/core/end2end/tests/no_logging.cc
+  test/core/end2end/tests/no_op.cc
+  test/core/end2end/tests/payload.cc
+  test/core/end2end/tests/ping.cc
+  test/core/end2end/tests/ping_pong_streaming.cc
+  test/core/end2end/tests/proxy_auth.cc
+  test/core/end2end/tests/registered_call.cc
+  test/core/end2end/tests/request_with_flags.cc
+  test/core/end2end/tests/request_with_payload.cc
+  test/core/end2end/tests/resource_quota_server.cc
+  test/core/end2end/tests/server_finishes_request.cc
+  test/core/end2end/tests/shutdown_finishes_calls.cc
+  test/core/end2end/tests/shutdown_finishes_tags.cc
+  test/core/end2end/tests/simple_cacheable_request.cc
+  test/core/end2end/tests/simple_delayed_request.cc
+  test/core/end2end/tests/simple_metadata.cc
+  test/core/end2end/tests/simple_request.cc
+  test/core/end2end/tests/stream_compression_compressed_payload.cc
+  test/core/end2end/tests/stream_compression_payload.cc
+  test/core/end2end/tests/stream_compression_ping_pong_streaming.cc
+  test/core/end2end/tests/streaming_error_response.cc
+  test/core/end2end/tests/trailing_metadata.cc
+  test/core/end2end/tests/workaround_cronet_compression.cc
+  test/core/end2end/tests/write_buffering.cc
+  test/core/end2end/tests/write_buffering_at_end.cc
 )
 
 if(WIN32 AND MSVC)
@@ -5098,7 +5098,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(alarm_test
-  test/core/surface/alarm_test.c
+  test/core/surface/alarm_test.cc
 )
 
 
@@ -5128,7 +5128,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(algorithm_test
-  test/core/compression/algorithm_test.c
+  test/core/compression/algorithm_test.cc
 )
 
 
@@ -5158,7 +5158,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(alloc_test
-  test/core/support/alloc_test.c
+  test/core/support/alloc_test.cc
 )
 
 
@@ -5186,7 +5186,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(alpn_test
-  test/core/transport/chttp2/alpn_test.c
+  test/core/transport/chttp2/alpn_test.cc
 )
 
 
@@ -5216,7 +5216,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(arena_test
-  test/core/support/arena_test.c
+  test/core/support/arena_test.cc
 )
 
 
@@ -5244,7 +5244,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(backoff_test
-  test/core/backoff/backoff_test.c
+  test/core/backoff/backoff_test.cc
 )
 
 
@@ -5274,7 +5274,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(bad_server_response_test
-  test/core/end2end/bad_server_response_test.c
+  test/core/end2end/bad_server_response_test.cc
 )
 
 
@@ -5305,7 +5305,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(bin_decoder_test
-  test/core/transport/chttp2/bin_decoder_test.c
+  test/core/transport/chttp2/bin_decoder_test.cc
 )
 
 
@@ -5333,7 +5333,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(bin_encoder_test
-  test/core/transport/chttp2/bin_encoder_test.c
+  test/core/transport/chttp2/bin_encoder_test.cc
 )
 
 
@@ -5361,7 +5361,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(byte_stream_test
-  test/core/transport/byte_stream_test.c
+  test/core/transport/byte_stream_test.cc
 )
 
 
@@ -5391,7 +5391,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(census_context_test
-  test/core/census/context_test.c
+  test/core/census/context_test.cc
 )
 
 
@@ -5421,7 +5421,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(census_intrusive_hash_map_test
-  test/core/census/intrusive_hash_map_test.c
+  test/core/census/intrusive_hash_map_test.cc
 )
 
 
@@ -5451,7 +5451,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(census_resource_test
-  test/core/census/resource_test.c
+  test/core/census/resource_test.cc
 )
 
 
@@ -5481,7 +5481,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(census_trace_context_test
-  test/core/census/trace_context_test.c
+  test/core/census/trace_context_test.cc
 )
 
 
@@ -5511,7 +5511,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(channel_create_test
-  test/core/surface/channel_create_test.c
+  test/core/surface/channel_create_test.cc
 )
 
 
@@ -5540,7 +5540,7 @@
 endif (gRPC_BUILD_TESTS)
 
 add_executable(check_epollexclusive
-  test/build/check_epollexclusive.c
+  test/build/check_epollexclusive.cc
 )
 
 
@@ -5576,7 +5576,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(chttp2_hpack_encoder_test
-  test/core/transport/chttp2/hpack_encoder_test.c
+  test/core/transport/chttp2/hpack_encoder_test.cc
 )
 
 
@@ -5606,7 +5606,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(chttp2_stream_map_test
-  test/core/transport/chttp2/stream_map_test.c
+  test/core/transport/chttp2/stream_map_test.cc
 )
 
 
@@ -5636,7 +5636,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(chttp2_varint_test
-  test/core/transport/chttp2/varint_test.c
+  test/core/transport/chttp2/varint_test.cc
 )
 
 
@@ -5666,7 +5666,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(combiner_test
-  test/core/iomgr/combiner_test.c
+  test/core/iomgr/combiner_test.cc
 )
 
 
@@ -5696,7 +5696,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(compression_test
-  test/core/compression/compression_test.c
+  test/core/compression/compression_test.cc
 )
 
 
@@ -5726,7 +5726,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(concurrent_connectivity_test
-  test/core/surface/concurrent_connectivity_test.c
+  test/core/surface/concurrent_connectivity_test.cc
 )
 
 
@@ -5756,7 +5756,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(connection_refused_test
-  test/core/end2end/connection_refused_test.c
+  test/core/end2end/connection_refused_test.cc
 )
 
 
@@ -5786,7 +5786,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(dns_resolver_connectivity_test
-  test/core/client_channel/resolvers/dns_resolver_connectivity_test.c
+  test/core/client_channel/resolvers/dns_resolver_connectivity_test.cc
 )
 
 
@@ -5816,7 +5816,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(dns_resolver_test
-  test/core/client_channel/resolvers/dns_resolver_test.c
+  test/core/client_channel/resolvers/dns_resolver_test.cc
 )
 
 
@@ -5847,7 +5847,7 @@
 if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
 
 add_executable(dualstack_socket_test
-  test/core/end2end/dualstack_socket_test.c
+  test/core/end2end/dualstack_socket_test.cc
 )
 
 
@@ -5878,7 +5878,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(endpoint_pair_test
-  test/core/iomgr/endpoint_pair_test.c
+  test/core/iomgr/endpoint_pair_test.cc
 )
 
 
@@ -5908,7 +5908,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(error_test
-  test/core/iomgr/error_test.c
+  test/core/iomgr/error_test.cc
 )
 
 
@@ -5939,7 +5939,7 @@
 if(_gRPC_PLATFORM_LINUX)
 
 add_executable(ev_epollsig_linux_test
-  test/core/iomgr/ev_epollsig_linux_test.c
+  test/core/iomgr/ev_epollsig_linux_test.cc
 )
 
 
@@ -5970,7 +5970,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(fake_resolver_test
-  test/core/client_channel/resolvers/fake_resolver_test.c
+  test/core/client_channel/resolvers/fake_resolver_test.cc
 )
 
 
@@ -6001,8 +6001,8 @@
 if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
 
 add_executable(fake_transport_security_test
-  test/core/tsi/fake_transport_security_test.c
-  test/core/tsi/transport_security_test_lib.c
+  test/core/tsi/fake_transport_security_test.cc
+  test/core/tsi/transport_security_test_lib.cc
 )
 
 
@@ -6033,7 +6033,7 @@
 if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
 
 add_executable(fd_conservation_posix_test
-  test/core/iomgr/fd_conservation_posix_test.c
+  test/core/iomgr/fd_conservation_posix_test.cc
 )
 
 
@@ -6065,7 +6065,7 @@
 if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
 
 add_executable(fd_posix_test
-  test/core/iomgr/fd_posix_test.c
+  test/core/iomgr/fd_posix_test.cc
 )
 
 
@@ -6096,7 +6096,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(fling_client
-  test/core/fling/client.c
+  test/core/fling/client.cc
 )
 
 
@@ -6126,7 +6126,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(fling_server
-  test/core/fling/server.c
+  test/core/fling/server.cc
 )
 
 
@@ -6157,7 +6157,7 @@
 if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
 
 add_executable(fling_stream_test
-  test/core/fling/fling_stream_test.c
+  test/core/fling/fling_stream_test.cc
 )
 
 
@@ -6189,7 +6189,7 @@
 if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
 
 add_executable(fling_test
-  test/core/fling/fling_test.c
+  test/core/fling/fling_test.cc
 )
 
 
@@ -6322,7 +6322,7 @@
 if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
 
 add_executable(goaway_server_test
-  test/core/end2end/goaway_server_test.c
+  test/core/end2end/goaway_server_test.cc
 )
 
 
@@ -6353,7 +6353,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(gpr_avl_test
-  test/core/support/avl_test.c
+  test/core/support/avl_test.cc
 )
 
 
@@ -6381,7 +6381,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(gpr_cmdline_test
-  test/core/support/cmdline_test.c
+  test/core/support/cmdline_test.cc
 )
 
 
@@ -6409,7 +6409,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(gpr_cpu_test
-  test/core/support/cpu_test.c
+  test/core/support/cpu_test.cc
 )
 
 
@@ -6437,7 +6437,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(gpr_env_test
-  test/core/support/env_test.c
+  test/core/support/env_test.cc
 )
 
 
@@ -6465,7 +6465,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(gpr_histogram_test
-  test/core/support/histogram_test.c
+  test/core/support/histogram_test.cc
 )
 
 
@@ -6493,7 +6493,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(gpr_host_port_test
-  test/core/support/host_port_test.c
+  test/core/support/host_port_test.cc
 )
 
 
@@ -6521,7 +6521,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(gpr_log_test
-  test/core/support/log_test.c
+  test/core/support/log_test.cc
 )
 
 
@@ -6549,7 +6549,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(gpr_mpscq_test
-  test/core/support/mpscq_test.c
+  test/core/support/mpscq_test.cc
 )
 
 
@@ -6577,7 +6577,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(gpr_spinlock_test
-  test/core/support/spinlock_test.c
+  test/core/support/spinlock_test.cc
 )
 
 
@@ -6605,7 +6605,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(gpr_stack_lockfree_test
-  test/core/support/stack_lockfree_test.c
+  test/core/support/stack_lockfree_test.cc
 )
 
 
@@ -6633,7 +6633,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(gpr_string_test
-  test/core/support/string_test.c
+  test/core/support/string_test.cc
 )
 
 
@@ -6661,7 +6661,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(gpr_sync_test
-  test/core/support/sync_test.c
+  test/core/support/sync_test.cc
 )
 
 
@@ -6689,7 +6689,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(gpr_thd_test
-  test/core/support/thd_test.c
+  test/core/support/thd_test.cc
 )
 
 
@@ -6717,7 +6717,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(gpr_time_test
-  test/core/support/time_test.c
+  test/core/support/time_test.cc
 )
 
 
@@ -6745,7 +6745,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(gpr_tls_test
-  test/core/support/tls_test.c
+  test/core/support/tls_test.cc
 )
 
 
@@ -6773,7 +6773,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(gpr_useful_test
-  test/core/support/useful_test.c
+  test/core/support/useful_test.cc
 )
 
 
@@ -6801,7 +6801,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(grpc_auth_context_test
-  test/core/security/auth_context_test.c
+  test/core/security/auth_context_test.cc
 )
 
 
@@ -6831,7 +6831,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(grpc_b64_test
-  test/core/slice/b64_test.c
+  test/core/slice/b64_test.cc
 )
 
 
@@ -6861,7 +6861,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(grpc_byte_buffer_reader_test
-  test/core/surface/byte_buffer_reader_test.c
+  test/core/surface/byte_buffer_reader_test.cc
 )
 
 
@@ -6891,7 +6891,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(grpc_channel_args_test
-  test/core/channel/channel_args_test.c
+  test/core/channel/channel_args_test.cc
 )
 
 
@@ -6921,7 +6921,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(grpc_channel_stack_builder_test
-  test/core/channel/channel_stack_builder_test.c
+  test/core/channel/channel_stack_builder_test.cc
 )
 
 
@@ -6951,7 +6951,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(grpc_channel_stack_test
-  test/core/channel/channel_stack_test.c
+  test/core/channel/channel_stack_test.cc
 )
 
 
@@ -6981,7 +6981,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(grpc_completion_queue_test
-  test/core/surface/completion_queue_test.c
+  test/core/surface/completion_queue_test.cc
 )
 
 
@@ -7011,7 +7011,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(grpc_completion_queue_threading_test
-  test/core/surface/completion_queue_threading_test.c
+  test/core/surface/completion_queue_threading_test.cc
 )
 
 
@@ -7040,7 +7040,7 @@
 endif (gRPC_BUILD_TESTS)
 
 add_executable(grpc_create_jwt
-  test/core/security/create_jwt.c
+  test/core/security/create_jwt.cc
 )
 
 
@@ -7077,7 +7077,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(grpc_credentials_test
-  test/core/security/credentials_test.c
+  test/core/security/credentials_test.cc
 )
 
 
@@ -7107,7 +7107,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(grpc_fetch_oauth2
-  test/core/security/fetch_oauth2.c
+  test/core/security/fetch_oauth2.cc
 )
 
 
@@ -7137,7 +7137,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(grpc_invalid_channel_args_test
-  test/core/surface/invalid_channel_args_test.c
+  test/core/surface/invalid_channel_args_test.cc
 )
 
 
@@ -7168,7 +7168,7 @@
 if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
 
 add_executable(grpc_json_token_test
-  test/core/security/json_token_test.c
+  test/core/security/json_token_test.cc
 )
 
 
@@ -7199,7 +7199,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(grpc_jwt_verifier_test
-  test/core/security/jwt_verifier_test.c
+  test/core/security/jwt_verifier_test.cc
 )
 
 
@@ -7228,7 +7228,7 @@
 endif (gRPC_BUILD_TESTS)
 
 add_executable(grpc_print_google_default_creds_token
-  test/core/security/print_google_default_creds_token.c
+  test/core/security/print_google_default_creds_token.cc
 )
 
 
@@ -7264,7 +7264,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(grpc_security_connector_test
-  test/core/security/security_connector_test.c
+  test/core/security/security_connector_test.cc
 )
 
 
@@ -7293,7 +7293,7 @@
 endif (gRPC_BUILD_TESTS)
 
 add_executable(grpc_verify_jwt
-  test/core/security/verify_jwt.c
+  test/core/security/verify_jwt.cc
 )
 
 
@@ -7330,7 +7330,7 @@
 if(_gRPC_PLATFORM_LINUX)
 
 add_executable(handshake_client
-  test/core/handshake/client_ssl.c
+  test/core/handshake/client_ssl.cc
 )
 
 
@@ -7363,7 +7363,7 @@
 if(_gRPC_PLATFORM_LINUX)
 
 add_executable(handshake_server
-  test/core/handshake/server_ssl.c
+  test/core/handshake/server_ssl.cc
 )
 
 
@@ -7395,7 +7395,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(hpack_parser_test
-  test/core/transport/chttp2/hpack_parser_test.c
+  test/core/transport/chttp2/hpack_parser_test.cc
 )
 
 
@@ -7425,7 +7425,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(hpack_table_test
-  test/core/transport/chttp2/hpack_table_test.c
+  test/core/transport/chttp2/hpack_table_test.cc
 )
 
 
@@ -7455,7 +7455,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(http_parser_test
-  test/core/http/parser_test.c
+  test/core/http/parser_test.cc
 )
 
 
@@ -7485,7 +7485,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(httpcli_format_request_test
-  test/core/http/format_request_test.c
+  test/core/http/format_request_test.cc
 )
 
 
@@ -7516,7 +7516,7 @@
 if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
 
 add_executable(httpcli_test
-  test/core/http/httpcli_test.c
+  test/core/http/httpcli_test.cc
 )
 
 
@@ -7548,7 +7548,7 @@
 if(_gRPC_PLATFORM_LINUX)
 
 add_executable(httpscli_test
-  test/core/http/httpscli_test.c
+  test/core/http/httpscli_test.cc
 )
 
 
@@ -7579,7 +7579,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(init_test
-  test/core/surface/init_test.c
+  test/core/surface/init_test.cc
 )
 
 
@@ -7609,7 +7609,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(invalid_call_argument_test
-  test/core/end2end/invalid_call_argument_test.c
+  test/core/end2end/invalid_call_argument_test.cc
 )
 
 
@@ -7639,7 +7639,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(json_rewrite
-  test/core/json/json_rewrite.c
+  test/core/json/json_rewrite.cc
 )
 
 
@@ -7667,7 +7667,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(json_rewrite_test
-  test/core/json/json_rewrite_test.c
+  test/core/json/json_rewrite_test.cc
 )
 
 
@@ -7697,7 +7697,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(json_stream_error_test
-  test/core/json/json_stream_error_test.c
+  test/core/json/json_stream_error_test.cc
 )
 
 
@@ -7727,7 +7727,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(json_test
-  test/core/json/json_test.c
+  test/core/json/json_test.cc
 )
 
 
@@ -7757,7 +7757,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(lame_client_test
-  test/core/surface/lame_client_test.c
+  test/core/surface/lame_client_test.cc
 )
 
 
@@ -7787,7 +7787,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(lb_policies_test
-  test/core/client_channel/lb_policies_test.c
+  test/core/client_channel/lb_policies_test.cc
 )
 
 
@@ -7817,7 +7817,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(load_file_test
-  test/core/iomgr/load_file_test.c
+  test/core/iomgr/load_file_test.cc
 )
 
 
@@ -7847,7 +7847,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(memory_profile_client
-  test/core/memory_usage/client.c
+  test/core/memory_usage/client.cc
 )
 
 
@@ -7877,7 +7877,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(memory_profile_server
-  test/core/memory_usage/server.c
+  test/core/memory_usage/server.cc
 )
 
 
@@ -7908,7 +7908,7 @@
 if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
 
 add_executable(memory_profile_test
-  test/core/memory_usage/memory_usage_test.c
+  test/core/memory_usage/memory_usage_test.cc
 )
 
 
@@ -7939,7 +7939,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(message_compress_test
-  test/core/compression/message_compress_test.c
+  test/core/compression/message_compress_test.cc
 )
 
 
@@ -7969,7 +7969,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(minimal_stack_is_minimal_test
-  test/core/channel/minimal_stack_is_minimal_test.c
+  test/core/channel/minimal_stack_is_minimal_test.cc
 )
 
 
@@ -7999,7 +7999,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(mlog_test
-  test/core/census/mlog_test.c
+  test/core/census/mlog_test.cc
 )
 
 
@@ -8029,7 +8029,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(multiple_server_queues_test
-  test/core/end2end/multiple_server_queues_test.c
+  test/core/end2end/multiple_server_queues_test.cc
 )
 
 
@@ -8059,7 +8059,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(murmur_hash_test
-  test/core/support/murmur_hash_test.c
+  test/core/support/murmur_hash_test.cc
 )
 
 
@@ -8087,7 +8087,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(no_server_test
-  test/core/end2end/no_server_test.c
+  test/core/end2end/no_server_test.cc
 )
 
 
@@ -8117,7 +8117,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(num_external_connectivity_watchers_test
-  test/core/surface/num_external_connectivity_watchers_test.c
+  test/core/surface/num_external_connectivity_watchers_test.cc
 )
 
 
@@ -8147,7 +8147,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(parse_address_test
-  test/core/client_channel/parse_address_test.c
+  test/core/client_channel/parse_address_test.cc
 )
 
 
@@ -8177,7 +8177,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(percent_encoding_test
-  test/core/slice/percent_encoding_test.c
+  test/core/slice/percent_encoding_test.cc
 )
 
 
@@ -8208,7 +8208,7 @@
 if(_gRPC_PLATFORM_LINUX)
 
 add_executable(pollset_set_test
-  test/core/iomgr/pollset_set_test.c
+  test/core/iomgr/pollset_set_test.cc
 )
 
 
@@ -8240,7 +8240,7 @@
 if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
 
 add_executable(resolve_address_posix_test
-  test/core/iomgr/resolve_address_posix_test.c
+  test/core/iomgr/resolve_address_posix_test.cc
 )
 
 
@@ -8271,7 +8271,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(resolve_address_test
-  test/core/iomgr/resolve_address_test.c
+  test/core/iomgr/resolve_address_test.cc
 )
 
 
@@ -8301,7 +8301,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(resource_quota_test
-  test/core/iomgr/resource_quota_test.c
+  test/core/iomgr/resource_quota_test.cc
 )
 
 
@@ -8331,7 +8331,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(secure_channel_create_test
-  test/core/surface/secure_channel_create_test.c
+  test/core/surface/secure_channel_create_test.cc
 )
 
 
@@ -8361,7 +8361,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(secure_endpoint_test
-  test/core/security/secure_endpoint_test.c
+  test/core/security/secure_endpoint_test.cc
 )
 
 
@@ -8391,7 +8391,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(sequential_connectivity_test
-  test/core/surface/sequential_connectivity_test.c
+  test/core/surface/sequential_connectivity_test.cc
 )
 
 
@@ -8421,7 +8421,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(server_chttp2_test
-  test/core/surface/server_chttp2_test.c
+  test/core/surface/server_chttp2_test.cc
 )
 
 
@@ -8451,7 +8451,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(server_test
-  test/core/surface/server_test.c
+  test/core/surface/server_test.cc
 )
 
 
@@ -8481,7 +8481,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(slice_buffer_test
-  test/core/slice/slice_buffer_test.c
+  test/core/slice/slice_buffer_test.cc
 )
 
 
@@ -8511,7 +8511,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(slice_hash_table_test
-  test/core/slice/slice_hash_table_test.c
+  test/core/slice/slice_hash_table_test.cc
 )
 
 
@@ -8541,7 +8541,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(slice_string_helpers_test
-  test/core/slice/slice_string_helpers_test.c
+  test/core/slice/slice_string_helpers_test.cc
 )
 
 
@@ -8571,7 +8571,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(slice_test
-  test/core/slice/slice_test.c
+  test/core/slice/slice_test.cc
 )
 
 
@@ -8601,7 +8601,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(sockaddr_resolver_test
-  test/core/client_channel/resolvers/sockaddr_resolver_test.c
+  test/core/client_channel/resolvers/sockaddr_resolver_test.cc
 )
 
 
@@ -8631,7 +8631,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(sockaddr_utils_test
-  test/core/iomgr/sockaddr_utils_test.c
+  test/core/iomgr/sockaddr_utils_test.cc
 )
 
 
@@ -8662,7 +8662,7 @@
 if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
 
 add_executable(socket_utils_test
-  test/core/iomgr/socket_utils_test.c
+  test/core/iomgr/socket_utils_test.cc
 )
 
 
@@ -8694,8 +8694,8 @@
 if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
 
 add_executable(ssl_transport_security_test
-  test/core/tsi/ssl_transport_security_test.c
-  test/core/tsi/transport_security_test_lib.c
+  test/core/tsi/ssl_transport_security_test.cc
+  test/core/tsi/transport_security_test_lib.cc
 )
 
 
@@ -8725,7 +8725,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(status_conversion_test
-  test/core/transport/status_conversion_test.c
+  test/core/transport/status_conversion_test.cc
 )
 
 
@@ -8755,7 +8755,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(stream_compression_test
-  test/core/compression/stream_compression_test.c
+  test/core/compression/stream_compression_test.cc
 )
 
 
@@ -8785,7 +8785,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(stream_owned_slice_test
-  test/core/transport/stream_owned_slice_test.c
+  test/core/transport/stream_owned_slice_test.cc
 )
 
 
@@ -8816,7 +8816,7 @@
 if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
 
 add_executable(tcp_client_posix_test
-  test/core/iomgr/tcp_client_posix_test.c
+  test/core/iomgr/tcp_client_posix_test.cc
 )
 
 
@@ -8847,7 +8847,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(tcp_client_uv_test
-  test/core/iomgr/tcp_client_uv_test.c
+  test/core/iomgr/tcp_client_uv_test.cc
 )
 
 
@@ -8878,7 +8878,7 @@
 if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
 
 add_executable(tcp_posix_test
-  test/core/iomgr/tcp_posix_test.c
+  test/core/iomgr/tcp_posix_test.cc
 )
 
 
@@ -8910,7 +8910,7 @@
 if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
 
 add_executable(tcp_server_posix_test
-  test/core/iomgr/tcp_server_posix_test.c
+  test/core/iomgr/tcp_server_posix_test.cc
 )
 
 
@@ -8941,7 +8941,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(tcp_server_uv_test
-  test/core/iomgr/tcp_server_uv_test.c
+  test/core/iomgr/tcp_server_uv_test.cc
 )
 
 
@@ -8971,7 +8971,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(time_averaged_stats_test
-  test/core/iomgr/time_averaged_stats_test.c
+  test/core/iomgr/time_averaged_stats_test.cc
 )
 
 
@@ -9001,7 +9001,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(timeout_encoding_test
-  test/core/transport/timeout_encoding_test.c
+  test/core/transport/timeout_encoding_test.cc
 )
 
 
@@ -9031,7 +9031,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(timer_heap_test
-  test/core/iomgr/timer_heap_test.c
+  test/core/iomgr/timer_heap_test.cc
 )
 
 
@@ -9061,7 +9061,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(timer_list_test
-  test/core/iomgr/timer_list_test.c
+  test/core/iomgr/timer_list_test.cc
 )
 
 
@@ -9091,7 +9091,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(transport_connectivity_state_test
-  test/core/transport/connectivity_state_test.c
+  test/core/transport/connectivity_state_test.cc
 )
 
 
@@ -9121,7 +9121,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(transport_metadata_test
-  test/core/transport/metadata_test.c
+  test/core/transport/metadata_test.cc
 )
 
 
@@ -9152,7 +9152,7 @@
 if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
 
 add_executable(transport_security_test
-  test/core/tsi/transport_security_test.c
+  test/core/tsi/transport_security_test.cc
 )
 
 
@@ -9184,7 +9184,7 @@
 if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
 
 add_executable(udp_server_test
-  test/core/iomgr/udp_server_test.c
+  test/core/iomgr/udp_server_test.cc
 )
 
 
@@ -9215,7 +9215,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(uri_parser_test
-  test/core/client_channel/uri_parser_test.c
+  test/core/client_channel/uri_parser_test.cc
 )
 
 
@@ -9246,7 +9246,7 @@
 if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
 
 add_executable(wakeup_fd_cv_test
-  test/core/iomgr/wakeup_fd_cv_test.c
+  test/core/iomgr/wakeup_fd_cv_test.cc
 )
 
 
@@ -13138,7 +13138,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(badreq_bad_client_test
-  test/core/bad_client/tests/badreq.c
+  test/core/bad_client/tests/badreq.cc
 )
 
 
@@ -13170,7 +13170,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(connection_prefix_bad_client_test
-  test/core/bad_client/tests/connection_prefix.c
+  test/core/bad_client/tests/connection_prefix.cc
 )
 
 
@@ -13202,7 +13202,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(head_of_line_blocking_bad_client_test
-  test/core/bad_client/tests/head_of_line_blocking.c
+  test/core/bad_client/tests/head_of_line_blocking.cc
 )
 
 
@@ -13234,7 +13234,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(headers_bad_client_test
-  test/core/bad_client/tests/headers.c
+  test/core/bad_client/tests/headers.cc
 )
 
 
@@ -13266,7 +13266,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(initial_settings_frame_bad_client_test
-  test/core/bad_client/tests/initial_settings_frame.c
+  test/core/bad_client/tests/initial_settings_frame.cc
 )
 
 
@@ -13298,7 +13298,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(server_registered_method_bad_client_test
-  test/core/bad_client/tests/server_registered_method.c
+  test/core/bad_client/tests/server_registered_method.cc
 )
 
 
@@ -13330,7 +13330,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(simple_request_bad_client_test
-  test/core/bad_client/tests/simple_request.c
+  test/core/bad_client/tests/simple_request.cc
 )
 
 
@@ -13362,7 +13362,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(unknown_frame_bad_client_test
-  test/core/bad_client/tests/unknown_frame.c
+  test/core/bad_client/tests/unknown_frame.cc
 )
 
 
@@ -13394,7 +13394,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(window_overflow_bad_client_test
-  test/core/bad_client/tests/window_overflow.c
+  test/core/bad_client/tests/window_overflow.cc
 )
 
 
@@ -13427,7 +13427,7 @@
 if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
 
 add_executable(bad_ssl_cert_server
-  test/core/bad_ssl/servers/cert.c
+  test/core/bad_ssl/servers/cert.cc
 )
 
 
@@ -13460,7 +13460,7 @@
 if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
 
 add_executable(bad_ssl_cert_test
-  test/core/bad_ssl/bad_ssl_test.c
+  test/core/bad_ssl/bad_ssl_test.cc
 )
 
 
@@ -13491,7 +13491,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(h2_census_test
-  test/core/end2end/fixtures/h2_census.c
+  test/core/end2end/fixtures/h2_census.cc
 )
 
 
@@ -13522,7 +13522,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(h2_compress_test
-  test/core/end2end/fixtures/h2_compress.c
+  test/core/end2end/fixtures/h2_compress.cc
 )
 
 
@@ -13553,7 +13553,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(h2_fakesec_test
-  test/core/end2end/fixtures/h2_fakesec.c
+  test/core/end2end/fixtures/h2_fakesec.cc
 )
 
 
@@ -13585,7 +13585,7 @@
 if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
 
 add_executable(h2_fd_test
-  test/core/end2end/fixtures/h2_fd.c
+  test/core/end2end/fixtures/h2_fd.cc
 )
 
 
@@ -13617,7 +13617,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(h2_full_test
-  test/core/end2end/fixtures/h2_full.c
+  test/core/end2end/fixtures/h2_full.cc
 )
 
 
@@ -13649,7 +13649,7 @@
 if(_gRPC_PLATFORM_LINUX)
 
 add_executable(h2_full+pipe_test
-  test/core/end2end/fixtures/h2_full+pipe.c
+  test/core/end2end/fixtures/h2_full+pipe.cc
 )
 
 
@@ -13681,7 +13681,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(h2_full+trace_test
-  test/core/end2end/fixtures/h2_full+trace.c
+  test/core/end2end/fixtures/h2_full+trace.cc
 )
 
 
@@ -13712,7 +13712,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(h2_full+workarounds_test
-  test/core/end2end/fixtures/h2_full+workarounds.c
+  test/core/end2end/fixtures/h2_full+workarounds.cc
 )
 
 
@@ -13743,7 +13743,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(h2_http_proxy_test
-  test/core/end2end/fixtures/h2_http_proxy.c
+  test/core/end2end/fixtures/h2_http_proxy.cc
 )
 
 
@@ -13774,7 +13774,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(h2_load_reporting_test
-  test/core/end2end/fixtures/h2_load_reporting.c
+  test/core/end2end/fixtures/h2_load_reporting.cc
 )
 
 
@@ -13805,7 +13805,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(h2_oauth2_test
-  test/core/end2end/fixtures/h2_oauth2.c
+  test/core/end2end/fixtures/h2_oauth2.cc
 )
 
 
@@ -13836,7 +13836,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(h2_proxy_test
-  test/core/end2end/fixtures/h2_proxy.c
+  test/core/end2end/fixtures/h2_proxy.cc
 )
 
 
@@ -13867,7 +13867,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(h2_sockpair_test
-  test/core/end2end/fixtures/h2_sockpair.c
+  test/core/end2end/fixtures/h2_sockpair.cc
 )
 
 
@@ -13898,7 +13898,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(h2_sockpair+trace_test
-  test/core/end2end/fixtures/h2_sockpair+trace.c
+  test/core/end2end/fixtures/h2_sockpair+trace.cc
 )
 
 
@@ -13929,7 +13929,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(h2_sockpair_1byte_test
-  test/core/end2end/fixtures/h2_sockpair_1byte.c
+  test/core/end2end/fixtures/h2_sockpair_1byte.cc
 )
 
 
@@ -13960,7 +13960,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(h2_ssl_test
-  test/core/end2end/fixtures/h2_ssl.c
+  test/core/end2end/fixtures/h2_ssl.cc
 )
 
 
@@ -13991,7 +13991,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(h2_ssl_proxy_test
-  test/core/end2end/fixtures/h2_ssl_proxy.c
+  test/core/end2end/fixtures/h2_ssl_proxy.cc
 )
 
 
@@ -14023,7 +14023,7 @@
 if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
 
 add_executable(h2_uds_test
-  test/core/end2end/fixtures/h2_uds.c
+  test/core/end2end/fixtures/h2_uds.cc
 )
 
 
@@ -14055,7 +14055,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(inproc_test
-  test/core/end2end/fixtures/inproc.c
+  test/core/end2end/fixtures/inproc.cc
 )
 
 
@@ -14086,7 +14086,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(h2_census_nosec_test
-  test/core/end2end/fixtures/h2_census.c
+  test/core/end2end/fixtures/h2_census.cc
 )
 
 
@@ -14117,7 +14117,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(h2_compress_nosec_test
-  test/core/end2end/fixtures/h2_compress.c
+  test/core/end2end/fixtures/h2_compress.cc
 )
 
 
@@ -14149,7 +14149,7 @@
 if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
 
 add_executable(h2_fd_nosec_test
-  test/core/end2end/fixtures/h2_fd.c
+  test/core/end2end/fixtures/h2_fd.cc
 )
 
 
@@ -14181,7 +14181,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(h2_full_nosec_test
-  test/core/end2end/fixtures/h2_full.c
+  test/core/end2end/fixtures/h2_full.cc
 )
 
 
@@ -14213,7 +14213,7 @@
 if(_gRPC_PLATFORM_LINUX)
 
 add_executable(h2_full+pipe_nosec_test
-  test/core/end2end/fixtures/h2_full+pipe.c
+  test/core/end2end/fixtures/h2_full+pipe.cc
 )
 
 
@@ -14245,7 +14245,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(h2_full+trace_nosec_test
-  test/core/end2end/fixtures/h2_full+trace.c
+  test/core/end2end/fixtures/h2_full+trace.cc
 )
 
 
@@ -14276,7 +14276,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(h2_full+workarounds_nosec_test
-  test/core/end2end/fixtures/h2_full+workarounds.c
+  test/core/end2end/fixtures/h2_full+workarounds.cc
 )
 
 
@@ -14307,7 +14307,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(h2_http_proxy_nosec_test
-  test/core/end2end/fixtures/h2_http_proxy.c
+  test/core/end2end/fixtures/h2_http_proxy.cc
 )
 
 
@@ -14338,7 +14338,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(h2_load_reporting_nosec_test
-  test/core/end2end/fixtures/h2_load_reporting.c
+  test/core/end2end/fixtures/h2_load_reporting.cc
 )
 
 
@@ -14369,7 +14369,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(h2_proxy_nosec_test
-  test/core/end2end/fixtures/h2_proxy.c
+  test/core/end2end/fixtures/h2_proxy.cc
 )
 
 
@@ -14400,7 +14400,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(h2_sockpair_nosec_test
-  test/core/end2end/fixtures/h2_sockpair.c
+  test/core/end2end/fixtures/h2_sockpair.cc
 )
 
 
@@ -14431,7 +14431,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(h2_sockpair+trace_nosec_test
-  test/core/end2end/fixtures/h2_sockpair+trace.c
+  test/core/end2end/fixtures/h2_sockpair+trace.cc
 )
 
 
@@ -14462,7 +14462,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(h2_sockpair_1byte_nosec_test
-  test/core/end2end/fixtures/h2_sockpair_1byte.c
+  test/core/end2end/fixtures/h2_sockpair_1byte.cc
 )
 
 
@@ -14494,7 +14494,7 @@
 if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
 
 add_executable(h2_uds_nosec_test
-  test/core/end2end/fixtures/h2_uds.c
+  test/core/end2end/fixtures/h2_uds.cc
 )
 
 
@@ -14526,7 +14526,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(inproc_nosec_test
-  test/core/end2end/fixtures/inproc.c
+  test/core/end2end/fixtures/inproc.cc
 )
 
 
@@ -14733,7 +14733,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(api_fuzzer_one_entry
-  test/core/end2end/fuzzers/api_fuzzer.c
+  test/core/end2end/fuzzers/api_fuzzer.cc
   test/core/util/one_corpus_entry_fuzzer.c
 )
 
@@ -14764,7 +14764,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(client_fuzzer_one_entry
-  test/core/end2end/fuzzers/client_fuzzer.c
+  test/core/end2end/fuzzers/client_fuzzer.cc
   test/core/util/one_corpus_entry_fuzzer.c
 )
 
@@ -14795,7 +14795,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(hpack_parser_fuzzer_test_one_entry
-  test/core/transport/chttp2/hpack_parser_fuzzer_test.c
+  test/core/transport/chttp2/hpack_parser_fuzzer_test.cc
   test/core/util/one_corpus_entry_fuzzer.c
 )
 
@@ -14826,7 +14826,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(http_request_fuzzer_test_one_entry
-  test/core/http/request_fuzzer.c
+  test/core/http/request_fuzzer.cc
   test/core/util/one_corpus_entry_fuzzer.c
 )
 
@@ -14857,7 +14857,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(http_response_fuzzer_test_one_entry
-  test/core/http/response_fuzzer.c
+  test/core/http/response_fuzzer.cc
   test/core/util/one_corpus_entry_fuzzer.c
 )
 
@@ -14888,7 +14888,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(json_fuzzer_test_one_entry
-  test/core/json/fuzzer.c
+  test/core/json/fuzzer.cc
   test/core/util/one_corpus_entry_fuzzer.c
 )
 
@@ -14919,7 +14919,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(nanopb_fuzzer_response_test_one_entry
-  test/core/nanopb/fuzzer_response.c
+  test/core/nanopb/fuzzer_response.cc
   test/core/util/one_corpus_entry_fuzzer.c
 )
 
@@ -14950,7 +14950,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(nanopb_fuzzer_serverlist_test_one_entry
-  test/core/nanopb/fuzzer_serverlist.c
+  test/core/nanopb/fuzzer_serverlist.cc
   test/core/util/one_corpus_entry_fuzzer.c
 )
 
@@ -14981,7 +14981,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(percent_decode_fuzzer_one_entry
-  test/core/slice/percent_decode_fuzzer.c
+  test/core/slice/percent_decode_fuzzer.cc
   test/core/util/one_corpus_entry_fuzzer.c
 )
 
@@ -15012,7 +15012,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(percent_encode_fuzzer_one_entry
-  test/core/slice/percent_encode_fuzzer.c
+  test/core/slice/percent_encode_fuzzer.cc
   test/core/util/one_corpus_entry_fuzzer.c
 )
 
@@ -15043,7 +15043,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(server_fuzzer_one_entry
-  test/core/end2end/fuzzers/server_fuzzer.c
+  test/core/end2end/fuzzers/server_fuzzer.cc
   test/core/util/one_corpus_entry_fuzzer.c
 )
 
@@ -15074,7 +15074,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(ssl_server_fuzzer_one_entry
-  test/core/security/ssl_server_fuzzer.c
+  test/core/security/ssl_server_fuzzer.cc
   test/core/util/one_corpus_entry_fuzzer.c
 )
 
@@ -15105,7 +15105,7 @@
 if (gRPC_BUILD_TESTS)
 
 add_executable(uri_fuzzer_test_one_entry
-  test/core/client_channel/uri_fuzzer_test.c
+  test/core/client_channel/uri_fuzzer_test.cc
   test/core/util/one_corpus_entry_fuzzer.c
 )
 
diff --git a/Makefile b/Makefile
index bb02c9b..da6a0f0 100644
--- a/Makefile
+++ b/Makefile
@@ -2930,7 +2930,7 @@
 
 
 LIBGPR_TEST_UTIL_SRC = \
-    test/core/util/test_config.c \
+    test/core/util/test_config.cc \
 
 PUBLIC_HEADERS_C += \
 
@@ -3607,26 +3607,26 @@
 
 
 LIBGRPC_TEST_UTIL_SRC = \
-    test/core/end2end/data/client_certs.c \
-    test/core/end2end/data/server1_cert.c \
-    test/core/end2end/data/server1_key.c \
-    test/core/end2end/data/test_root_cert.c \
-    test/core/security/oauth2_utils.c \
+    test/core/end2end/data/client_certs.cc \
+    test/core/end2end/data/server1_cert.cc \
+    test/core/end2end/data/server1_key.cc \
+    test/core/end2end/data/test_root_cert.cc \
+    test/core/security/oauth2_utils.cc \
     src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc \
-    test/core/end2end/cq_verifier.c \
-    test/core/end2end/fixtures/http_proxy_fixture.c \
-    test/core/end2end/fixtures/proxy.c \
-    test/core/iomgr/endpoint_tests.c \
+    test/core/end2end/cq_verifier.cc \
+    test/core/end2end/fixtures/http_proxy_fixture.cc \
+    test/core/end2end/fixtures/proxy.cc \
+    test/core/iomgr/endpoint_tests.cc \
     test/core/util/debugger_macros.cc \
-    test/core/util/grpc_profiler.c \
-    test/core/util/memory_counters.c \
-    test/core/util/mock_endpoint.c \
-    test/core/util/parse_hexstring.c \
-    test/core/util/passthru_endpoint.c \
-    test/core/util/port.c \
-    test/core/util/port_server_client.c \
-    test/core/util/slice_splitter.c \
-    test/core/util/trickle_endpoint.c \
+    test/core/util/grpc_profiler.cc \
+    test/core/util/memory_counters.cc \
+    test/core/util/mock_endpoint.cc \
+    test/core/util/parse_hexstring.cc \
+    test/core/util/passthru_endpoint.cc \
+    test/core/util/port.cc \
+    test/core/util/port_server_client.cc \
+    test/core/util/slice_splitter.cc \
+    test/core/util/trickle_endpoint.cc \
     src/core/lib/backoff/backoff.cc \
     src/core/lib/channel/channel_args.cc \
     src/core/lib/channel/channel_stack.cc \
@@ -3868,20 +3868,20 @@
 
 LIBGRPC_TEST_UTIL_UNSECURE_SRC = \
     src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc \
-    test/core/end2end/cq_verifier.c \
-    test/core/end2end/fixtures/http_proxy_fixture.c \
-    test/core/end2end/fixtures/proxy.c \
-    test/core/iomgr/endpoint_tests.c \
+    test/core/end2end/cq_verifier.cc \
+    test/core/end2end/fixtures/http_proxy_fixture.cc \
+    test/core/end2end/fixtures/proxy.cc \
+    test/core/iomgr/endpoint_tests.cc \
     test/core/util/debugger_macros.cc \
-    test/core/util/grpc_profiler.c \
-    test/core/util/memory_counters.c \
-    test/core/util/mock_endpoint.c \
-    test/core/util/parse_hexstring.c \
-    test/core/util/passthru_endpoint.c \
-    test/core/util/port.c \
-    test/core/util/port_server_client.c \
-    test/core/util/slice_splitter.c \
-    test/core/util/trickle_endpoint.c \
+    test/core/util/grpc_profiler.cc \
+    test/core/util/memory_counters.cc \
+    test/core/util/mock_endpoint.cc \
+    test/core/util/parse_hexstring.cc \
+    test/core/util/passthru_endpoint.cc \
+    test/core/util/port.cc \
+    test/core/util/port_server_client.cc \
+    test/core/util/slice_splitter.cc \
+    test/core/util/trickle_endpoint.cc \
     src/core/lib/backoff/backoff.cc \
     src/core/lib/channel/channel_args.cc \
     src/core/lib/channel/channel_stack.cc \
@@ -4413,7 +4413,7 @@
 
 
 LIBRECONNECT_SERVER_SRC = \
-    test/core/util/reconnect_server.c \
+    test/core/util/reconnect_server.cc \
 
 PUBLIC_HEADERS_C += \
 
@@ -4452,7 +4452,7 @@
 
 
 LIBTEST_TCP_SERVER_SRC = \
-    test/core/util/test_tcp_server.c \
+    test/core/util/test_tcp_server.cc \
 
 PUBLIC_HEADERS_C += \
 
@@ -8452,7 +8452,7 @@
 
 
 LIBBAD_CLIENT_TEST_SRC = \
-    test/core/bad_client/bad_client.c \
+    test/core/bad_client/bad_client.cc \
 
 PUBLIC_HEADERS_C += \
 
@@ -8491,7 +8491,7 @@
 
 
 LIBBAD_SSL_TEST_SERVER_SRC = \
-    test/core/bad_ssl/server_common.c \
+    test/core/bad_ssl/server_common.cc \
 
 PUBLIC_HEADERS_C += \
 
@@ -8530,67 +8530,67 @@
 
 
 LIBEND2END_TESTS_SRC = \
-    test/core/end2end/end2end_tests.c \
-    test/core/end2end/end2end_test_utils.c \
-    test/core/end2end/tests/authority_not_supported.c \
-    test/core/end2end/tests/bad_hostname.c \
-    test/core/end2end/tests/bad_ping.c \
-    test/core/end2end/tests/binary_metadata.c \
-    test/core/end2end/tests/call_creds.c \
-    test/core/end2end/tests/cancel_after_accept.c \
-    test/core/end2end/tests/cancel_after_client_done.c \
-    test/core/end2end/tests/cancel_after_invoke.c \
-    test/core/end2end/tests/cancel_after_round_trip.c \
-    test/core/end2end/tests/cancel_before_invoke.c \
-    test/core/end2end/tests/cancel_in_a_vacuum.c \
-    test/core/end2end/tests/cancel_with_status.c \
-    test/core/end2end/tests/compressed_payload.c \
-    test/core/end2end/tests/connectivity.c \
-    test/core/end2end/tests/default_host.c \
-    test/core/end2end/tests/disappearing_server.c \
-    test/core/end2end/tests/empty_batch.c \
-    test/core/end2end/tests/filter_call_init_fails.c \
-    test/core/end2end/tests/filter_causes_close.c \
-    test/core/end2end/tests/filter_latency.c \
-    test/core/end2end/tests/graceful_server_shutdown.c \
-    test/core/end2end/tests/high_initial_seqno.c \
-    test/core/end2end/tests/hpack_size.c \
-    test/core/end2end/tests/idempotent_request.c \
-    test/core/end2end/tests/invoke_large_request.c \
-    test/core/end2end/tests/keepalive_timeout.c \
-    test/core/end2end/tests/large_metadata.c \
-    test/core/end2end/tests/load_reporting_hook.c \
-    test/core/end2end/tests/max_concurrent_streams.c \
-    test/core/end2end/tests/max_connection_age.c \
-    test/core/end2end/tests/max_connection_idle.c \
-    test/core/end2end/tests/max_message_length.c \
-    test/core/end2end/tests/negative_deadline.c \
-    test/core/end2end/tests/network_status_change.c \
-    test/core/end2end/tests/no_logging.c \
-    test/core/end2end/tests/no_op.c \
-    test/core/end2end/tests/payload.c \
-    test/core/end2end/tests/ping.c \
-    test/core/end2end/tests/ping_pong_streaming.c \
-    test/core/end2end/tests/proxy_auth.c \
-    test/core/end2end/tests/registered_call.c \
-    test/core/end2end/tests/request_with_flags.c \
-    test/core/end2end/tests/request_with_payload.c \
-    test/core/end2end/tests/resource_quota_server.c \
-    test/core/end2end/tests/server_finishes_request.c \
-    test/core/end2end/tests/shutdown_finishes_calls.c \
-    test/core/end2end/tests/shutdown_finishes_tags.c \
-    test/core/end2end/tests/simple_cacheable_request.c \
-    test/core/end2end/tests/simple_delayed_request.c \
-    test/core/end2end/tests/simple_metadata.c \
-    test/core/end2end/tests/simple_request.c \
-    test/core/end2end/tests/stream_compression_compressed_payload.c \
-    test/core/end2end/tests/stream_compression_payload.c \
-    test/core/end2end/tests/stream_compression_ping_pong_streaming.c \
-    test/core/end2end/tests/streaming_error_response.c \
-    test/core/end2end/tests/trailing_metadata.c \
-    test/core/end2end/tests/workaround_cronet_compression.c \
-    test/core/end2end/tests/write_buffering.c \
-    test/core/end2end/tests/write_buffering_at_end.c \
+    test/core/end2end/end2end_tests.cc \
+    test/core/end2end/end2end_test_utils.cc \
+    test/core/end2end/tests/authority_not_supported.cc \
+    test/core/end2end/tests/bad_hostname.cc \
+    test/core/end2end/tests/bad_ping.cc \
+    test/core/end2end/tests/binary_metadata.cc \
+    test/core/end2end/tests/call_creds.cc \
+    test/core/end2end/tests/cancel_after_accept.cc \
+    test/core/end2end/tests/cancel_after_client_done.cc \
+    test/core/end2end/tests/cancel_after_invoke.cc \
+    test/core/end2end/tests/cancel_after_round_trip.cc \
+    test/core/end2end/tests/cancel_before_invoke.cc \
+    test/core/end2end/tests/cancel_in_a_vacuum.cc \
+    test/core/end2end/tests/cancel_with_status.cc \
+    test/core/end2end/tests/compressed_payload.cc \
+    test/core/end2end/tests/connectivity.cc \
+    test/core/end2end/tests/default_host.cc \
+    test/core/end2end/tests/disappearing_server.cc \
+    test/core/end2end/tests/empty_batch.cc \
+    test/core/end2end/tests/filter_call_init_fails.cc \
+    test/core/end2end/tests/filter_causes_close.cc \
+    test/core/end2end/tests/filter_latency.cc \
+    test/core/end2end/tests/graceful_server_shutdown.cc \
+    test/core/end2end/tests/high_initial_seqno.cc \
+    test/core/end2end/tests/hpack_size.cc \
+    test/core/end2end/tests/idempotent_request.cc \
+    test/core/end2end/tests/invoke_large_request.cc \
+    test/core/end2end/tests/keepalive_timeout.cc \
+    test/core/end2end/tests/large_metadata.cc \
+    test/core/end2end/tests/load_reporting_hook.cc \
+    test/core/end2end/tests/max_concurrent_streams.cc \
+    test/core/end2end/tests/max_connection_age.cc \
+    test/core/end2end/tests/max_connection_idle.cc \
+    test/core/end2end/tests/max_message_length.cc \
+    test/core/end2end/tests/negative_deadline.cc \
+    test/core/end2end/tests/network_status_change.cc \
+    test/core/end2end/tests/no_logging.cc \
+    test/core/end2end/tests/no_op.cc \
+    test/core/end2end/tests/payload.cc \
+    test/core/end2end/tests/ping.cc \
+    test/core/end2end/tests/ping_pong_streaming.cc \
+    test/core/end2end/tests/proxy_auth.cc \
+    test/core/end2end/tests/registered_call.cc \
+    test/core/end2end/tests/request_with_flags.cc \
+    test/core/end2end/tests/request_with_payload.cc \
+    test/core/end2end/tests/resource_quota_server.cc \
+    test/core/end2end/tests/server_finishes_request.cc \
+    test/core/end2end/tests/shutdown_finishes_calls.cc \
+    test/core/end2end/tests/shutdown_finishes_tags.cc \
+    test/core/end2end/tests/simple_cacheable_request.cc \
+    test/core/end2end/tests/simple_delayed_request.cc \
+    test/core/end2end/tests/simple_metadata.cc \
+    test/core/end2end/tests/simple_request.cc \
+    test/core/end2end/tests/stream_compression_compressed_payload.cc \
+    test/core/end2end/tests/stream_compression_payload.cc \
+    test/core/end2end/tests/stream_compression_ping_pong_streaming.cc \
+    test/core/end2end/tests/streaming_error_response.cc \
+    test/core/end2end/tests/trailing_metadata.cc \
+    test/core/end2end/tests/workaround_cronet_compression.cc \
+    test/core/end2end/tests/write_buffering.cc \
+    test/core/end2end/tests/write_buffering_at_end.cc \
 
 PUBLIC_HEADERS_C += \
 
@@ -8629,66 +8629,66 @@
 
 
 LIBEND2END_NOSEC_TESTS_SRC = \
-    test/core/end2end/end2end_nosec_tests.c \
-    test/core/end2end/end2end_test_utils.c \
-    test/core/end2end/tests/authority_not_supported.c \
-    test/core/end2end/tests/bad_hostname.c \
-    test/core/end2end/tests/bad_ping.c \
-    test/core/end2end/tests/binary_metadata.c \
-    test/core/end2end/tests/cancel_after_accept.c \
-    test/core/end2end/tests/cancel_after_client_done.c \
-    test/core/end2end/tests/cancel_after_invoke.c \
-    test/core/end2end/tests/cancel_after_round_trip.c \
-    test/core/end2end/tests/cancel_before_invoke.c \
-    test/core/end2end/tests/cancel_in_a_vacuum.c \
-    test/core/end2end/tests/cancel_with_status.c \
-    test/core/end2end/tests/compressed_payload.c \
-    test/core/end2end/tests/connectivity.c \
-    test/core/end2end/tests/default_host.c \
-    test/core/end2end/tests/disappearing_server.c \
-    test/core/end2end/tests/empty_batch.c \
-    test/core/end2end/tests/filter_call_init_fails.c \
-    test/core/end2end/tests/filter_causes_close.c \
-    test/core/end2end/tests/filter_latency.c \
-    test/core/end2end/tests/graceful_server_shutdown.c \
-    test/core/end2end/tests/high_initial_seqno.c \
-    test/core/end2end/tests/hpack_size.c \
-    test/core/end2end/tests/idempotent_request.c \
-    test/core/end2end/tests/invoke_large_request.c \
-    test/core/end2end/tests/keepalive_timeout.c \
-    test/core/end2end/tests/large_metadata.c \
-    test/core/end2end/tests/load_reporting_hook.c \
-    test/core/end2end/tests/max_concurrent_streams.c \
-    test/core/end2end/tests/max_connection_age.c \
-    test/core/end2end/tests/max_connection_idle.c \
-    test/core/end2end/tests/max_message_length.c \
-    test/core/end2end/tests/negative_deadline.c \
-    test/core/end2end/tests/network_status_change.c \
-    test/core/end2end/tests/no_logging.c \
-    test/core/end2end/tests/no_op.c \
-    test/core/end2end/tests/payload.c \
-    test/core/end2end/tests/ping.c \
-    test/core/end2end/tests/ping_pong_streaming.c \
-    test/core/end2end/tests/proxy_auth.c \
-    test/core/end2end/tests/registered_call.c \
-    test/core/end2end/tests/request_with_flags.c \
-    test/core/end2end/tests/request_with_payload.c \
-    test/core/end2end/tests/resource_quota_server.c \
-    test/core/end2end/tests/server_finishes_request.c \
-    test/core/end2end/tests/shutdown_finishes_calls.c \
-    test/core/end2end/tests/shutdown_finishes_tags.c \
-    test/core/end2end/tests/simple_cacheable_request.c \
-    test/core/end2end/tests/simple_delayed_request.c \
-    test/core/end2end/tests/simple_metadata.c \
-    test/core/end2end/tests/simple_request.c \
-    test/core/end2end/tests/stream_compression_compressed_payload.c \
-    test/core/end2end/tests/stream_compression_payload.c \
-    test/core/end2end/tests/stream_compression_ping_pong_streaming.c \
-    test/core/end2end/tests/streaming_error_response.c \
-    test/core/end2end/tests/trailing_metadata.c \
-    test/core/end2end/tests/workaround_cronet_compression.c \
-    test/core/end2end/tests/write_buffering.c \
-    test/core/end2end/tests/write_buffering_at_end.c \
+    test/core/end2end/end2end_nosec_tests.cc \
+    test/core/end2end/end2end_test_utils.cc \
+    test/core/end2end/tests/authority_not_supported.cc \
+    test/core/end2end/tests/bad_hostname.cc \
+    test/core/end2end/tests/bad_ping.cc \
+    test/core/end2end/tests/binary_metadata.cc \
+    test/core/end2end/tests/cancel_after_accept.cc \
+    test/core/end2end/tests/cancel_after_client_done.cc \
+    test/core/end2end/tests/cancel_after_invoke.cc \
+    test/core/end2end/tests/cancel_after_round_trip.cc \
+    test/core/end2end/tests/cancel_before_invoke.cc \
+    test/core/end2end/tests/cancel_in_a_vacuum.cc \
+    test/core/end2end/tests/cancel_with_status.cc \
+    test/core/end2end/tests/compressed_payload.cc \
+    test/core/end2end/tests/connectivity.cc \
+    test/core/end2end/tests/default_host.cc \
+    test/core/end2end/tests/disappearing_server.cc \
+    test/core/end2end/tests/empty_batch.cc \
+    test/core/end2end/tests/filter_call_init_fails.cc \
+    test/core/end2end/tests/filter_causes_close.cc \
+    test/core/end2end/tests/filter_latency.cc \
+    test/core/end2end/tests/graceful_server_shutdown.cc \
+    test/core/end2end/tests/high_initial_seqno.cc \
+    test/core/end2end/tests/hpack_size.cc \
+    test/core/end2end/tests/idempotent_request.cc \
+    test/core/end2end/tests/invoke_large_request.cc \
+    test/core/end2end/tests/keepalive_timeout.cc \
+    test/core/end2end/tests/large_metadata.cc \
+    test/core/end2end/tests/load_reporting_hook.cc \
+    test/core/end2end/tests/max_concurrent_streams.cc \
+    test/core/end2end/tests/max_connection_age.cc \
+    test/core/end2end/tests/max_connection_idle.cc \
+    test/core/end2end/tests/max_message_length.cc \
+    test/core/end2end/tests/negative_deadline.cc \
+    test/core/end2end/tests/network_status_change.cc \
+    test/core/end2end/tests/no_logging.cc \
+    test/core/end2end/tests/no_op.cc \
+    test/core/end2end/tests/payload.cc \
+    test/core/end2end/tests/ping.cc \
+    test/core/end2end/tests/ping_pong_streaming.cc \
+    test/core/end2end/tests/proxy_auth.cc \
+    test/core/end2end/tests/registered_call.cc \
+    test/core/end2end/tests/request_with_flags.cc \
+    test/core/end2end/tests/request_with_payload.cc \
+    test/core/end2end/tests/resource_quota_server.cc \
+    test/core/end2end/tests/server_finishes_request.cc \
+    test/core/end2end/tests/shutdown_finishes_calls.cc \
+    test/core/end2end/tests/shutdown_finishes_tags.cc \
+    test/core/end2end/tests/simple_cacheable_request.cc \
+    test/core/end2end/tests/simple_delayed_request.cc \
+    test/core/end2end/tests/simple_metadata.cc \
+    test/core/end2end/tests/simple_request.cc \
+    test/core/end2end/tests/stream_compression_compressed_payload.cc \
+    test/core/end2end/tests/stream_compression_payload.cc \
+    test/core/end2end/tests/stream_compression_ping_pong_streaming.cc \
+    test/core/end2end/tests/streaming_error_response.cc \
+    test/core/end2end/tests/trailing_metadata.cc \
+    test/core/end2end/tests/workaround_cronet_compression.cc \
+    test/core/end2end/tests/write_buffering.cc \
+    test/core/end2end/tests/write_buffering_at_end.cc \
 
 PUBLIC_HEADERS_C += \
 
@@ -8717,7 +8717,7 @@
 
 
 ALARM_TEST_SRC = \
-    test/core/surface/alarm_test.c \
+    test/core/surface/alarm_test.cc \
 
 ALARM_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(ALARM_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -8749,7 +8749,7 @@
 
 
 ALGORITHM_TEST_SRC = \
-    test/core/compression/algorithm_test.c \
+    test/core/compression/algorithm_test.cc \
 
 ALGORITHM_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(ALGORITHM_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -8781,7 +8781,7 @@
 
 
 ALLOC_TEST_SRC = \
-    test/core/support/alloc_test.c \
+    test/core/support/alloc_test.cc \
 
 ALLOC_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(ALLOC_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -8813,7 +8813,7 @@
 
 
 ALPN_TEST_SRC = \
-    test/core/transport/chttp2/alpn_test.c \
+    test/core/transport/chttp2/alpn_test.cc \
 
 ALPN_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(ALPN_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -8845,7 +8845,7 @@
 
 
 API_FUZZER_SRC = \
-    test/core/end2end/fuzzers/api_fuzzer.c \
+    test/core/end2end/fuzzers/api_fuzzer.cc \
 
 API_FUZZER_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(API_FUZZER_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -8877,7 +8877,7 @@
 
 
 ARENA_TEST_SRC = \
-    test/core/support/arena_test.c \
+    test/core/support/arena_test.cc \
 
 ARENA_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(ARENA_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -8909,7 +8909,7 @@
 
 
 BACKOFF_TEST_SRC = \
-    test/core/backoff/backoff_test.c \
+    test/core/backoff/backoff_test.cc \
 
 BACKOFF_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(BACKOFF_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -8941,7 +8941,7 @@
 
 
 BAD_SERVER_RESPONSE_TEST_SRC = \
-    test/core/end2end/bad_server_response_test.c \
+    test/core/end2end/bad_server_response_test.cc \
 
 BAD_SERVER_RESPONSE_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(BAD_SERVER_RESPONSE_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -8973,7 +8973,7 @@
 
 
 BIN_DECODER_TEST_SRC = \
-    test/core/transport/chttp2/bin_decoder_test.c \
+    test/core/transport/chttp2/bin_decoder_test.cc \
 
 BIN_DECODER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(BIN_DECODER_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -9005,7 +9005,7 @@
 
 
 BIN_ENCODER_TEST_SRC = \
-    test/core/transport/chttp2/bin_encoder_test.c \
+    test/core/transport/chttp2/bin_encoder_test.cc \
 
 BIN_ENCODER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(BIN_ENCODER_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -9037,7 +9037,7 @@
 
 
 BYTE_STREAM_TEST_SRC = \
-    test/core/transport/byte_stream_test.c \
+    test/core/transport/byte_stream_test.cc \
 
 BYTE_STREAM_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(BYTE_STREAM_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -9069,7 +9069,7 @@
 
 
 CENSUS_CONTEXT_TEST_SRC = \
-    test/core/census/context_test.c \
+    test/core/census/context_test.cc \
 
 CENSUS_CONTEXT_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CENSUS_CONTEXT_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -9101,7 +9101,7 @@
 
 
 CENSUS_INTRUSIVE_HASH_MAP_TEST_SRC = \
-    test/core/census/intrusive_hash_map_test.c \
+    test/core/census/intrusive_hash_map_test.cc \
 
 CENSUS_INTRUSIVE_HASH_MAP_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CENSUS_INTRUSIVE_HASH_MAP_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -9133,7 +9133,7 @@
 
 
 CENSUS_RESOURCE_TEST_SRC = \
-    test/core/census/resource_test.c \
+    test/core/census/resource_test.cc \
 
 CENSUS_RESOURCE_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CENSUS_RESOURCE_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -9165,7 +9165,7 @@
 
 
 CENSUS_TRACE_CONTEXT_TEST_SRC = \
-    test/core/census/trace_context_test.c \
+    test/core/census/trace_context_test.cc \
 
 CENSUS_TRACE_CONTEXT_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CENSUS_TRACE_CONTEXT_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -9197,7 +9197,7 @@
 
 
 CHANNEL_CREATE_TEST_SRC = \
-    test/core/surface/channel_create_test.c \
+    test/core/surface/channel_create_test.cc \
 
 CHANNEL_CREATE_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CHANNEL_CREATE_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -9229,7 +9229,7 @@
 
 
 CHECK_EPOLLEXCLUSIVE_SRC = \
-    test/build/check_epollexclusive.c \
+    test/build/check_epollexclusive.cc \
 
 CHECK_EPOLLEXCLUSIVE_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CHECK_EPOLLEXCLUSIVE_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -9261,7 +9261,7 @@
 
 
 CHTTP2_HPACK_ENCODER_TEST_SRC = \
-    test/core/transport/chttp2/hpack_encoder_test.c \
+    test/core/transport/chttp2/hpack_encoder_test.cc \
 
 CHTTP2_HPACK_ENCODER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CHTTP2_HPACK_ENCODER_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -9293,7 +9293,7 @@
 
 
 CHTTP2_STREAM_MAP_TEST_SRC = \
-    test/core/transport/chttp2/stream_map_test.c \
+    test/core/transport/chttp2/stream_map_test.cc \
 
 CHTTP2_STREAM_MAP_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CHTTP2_STREAM_MAP_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -9325,7 +9325,7 @@
 
 
 CHTTP2_VARINT_TEST_SRC = \
-    test/core/transport/chttp2/varint_test.c \
+    test/core/transport/chttp2/varint_test.cc \
 
 CHTTP2_VARINT_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CHTTP2_VARINT_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -9357,7 +9357,7 @@
 
 
 CLIENT_FUZZER_SRC = \
-    test/core/end2end/fuzzers/client_fuzzer.c \
+    test/core/end2end/fuzzers/client_fuzzer.cc \
 
 CLIENT_FUZZER_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CLIENT_FUZZER_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -9389,7 +9389,7 @@
 
 
 COMBINER_TEST_SRC = \
-    test/core/iomgr/combiner_test.c \
+    test/core/iomgr/combiner_test.cc \
 
 COMBINER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(COMBINER_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -9421,7 +9421,7 @@
 
 
 COMPRESSION_TEST_SRC = \
-    test/core/compression/compression_test.c \
+    test/core/compression/compression_test.cc \
 
 COMPRESSION_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(COMPRESSION_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -9453,7 +9453,7 @@
 
 
 CONCURRENT_CONNECTIVITY_TEST_SRC = \
-    test/core/surface/concurrent_connectivity_test.c \
+    test/core/surface/concurrent_connectivity_test.cc \
 
 CONCURRENT_CONNECTIVITY_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CONCURRENT_CONNECTIVITY_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -9485,7 +9485,7 @@
 
 
 CONNECTION_REFUSED_TEST_SRC = \
-    test/core/end2end/connection_refused_test.c \
+    test/core/end2end/connection_refused_test.cc \
 
 CONNECTION_REFUSED_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CONNECTION_REFUSED_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -9517,7 +9517,7 @@
 
 
 DNS_RESOLVER_CONNECTIVITY_TEST_SRC = \
-    test/core/client_channel/resolvers/dns_resolver_connectivity_test.c \
+    test/core/client_channel/resolvers/dns_resolver_connectivity_test.cc \
 
 DNS_RESOLVER_CONNECTIVITY_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(DNS_RESOLVER_CONNECTIVITY_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -9549,7 +9549,7 @@
 
 
 DNS_RESOLVER_TEST_SRC = \
-    test/core/client_channel/resolvers/dns_resolver_test.c \
+    test/core/client_channel/resolvers/dns_resolver_test.cc \
 
 DNS_RESOLVER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(DNS_RESOLVER_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -9581,7 +9581,7 @@
 
 
 DUALSTACK_SOCKET_TEST_SRC = \
-    test/core/end2end/dualstack_socket_test.c \
+    test/core/end2end/dualstack_socket_test.cc \
 
 DUALSTACK_SOCKET_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(DUALSTACK_SOCKET_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -9613,7 +9613,7 @@
 
 
 ENDPOINT_PAIR_TEST_SRC = \
-    test/core/iomgr/endpoint_pair_test.c \
+    test/core/iomgr/endpoint_pair_test.cc \
 
 ENDPOINT_PAIR_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(ENDPOINT_PAIR_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -9645,7 +9645,7 @@
 
 
 ERROR_TEST_SRC = \
-    test/core/iomgr/error_test.c \
+    test/core/iomgr/error_test.cc \
 
 ERROR_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(ERROR_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -9677,7 +9677,7 @@
 
 
 EV_EPOLLSIG_LINUX_TEST_SRC = \
-    test/core/iomgr/ev_epollsig_linux_test.c \
+    test/core/iomgr/ev_epollsig_linux_test.cc \
 
 EV_EPOLLSIG_LINUX_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(EV_EPOLLSIG_LINUX_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -9709,7 +9709,7 @@
 
 
 FAKE_RESOLVER_TEST_SRC = \
-    test/core/client_channel/resolvers/fake_resolver_test.c \
+    test/core/client_channel/resolvers/fake_resolver_test.cc \
 
 FAKE_RESOLVER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(FAKE_RESOLVER_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -9741,8 +9741,8 @@
 
 
 FAKE_TRANSPORT_SECURITY_TEST_SRC = \
-    test/core/tsi/fake_transport_security_test.c \
-    test/core/tsi/transport_security_test_lib.c \
+    test/core/tsi/fake_transport_security_test.cc \
+    test/core/tsi/transport_security_test_lib.cc \
 
 FAKE_TRANSPORT_SECURITY_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(FAKE_TRANSPORT_SECURITY_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -9776,7 +9776,7 @@
 
 
 FD_CONSERVATION_POSIX_TEST_SRC = \
-    test/core/iomgr/fd_conservation_posix_test.c \
+    test/core/iomgr/fd_conservation_posix_test.cc \
 
 FD_CONSERVATION_POSIX_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(FD_CONSERVATION_POSIX_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -9808,7 +9808,7 @@
 
 
 FD_POSIX_TEST_SRC = \
-    test/core/iomgr/fd_posix_test.c \
+    test/core/iomgr/fd_posix_test.cc \
 
 FD_POSIX_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(FD_POSIX_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -9840,7 +9840,7 @@
 
 
 FLING_CLIENT_SRC = \
-    test/core/fling/client.c \
+    test/core/fling/client.cc \
 
 FLING_CLIENT_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(FLING_CLIENT_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -9872,7 +9872,7 @@
 
 
 FLING_SERVER_SRC = \
-    test/core/fling/server.c \
+    test/core/fling/server.cc \
 
 FLING_SERVER_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(FLING_SERVER_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -9904,7 +9904,7 @@
 
 
 FLING_STREAM_TEST_SRC = \
-    test/core/fling/fling_stream_test.c \
+    test/core/fling/fling_stream_test.cc \
 
 FLING_STREAM_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(FLING_STREAM_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -9936,7 +9936,7 @@
 
 
 FLING_TEST_SRC = \
-    test/core/fling/fling_test.c \
+    test/core/fling/fling_test.cc \
 
 FLING_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(FLING_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -10064,7 +10064,7 @@
 
 
 GOAWAY_SERVER_TEST_SRC = \
-    test/core/end2end/goaway_server_test.c \
+    test/core/end2end/goaway_server_test.cc \
 
 GOAWAY_SERVER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GOAWAY_SERVER_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -10096,7 +10096,7 @@
 
 
 GPR_AVL_TEST_SRC = \
-    test/core/support/avl_test.c \
+    test/core/support/avl_test.cc \
 
 GPR_AVL_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GPR_AVL_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -10128,7 +10128,7 @@
 
 
 GPR_CMDLINE_TEST_SRC = \
-    test/core/support/cmdline_test.c \
+    test/core/support/cmdline_test.cc \
 
 GPR_CMDLINE_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GPR_CMDLINE_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -10160,7 +10160,7 @@
 
 
 GPR_CPU_TEST_SRC = \
-    test/core/support/cpu_test.c \
+    test/core/support/cpu_test.cc \
 
 GPR_CPU_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GPR_CPU_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -10192,7 +10192,7 @@
 
 
 GPR_ENV_TEST_SRC = \
-    test/core/support/env_test.c \
+    test/core/support/env_test.cc \
 
 GPR_ENV_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GPR_ENV_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -10224,7 +10224,7 @@
 
 
 GPR_HISTOGRAM_TEST_SRC = \
-    test/core/support/histogram_test.c \
+    test/core/support/histogram_test.cc \
 
 GPR_HISTOGRAM_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GPR_HISTOGRAM_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -10256,7 +10256,7 @@
 
 
 GPR_HOST_PORT_TEST_SRC = \
-    test/core/support/host_port_test.c \
+    test/core/support/host_port_test.cc \
 
 GPR_HOST_PORT_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GPR_HOST_PORT_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -10288,7 +10288,7 @@
 
 
 GPR_LOG_TEST_SRC = \
-    test/core/support/log_test.c \
+    test/core/support/log_test.cc \
 
 GPR_LOG_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GPR_LOG_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -10320,7 +10320,7 @@
 
 
 GPR_MPSCQ_TEST_SRC = \
-    test/core/support/mpscq_test.c \
+    test/core/support/mpscq_test.cc \
 
 GPR_MPSCQ_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GPR_MPSCQ_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -10352,7 +10352,7 @@
 
 
 GPR_SPINLOCK_TEST_SRC = \
-    test/core/support/spinlock_test.c \
+    test/core/support/spinlock_test.cc \
 
 GPR_SPINLOCK_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GPR_SPINLOCK_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -10384,7 +10384,7 @@
 
 
 GPR_STACK_LOCKFREE_TEST_SRC = \
-    test/core/support/stack_lockfree_test.c \
+    test/core/support/stack_lockfree_test.cc \
 
 GPR_STACK_LOCKFREE_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GPR_STACK_LOCKFREE_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -10416,7 +10416,7 @@
 
 
 GPR_STRING_TEST_SRC = \
-    test/core/support/string_test.c \
+    test/core/support/string_test.cc \
 
 GPR_STRING_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GPR_STRING_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -10448,7 +10448,7 @@
 
 
 GPR_SYNC_TEST_SRC = \
-    test/core/support/sync_test.c \
+    test/core/support/sync_test.cc \
 
 GPR_SYNC_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GPR_SYNC_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -10480,7 +10480,7 @@
 
 
 GPR_THD_TEST_SRC = \
-    test/core/support/thd_test.c \
+    test/core/support/thd_test.cc \
 
 GPR_THD_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GPR_THD_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -10512,7 +10512,7 @@
 
 
 GPR_TIME_TEST_SRC = \
-    test/core/support/time_test.c \
+    test/core/support/time_test.cc \
 
 GPR_TIME_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GPR_TIME_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -10544,7 +10544,7 @@
 
 
 GPR_TLS_TEST_SRC = \
-    test/core/support/tls_test.c \
+    test/core/support/tls_test.cc \
 
 GPR_TLS_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GPR_TLS_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -10576,7 +10576,7 @@
 
 
 GPR_USEFUL_TEST_SRC = \
-    test/core/support/useful_test.c \
+    test/core/support/useful_test.cc \
 
 GPR_USEFUL_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GPR_USEFUL_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -10608,7 +10608,7 @@
 
 
 GRPC_AUTH_CONTEXT_TEST_SRC = \
-    test/core/security/auth_context_test.c \
+    test/core/security/auth_context_test.cc \
 
 GRPC_AUTH_CONTEXT_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_AUTH_CONTEXT_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -10640,7 +10640,7 @@
 
 
 GRPC_B64_TEST_SRC = \
-    test/core/slice/b64_test.c \
+    test/core/slice/b64_test.cc \
 
 GRPC_B64_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_B64_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -10672,7 +10672,7 @@
 
 
 GRPC_BYTE_BUFFER_READER_TEST_SRC = \
-    test/core/surface/byte_buffer_reader_test.c \
+    test/core/surface/byte_buffer_reader_test.cc \
 
 GRPC_BYTE_BUFFER_READER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_BYTE_BUFFER_READER_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -10704,7 +10704,7 @@
 
 
 GRPC_CHANNEL_ARGS_TEST_SRC = \
-    test/core/channel/channel_args_test.c \
+    test/core/channel/channel_args_test.cc \
 
 GRPC_CHANNEL_ARGS_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_CHANNEL_ARGS_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -10736,7 +10736,7 @@
 
 
 GRPC_CHANNEL_STACK_BUILDER_TEST_SRC = \
-    test/core/channel/channel_stack_builder_test.c \
+    test/core/channel/channel_stack_builder_test.cc \
 
 GRPC_CHANNEL_STACK_BUILDER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_CHANNEL_STACK_BUILDER_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -10768,7 +10768,7 @@
 
 
 GRPC_CHANNEL_STACK_TEST_SRC = \
-    test/core/channel/channel_stack_test.c \
+    test/core/channel/channel_stack_test.cc \
 
 GRPC_CHANNEL_STACK_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_CHANNEL_STACK_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -10800,7 +10800,7 @@
 
 
 GRPC_COMPLETION_QUEUE_TEST_SRC = \
-    test/core/surface/completion_queue_test.c \
+    test/core/surface/completion_queue_test.cc \
 
 GRPC_COMPLETION_QUEUE_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_COMPLETION_QUEUE_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -10832,7 +10832,7 @@
 
 
 GRPC_COMPLETION_QUEUE_THREADING_TEST_SRC = \
-    test/core/surface/completion_queue_threading_test.c \
+    test/core/surface/completion_queue_threading_test.cc \
 
 GRPC_COMPLETION_QUEUE_THREADING_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_COMPLETION_QUEUE_THREADING_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -10864,7 +10864,7 @@
 
 
 GRPC_CREATE_JWT_SRC = \
-    test/core/security/create_jwt.c \
+    test/core/security/create_jwt.cc \
 
 GRPC_CREATE_JWT_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_CREATE_JWT_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -10896,7 +10896,7 @@
 
 
 GRPC_CREDENTIALS_TEST_SRC = \
-    test/core/security/credentials_test.c \
+    test/core/security/credentials_test.cc \
 
 GRPC_CREDENTIALS_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_CREDENTIALS_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -10928,7 +10928,7 @@
 
 
 GRPC_FETCH_OAUTH2_SRC = \
-    test/core/security/fetch_oauth2.c \
+    test/core/security/fetch_oauth2.cc \
 
 GRPC_FETCH_OAUTH2_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_FETCH_OAUTH2_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -10960,7 +10960,7 @@
 
 
 GRPC_INVALID_CHANNEL_ARGS_TEST_SRC = \
-    test/core/surface/invalid_channel_args_test.c \
+    test/core/surface/invalid_channel_args_test.cc \
 
 GRPC_INVALID_CHANNEL_ARGS_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_INVALID_CHANNEL_ARGS_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -10992,7 +10992,7 @@
 
 
 GRPC_JSON_TOKEN_TEST_SRC = \
-    test/core/security/json_token_test.c \
+    test/core/security/json_token_test.cc \
 
 GRPC_JSON_TOKEN_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_JSON_TOKEN_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -11024,7 +11024,7 @@
 
 
 GRPC_JWT_VERIFIER_TEST_SRC = \
-    test/core/security/jwt_verifier_test.c \
+    test/core/security/jwt_verifier_test.cc \
 
 GRPC_JWT_VERIFIER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_JWT_VERIFIER_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -11056,7 +11056,7 @@
 
 
 GRPC_PRINT_GOOGLE_DEFAULT_CREDS_TOKEN_SRC = \
-    test/core/security/print_google_default_creds_token.c \
+    test/core/security/print_google_default_creds_token.cc \
 
 GRPC_PRINT_GOOGLE_DEFAULT_CREDS_TOKEN_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_PRINT_GOOGLE_DEFAULT_CREDS_TOKEN_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -11088,7 +11088,7 @@
 
 
 GRPC_SECURITY_CONNECTOR_TEST_SRC = \
-    test/core/security/security_connector_test.c \
+    test/core/security/security_connector_test.cc \
 
 GRPC_SECURITY_CONNECTOR_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_SECURITY_CONNECTOR_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -11120,7 +11120,7 @@
 
 
 GRPC_VERIFY_JWT_SRC = \
-    test/core/security/verify_jwt.c \
+    test/core/security/verify_jwt.cc \
 
 GRPC_VERIFY_JWT_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_VERIFY_JWT_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -11152,7 +11152,7 @@
 
 
 HANDSHAKE_CLIENT_SRC = \
-    test/core/handshake/client_ssl.c \
+    test/core/handshake/client_ssl.cc \
 
 HANDSHAKE_CLIENT_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(HANDSHAKE_CLIENT_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -11184,7 +11184,7 @@
 
 
 HANDSHAKE_SERVER_SRC = \
-    test/core/handshake/server_ssl.c \
+    test/core/handshake/server_ssl.cc \
 
 HANDSHAKE_SERVER_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(HANDSHAKE_SERVER_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -11216,7 +11216,7 @@
 
 
 HPACK_PARSER_FUZZER_TEST_SRC = \
-    test/core/transport/chttp2/hpack_parser_fuzzer_test.c \
+    test/core/transport/chttp2/hpack_parser_fuzzer_test.cc \
 
 HPACK_PARSER_FUZZER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(HPACK_PARSER_FUZZER_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -11248,7 +11248,7 @@
 
 
 HPACK_PARSER_TEST_SRC = \
-    test/core/transport/chttp2/hpack_parser_test.c \
+    test/core/transport/chttp2/hpack_parser_test.cc \
 
 HPACK_PARSER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(HPACK_PARSER_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -11280,7 +11280,7 @@
 
 
 HPACK_TABLE_TEST_SRC = \
-    test/core/transport/chttp2/hpack_table_test.c \
+    test/core/transport/chttp2/hpack_table_test.cc \
 
 HPACK_TABLE_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(HPACK_TABLE_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -11312,7 +11312,7 @@
 
 
 HTTP_PARSER_TEST_SRC = \
-    test/core/http/parser_test.c \
+    test/core/http/parser_test.cc \
 
 HTTP_PARSER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(HTTP_PARSER_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -11344,7 +11344,7 @@
 
 
 HTTP_REQUEST_FUZZER_TEST_SRC = \
-    test/core/http/request_fuzzer.c \
+    test/core/http/request_fuzzer.cc \
 
 HTTP_REQUEST_FUZZER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(HTTP_REQUEST_FUZZER_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -11376,7 +11376,7 @@
 
 
 HTTP_RESPONSE_FUZZER_TEST_SRC = \
-    test/core/http/response_fuzzer.c \
+    test/core/http/response_fuzzer.cc \
 
 HTTP_RESPONSE_FUZZER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(HTTP_RESPONSE_FUZZER_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -11408,7 +11408,7 @@
 
 
 HTTPCLI_FORMAT_REQUEST_TEST_SRC = \
-    test/core/http/format_request_test.c \
+    test/core/http/format_request_test.cc \
 
 HTTPCLI_FORMAT_REQUEST_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(HTTPCLI_FORMAT_REQUEST_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -11440,7 +11440,7 @@
 
 
 HTTPCLI_TEST_SRC = \
-    test/core/http/httpcli_test.c \
+    test/core/http/httpcli_test.cc \
 
 HTTPCLI_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(HTTPCLI_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -11472,7 +11472,7 @@
 
 
 HTTPSCLI_TEST_SRC = \
-    test/core/http/httpscli_test.c \
+    test/core/http/httpscli_test.cc \
 
 HTTPSCLI_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(HTTPSCLI_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -11504,7 +11504,7 @@
 
 
 INIT_TEST_SRC = \
-    test/core/surface/init_test.c \
+    test/core/surface/init_test.cc \
 
 INIT_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(INIT_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -11536,7 +11536,7 @@
 
 
 INVALID_CALL_ARGUMENT_TEST_SRC = \
-    test/core/end2end/invalid_call_argument_test.c \
+    test/core/end2end/invalid_call_argument_test.cc \
 
 INVALID_CALL_ARGUMENT_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(INVALID_CALL_ARGUMENT_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -11568,7 +11568,7 @@
 
 
 JSON_FUZZER_TEST_SRC = \
-    test/core/json/fuzzer.c \
+    test/core/json/fuzzer.cc \
 
 JSON_FUZZER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(JSON_FUZZER_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -11600,7 +11600,7 @@
 
 
 JSON_REWRITE_SRC = \
-    test/core/json/json_rewrite.c \
+    test/core/json/json_rewrite.cc \
 
 JSON_REWRITE_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(JSON_REWRITE_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -11632,7 +11632,7 @@
 
 
 JSON_REWRITE_TEST_SRC = \
-    test/core/json/json_rewrite_test.c \
+    test/core/json/json_rewrite_test.cc \
 
 JSON_REWRITE_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(JSON_REWRITE_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -11664,7 +11664,7 @@
 
 
 JSON_STREAM_ERROR_TEST_SRC = \
-    test/core/json/json_stream_error_test.c \
+    test/core/json/json_stream_error_test.cc \
 
 JSON_STREAM_ERROR_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(JSON_STREAM_ERROR_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -11696,7 +11696,7 @@
 
 
 JSON_TEST_SRC = \
-    test/core/json/json_test.c \
+    test/core/json/json_test.cc \
 
 JSON_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(JSON_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -11728,7 +11728,7 @@
 
 
 LAME_CLIENT_TEST_SRC = \
-    test/core/surface/lame_client_test.c \
+    test/core/surface/lame_client_test.cc \
 
 LAME_CLIENT_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LAME_CLIENT_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -11760,7 +11760,7 @@
 
 
 LB_POLICIES_TEST_SRC = \
-    test/core/client_channel/lb_policies_test.c \
+    test/core/client_channel/lb_policies_test.cc \
 
 LB_POLICIES_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LB_POLICIES_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -11792,7 +11792,7 @@
 
 
 LOAD_FILE_TEST_SRC = \
-    test/core/iomgr/load_file_test.c \
+    test/core/iomgr/load_file_test.cc \
 
 LOAD_FILE_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LOAD_FILE_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -11824,7 +11824,7 @@
 
 
 LOW_LEVEL_PING_PONG_BENCHMARK_SRC = \
-    test/core/network_benchmarks/low_level_ping_pong.c \
+    test/core/network_benchmarks/low_level_ping_pong.cc \
 
 LOW_LEVEL_PING_PONG_BENCHMARK_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LOW_LEVEL_PING_PONG_BENCHMARK_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -11856,7 +11856,7 @@
 
 
 MEMORY_PROFILE_CLIENT_SRC = \
-    test/core/memory_usage/client.c \
+    test/core/memory_usage/client.cc \
 
 MEMORY_PROFILE_CLIENT_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(MEMORY_PROFILE_CLIENT_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -11888,7 +11888,7 @@
 
 
 MEMORY_PROFILE_SERVER_SRC = \
-    test/core/memory_usage/server.c \
+    test/core/memory_usage/server.cc \
 
 MEMORY_PROFILE_SERVER_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(MEMORY_PROFILE_SERVER_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -11920,7 +11920,7 @@
 
 
 MEMORY_PROFILE_TEST_SRC = \
-    test/core/memory_usage/memory_usage_test.c \
+    test/core/memory_usage/memory_usage_test.cc \
 
 MEMORY_PROFILE_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(MEMORY_PROFILE_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -11952,7 +11952,7 @@
 
 
 MESSAGE_COMPRESS_TEST_SRC = \
-    test/core/compression/message_compress_test.c \
+    test/core/compression/message_compress_test.cc \
 
 MESSAGE_COMPRESS_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(MESSAGE_COMPRESS_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -11984,7 +11984,7 @@
 
 
 MINIMAL_STACK_IS_MINIMAL_TEST_SRC = \
-    test/core/channel/minimal_stack_is_minimal_test.c \
+    test/core/channel/minimal_stack_is_minimal_test.cc \
 
 MINIMAL_STACK_IS_MINIMAL_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(MINIMAL_STACK_IS_MINIMAL_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -12016,7 +12016,7 @@
 
 
 MLOG_TEST_SRC = \
-    test/core/census/mlog_test.c \
+    test/core/census/mlog_test.cc \
 
 MLOG_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(MLOG_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -12048,7 +12048,7 @@
 
 
 MULTIPLE_SERVER_QUEUES_TEST_SRC = \
-    test/core/end2end/multiple_server_queues_test.c \
+    test/core/end2end/multiple_server_queues_test.cc \
 
 MULTIPLE_SERVER_QUEUES_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(MULTIPLE_SERVER_QUEUES_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -12080,7 +12080,7 @@
 
 
 MURMUR_HASH_TEST_SRC = \
-    test/core/support/murmur_hash_test.c \
+    test/core/support/murmur_hash_test.cc \
 
 MURMUR_HASH_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(MURMUR_HASH_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -12112,7 +12112,7 @@
 
 
 NANOPB_FUZZER_RESPONSE_TEST_SRC = \
-    test/core/nanopb/fuzzer_response.c \
+    test/core/nanopb/fuzzer_response.cc \
 
 NANOPB_FUZZER_RESPONSE_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(NANOPB_FUZZER_RESPONSE_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -12144,7 +12144,7 @@
 
 
 NANOPB_FUZZER_SERVERLIST_TEST_SRC = \
-    test/core/nanopb/fuzzer_serverlist.c \
+    test/core/nanopb/fuzzer_serverlist.cc \
 
 NANOPB_FUZZER_SERVERLIST_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(NANOPB_FUZZER_SERVERLIST_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -12176,7 +12176,7 @@
 
 
 NO_SERVER_TEST_SRC = \
-    test/core/end2end/no_server_test.c \
+    test/core/end2end/no_server_test.cc \
 
 NO_SERVER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(NO_SERVER_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -12208,7 +12208,7 @@
 
 
 NUM_EXTERNAL_CONNECTIVITY_WATCHERS_TEST_SRC = \
-    test/core/surface/num_external_connectivity_watchers_test.c \
+    test/core/surface/num_external_connectivity_watchers_test.cc \
 
 NUM_EXTERNAL_CONNECTIVITY_WATCHERS_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(NUM_EXTERNAL_CONNECTIVITY_WATCHERS_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -12240,7 +12240,7 @@
 
 
 PARSE_ADDRESS_TEST_SRC = \
-    test/core/client_channel/parse_address_test.c \
+    test/core/client_channel/parse_address_test.cc \
 
 PARSE_ADDRESS_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(PARSE_ADDRESS_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -12272,7 +12272,7 @@
 
 
 PERCENT_DECODE_FUZZER_SRC = \
-    test/core/slice/percent_decode_fuzzer.c \
+    test/core/slice/percent_decode_fuzzer.cc \
 
 PERCENT_DECODE_FUZZER_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(PERCENT_DECODE_FUZZER_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -12304,7 +12304,7 @@
 
 
 PERCENT_ENCODE_FUZZER_SRC = \
-    test/core/slice/percent_encode_fuzzer.c \
+    test/core/slice/percent_encode_fuzzer.cc \
 
 PERCENT_ENCODE_FUZZER_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(PERCENT_ENCODE_FUZZER_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -12336,7 +12336,7 @@
 
 
 PERCENT_ENCODING_TEST_SRC = \
-    test/core/slice/percent_encoding_test.c \
+    test/core/slice/percent_encoding_test.cc \
 
 PERCENT_ENCODING_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(PERCENT_ENCODING_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -12368,7 +12368,7 @@
 
 
 POLLSET_SET_TEST_SRC = \
-    test/core/iomgr/pollset_set_test.c \
+    test/core/iomgr/pollset_set_test.cc \
 
 POLLSET_SET_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(POLLSET_SET_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -12400,7 +12400,7 @@
 
 
 RESOLVE_ADDRESS_POSIX_TEST_SRC = \
-    test/core/iomgr/resolve_address_posix_test.c \
+    test/core/iomgr/resolve_address_posix_test.cc \
 
 RESOLVE_ADDRESS_POSIX_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(RESOLVE_ADDRESS_POSIX_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -12432,7 +12432,7 @@
 
 
 RESOLVE_ADDRESS_TEST_SRC = \
-    test/core/iomgr/resolve_address_test.c \
+    test/core/iomgr/resolve_address_test.cc \
 
 RESOLVE_ADDRESS_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(RESOLVE_ADDRESS_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -12464,7 +12464,7 @@
 
 
 RESOURCE_QUOTA_TEST_SRC = \
-    test/core/iomgr/resource_quota_test.c \
+    test/core/iomgr/resource_quota_test.cc \
 
 RESOURCE_QUOTA_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(RESOURCE_QUOTA_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -12496,7 +12496,7 @@
 
 
 SECURE_CHANNEL_CREATE_TEST_SRC = \
-    test/core/surface/secure_channel_create_test.c \
+    test/core/surface/secure_channel_create_test.cc \
 
 SECURE_CHANNEL_CREATE_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(SECURE_CHANNEL_CREATE_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -12528,7 +12528,7 @@
 
 
 SECURE_ENDPOINT_TEST_SRC = \
-    test/core/security/secure_endpoint_test.c \
+    test/core/security/secure_endpoint_test.cc \
 
 SECURE_ENDPOINT_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(SECURE_ENDPOINT_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -12560,7 +12560,7 @@
 
 
 SEQUENTIAL_CONNECTIVITY_TEST_SRC = \
-    test/core/surface/sequential_connectivity_test.c \
+    test/core/surface/sequential_connectivity_test.cc \
 
 SEQUENTIAL_CONNECTIVITY_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(SEQUENTIAL_CONNECTIVITY_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -12592,7 +12592,7 @@
 
 
 SERVER_CHTTP2_TEST_SRC = \
-    test/core/surface/server_chttp2_test.c \
+    test/core/surface/server_chttp2_test.cc \
 
 SERVER_CHTTP2_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(SERVER_CHTTP2_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -12624,7 +12624,7 @@
 
 
 SERVER_FUZZER_SRC = \
-    test/core/end2end/fuzzers/server_fuzzer.c \
+    test/core/end2end/fuzzers/server_fuzzer.cc \
 
 SERVER_FUZZER_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(SERVER_FUZZER_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -12656,7 +12656,7 @@
 
 
 SERVER_TEST_SRC = \
-    test/core/surface/server_test.c \
+    test/core/surface/server_test.cc \
 
 SERVER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(SERVER_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -12688,7 +12688,7 @@
 
 
 SLICE_BUFFER_TEST_SRC = \
-    test/core/slice/slice_buffer_test.c \
+    test/core/slice/slice_buffer_test.cc \
 
 SLICE_BUFFER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(SLICE_BUFFER_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -12720,7 +12720,7 @@
 
 
 SLICE_HASH_TABLE_TEST_SRC = \
-    test/core/slice/slice_hash_table_test.c \
+    test/core/slice/slice_hash_table_test.cc \
 
 SLICE_HASH_TABLE_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(SLICE_HASH_TABLE_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -12752,7 +12752,7 @@
 
 
 SLICE_STRING_HELPERS_TEST_SRC = \
-    test/core/slice/slice_string_helpers_test.c \
+    test/core/slice/slice_string_helpers_test.cc \
 
 SLICE_STRING_HELPERS_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(SLICE_STRING_HELPERS_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -12784,7 +12784,7 @@
 
 
 SLICE_TEST_SRC = \
-    test/core/slice/slice_test.c \
+    test/core/slice/slice_test.cc \
 
 SLICE_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(SLICE_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -12816,7 +12816,7 @@
 
 
 SOCKADDR_RESOLVER_TEST_SRC = \
-    test/core/client_channel/resolvers/sockaddr_resolver_test.c \
+    test/core/client_channel/resolvers/sockaddr_resolver_test.cc \
 
 SOCKADDR_RESOLVER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(SOCKADDR_RESOLVER_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -12848,7 +12848,7 @@
 
 
 SOCKADDR_UTILS_TEST_SRC = \
-    test/core/iomgr/sockaddr_utils_test.c \
+    test/core/iomgr/sockaddr_utils_test.cc \
 
 SOCKADDR_UTILS_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(SOCKADDR_UTILS_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -12880,7 +12880,7 @@
 
 
 SOCKET_UTILS_TEST_SRC = \
-    test/core/iomgr/socket_utils_test.c \
+    test/core/iomgr/socket_utils_test.cc \
 
 SOCKET_UTILS_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(SOCKET_UTILS_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -12912,7 +12912,7 @@
 
 
 SSL_SERVER_FUZZER_SRC = \
-    test/core/security/ssl_server_fuzzer.c \
+    test/core/security/ssl_server_fuzzer.cc \
 
 SSL_SERVER_FUZZER_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(SSL_SERVER_FUZZER_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -12944,8 +12944,8 @@
 
 
 SSL_TRANSPORT_SECURITY_TEST_SRC = \
-    test/core/tsi/ssl_transport_security_test.c \
-    test/core/tsi/transport_security_test_lib.c \
+    test/core/tsi/ssl_transport_security_test.cc \
+    test/core/tsi/transport_security_test_lib.cc \
 
 SSL_TRANSPORT_SECURITY_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(SSL_TRANSPORT_SECURITY_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -12979,7 +12979,7 @@
 
 
 STATUS_CONVERSION_TEST_SRC = \
-    test/core/transport/status_conversion_test.c \
+    test/core/transport/status_conversion_test.cc \
 
 STATUS_CONVERSION_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(STATUS_CONVERSION_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -13011,7 +13011,7 @@
 
 
 STREAM_COMPRESSION_TEST_SRC = \
-    test/core/compression/stream_compression_test.c \
+    test/core/compression/stream_compression_test.cc \
 
 STREAM_COMPRESSION_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(STREAM_COMPRESSION_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -13043,7 +13043,7 @@
 
 
 STREAM_OWNED_SLICE_TEST_SRC = \
-    test/core/transport/stream_owned_slice_test.c \
+    test/core/transport/stream_owned_slice_test.cc \
 
 STREAM_OWNED_SLICE_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(STREAM_OWNED_SLICE_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -13075,7 +13075,7 @@
 
 
 TCP_CLIENT_POSIX_TEST_SRC = \
-    test/core/iomgr/tcp_client_posix_test.c \
+    test/core/iomgr/tcp_client_posix_test.cc \
 
 TCP_CLIENT_POSIX_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(TCP_CLIENT_POSIX_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -13107,7 +13107,7 @@
 
 
 TCP_CLIENT_UV_TEST_SRC = \
-    test/core/iomgr/tcp_client_uv_test.c \
+    test/core/iomgr/tcp_client_uv_test.cc \
 
 TCP_CLIENT_UV_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(TCP_CLIENT_UV_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -13139,7 +13139,7 @@
 
 
 TCP_POSIX_TEST_SRC = \
-    test/core/iomgr/tcp_posix_test.c \
+    test/core/iomgr/tcp_posix_test.cc \
 
 TCP_POSIX_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(TCP_POSIX_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -13171,7 +13171,7 @@
 
 
 TCP_SERVER_POSIX_TEST_SRC = \
-    test/core/iomgr/tcp_server_posix_test.c \
+    test/core/iomgr/tcp_server_posix_test.cc \
 
 TCP_SERVER_POSIX_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(TCP_SERVER_POSIX_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -13203,7 +13203,7 @@
 
 
 TCP_SERVER_UV_TEST_SRC = \
-    test/core/iomgr/tcp_server_uv_test.c \
+    test/core/iomgr/tcp_server_uv_test.cc \
 
 TCP_SERVER_UV_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(TCP_SERVER_UV_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -13235,7 +13235,7 @@
 
 
 TIME_AVERAGED_STATS_TEST_SRC = \
-    test/core/iomgr/time_averaged_stats_test.c \
+    test/core/iomgr/time_averaged_stats_test.cc \
 
 TIME_AVERAGED_STATS_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(TIME_AVERAGED_STATS_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -13267,7 +13267,7 @@
 
 
 TIMEOUT_ENCODING_TEST_SRC = \
-    test/core/transport/timeout_encoding_test.c \
+    test/core/transport/timeout_encoding_test.cc \
 
 TIMEOUT_ENCODING_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(TIMEOUT_ENCODING_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -13299,7 +13299,7 @@
 
 
 TIMER_HEAP_TEST_SRC = \
-    test/core/iomgr/timer_heap_test.c \
+    test/core/iomgr/timer_heap_test.cc \
 
 TIMER_HEAP_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(TIMER_HEAP_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -13331,7 +13331,7 @@
 
 
 TIMER_LIST_TEST_SRC = \
-    test/core/iomgr/timer_list_test.c \
+    test/core/iomgr/timer_list_test.cc \
 
 TIMER_LIST_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(TIMER_LIST_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -13363,7 +13363,7 @@
 
 
 TRANSPORT_CONNECTIVITY_STATE_TEST_SRC = \
-    test/core/transport/connectivity_state_test.c \
+    test/core/transport/connectivity_state_test.cc \
 
 TRANSPORT_CONNECTIVITY_STATE_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(TRANSPORT_CONNECTIVITY_STATE_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -13395,7 +13395,7 @@
 
 
 TRANSPORT_METADATA_TEST_SRC = \
-    test/core/transport/metadata_test.c \
+    test/core/transport/metadata_test.cc \
 
 TRANSPORT_METADATA_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(TRANSPORT_METADATA_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -13427,7 +13427,7 @@
 
 
 TRANSPORT_SECURITY_TEST_SRC = \
-    test/core/tsi/transport_security_test.c \
+    test/core/tsi/transport_security_test.cc \
 
 TRANSPORT_SECURITY_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(TRANSPORT_SECURITY_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -13459,7 +13459,7 @@
 
 
 UDP_SERVER_TEST_SRC = \
-    test/core/iomgr/udp_server_test.c \
+    test/core/iomgr/udp_server_test.cc \
 
 UDP_SERVER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(UDP_SERVER_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -13491,7 +13491,7 @@
 
 
 URI_FUZZER_TEST_SRC = \
-    test/core/client_channel/uri_fuzzer_test.c \
+    test/core/client_channel/uri_fuzzer_test.cc \
 
 URI_FUZZER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(URI_FUZZER_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -13523,7 +13523,7 @@
 
 
 URI_PARSER_TEST_SRC = \
-    test/core/client_channel/uri_parser_test.c \
+    test/core/client_channel/uri_parser_test.cc \
 
 URI_PARSER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(URI_PARSER_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -13555,7 +13555,7 @@
 
 
 WAKEUP_FD_CV_TEST_SRC = \
-    test/core/iomgr/wakeup_fd_cv_test.c \
+    test/core/iomgr/wakeup_fd_cv_test.cc \
 
 WAKEUP_FD_CV_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(WAKEUP_FD_CV_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -18487,7 +18487,7 @@
 
 
 BADREQ_BAD_CLIENT_TEST_SRC = \
-    test/core/bad_client/tests/badreq.c \
+    test/core/bad_client/tests/badreq.cc \
 
 BADREQ_BAD_CLIENT_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(BADREQ_BAD_CLIENT_TEST_SRC))))
 
@@ -18507,7 +18507,7 @@
 
 
 CONNECTION_PREFIX_BAD_CLIENT_TEST_SRC = \
-    test/core/bad_client/tests/connection_prefix.c \
+    test/core/bad_client/tests/connection_prefix.cc \
 
 CONNECTION_PREFIX_BAD_CLIENT_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CONNECTION_PREFIX_BAD_CLIENT_TEST_SRC))))
 
@@ -18527,7 +18527,7 @@
 
 
 HEAD_OF_LINE_BLOCKING_BAD_CLIENT_TEST_SRC = \
-    test/core/bad_client/tests/head_of_line_blocking.c \
+    test/core/bad_client/tests/head_of_line_blocking.cc \
 
 HEAD_OF_LINE_BLOCKING_BAD_CLIENT_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(HEAD_OF_LINE_BLOCKING_BAD_CLIENT_TEST_SRC))))
 
@@ -18547,7 +18547,7 @@
 
 
 HEADERS_BAD_CLIENT_TEST_SRC = \
-    test/core/bad_client/tests/headers.c \
+    test/core/bad_client/tests/headers.cc \
 
 HEADERS_BAD_CLIENT_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(HEADERS_BAD_CLIENT_TEST_SRC))))
 
@@ -18567,7 +18567,7 @@
 
 
 INITIAL_SETTINGS_FRAME_BAD_CLIENT_TEST_SRC = \
-    test/core/bad_client/tests/initial_settings_frame.c \
+    test/core/bad_client/tests/initial_settings_frame.cc \
 
 INITIAL_SETTINGS_FRAME_BAD_CLIENT_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(INITIAL_SETTINGS_FRAME_BAD_CLIENT_TEST_SRC))))
 
@@ -18587,7 +18587,7 @@
 
 
 SERVER_REGISTERED_METHOD_BAD_CLIENT_TEST_SRC = \
-    test/core/bad_client/tests/server_registered_method.c \
+    test/core/bad_client/tests/server_registered_method.cc \
 
 SERVER_REGISTERED_METHOD_BAD_CLIENT_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(SERVER_REGISTERED_METHOD_BAD_CLIENT_TEST_SRC))))
 
@@ -18607,7 +18607,7 @@
 
 
 SIMPLE_REQUEST_BAD_CLIENT_TEST_SRC = \
-    test/core/bad_client/tests/simple_request.c \
+    test/core/bad_client/tests/simple_request.cc \
 
 SIMPLE_REQUEST_BAD_CLIENT_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(SIMPLE_REQUEST_BAD_CLIENT_TEST_SRC))))
 
@@ -18627,7 +18627,7 @@
 
 
 UNKNOWN_FRAME_BAD_CLIENT_TEST_SRC = \
-    test/core/bad_client/tests/unknown_frame.c \
+    test/core/bad_client/tests/unknown_frame.cc \
 
 UNKNOWN_FRAME_BAD_CLIENT_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(UNKNOWN_FRAME_BAD_CLIENT_TEST_SRC))))
 
@@ -18647,7 +18647,7 @@
 
 
 WINDOW_OVERFLOW_BAD_CLIENT_TEST_SRC = \
-    test/core/bad_client/tests/window_overflow.c \
+    test/core/bad_client/tests/window_overflow.cc \
 
 WINDOW_OVERFLOW_BAD_CLIENT_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(WINDOW_OVERFLOW_BAD_CLIENT_TEST_SRC))))
 
@@ -18667,7 +18667,7 @@
 
 
 BAD_SSL_CERT_SERVER_SRC = \
-    test/core/bad_ssl/servers/cert.c \
+    test/core/bad_ssl/servers/cert.cc \
 
 BAD_SSL_CERT_SERVER_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(BAD_SSL_CERT_SERVER_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -18699,7 +18699,7 @@
 
 
 BAD_SSL_CERT_TEST_SRC = \
-    test/core/bad_ssl/bad_ssl_test.c \
+    test/core/bad_ssl/bad_ssl_test.cc \
 
 BAD_SSL_CERT_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(BAD_SSL_CERT_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -18731,7 +18731,7 @@
 
 
 H2_CENSUS_TEST_SRC = \
-    test/core/end2end/fixtures/h2_census.c \
+    test/core/end2end/fixtures/h2_census.cc \
 
 H2_CENSUS_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(H2_CENSUS_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -18763,7 +18763,7 @@
 
 
 H2_COMPRESS_TEST_SRC = \
-    test/core/end2end/fixtures/h2_compress.c \
+    test/core/end2end/fixtures/h2_compress.cc \
 
 H2_COMPRESS_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(H2_COMPRESS_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -18795,7 +18795,7 @@
 
 
 H2_FAKESEC_TEST_SRC = \
-    test/core/end2end/fixtures/h2_fakesec.c \
+    test/core/end2end/fixtures/h2_fakesec.cc \
 
 H2_FAKESEC_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(H2_FAKESEC_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -18827,7 +18827,7 @@
 
 
 H2_FD_TEST_SRC = \
-    test/core/end2end/fixtures/h2_fd.c \
+    test/core/end2end/fixtures/h2_fd.cc \
 
 H2_FD_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(H2_FD_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -18859,7 +18859,7 @@
 
 
 H2_FULL_TEST_SRC = \
-    test/core/end2end/fixtures/h2_full.c \
+    test/core/end2end/fixtures/h2_full.cc \
 
 H2_FULL_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(H2_FULL_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -18891,7 +18891,7 @@
 
 
 H2_FULL+PIPE_TEST_SRC = \
-    test/core/end2end/fixtures/h2_full+pipe.c \
+    test/core/end2end/fixtures/h2_full+pipe.cc \
 
 H2_FULL+PIPE_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(H2_FULL+PIPE_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -18923,7 +18923,7 @@
 
 
 H2_FULL+TRACE_TEST_SRC = \
-    test/core/end2end/fixtures/h2_full+trace.c \
+    test/core/end2end/fixtures/h2_full+trace.cc \
 
 H2_FULL+TRACE_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(H2_FULL+TRACE_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -18955,7 +18955,7 @@
 
 
 H2_FULL+WORKAROUNDS_TEST_SRC = \
-    test/core/end2end/fixtures/h2_full+workarounds.c \
+    test/core/end2end/fixtures/h2_full+workarounds.cc \
 
 H2_FULL+WORKAROUNDS_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(H2_FULL+WORKAROUNDS_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -18987,7 +18987,7 @@
 
 
 H2_HTTP_PROXY_TEST_SRC = \
-    test/core/end2end/fixtures/h2_http_proxy.c \
+    test/core/end2end/fixtures/h2_http_proxy.cc \
 
 H2_HTTP_PROXY_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(H2_HTTP_PROXY_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -19019,7 +19019,7 @@
 
 
 H2_LOAD_REPORTING_TEST_SRC = \
-    test/core/end2end/fixtures/h2_load_reporting.c \
+    test/core/end2end/fixtures/h2_load_reporting.cc \
 
 H2_LOAD_REPORTING_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(H2_LOAD_REPORTING_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -19051,7 +19051,7 @@
 
 
 H2_OAUTH2_TEST_SRC = \
-    test/core/end2end/fixtures/h2_oauth2.c \
+    test/core/end2end/fixtures/h2_oauth2.cc \
 
 H2_OAUTH2_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(H2_OAUTH2_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -19083,7 +19083,7 @@
 
 
 H2_PROXY_TEST_SRC = \
-    test/core/end2end/fixtures/h2_proxy.c \
+    test/core/end2end/fixtures/h2_proxy.cc \
 
 H2_PROXY_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(H2_PROXY_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -19115,7 +19115,7 @@
 
 
 H2_SOCKPAIR_TEST_SRC = \
-    test/core/end2end/fixtures/h2_sockpair.c \
+    test/core/end2end/fixtures/h2_sockpair.cc \
 
 H2_SOCKPAIR_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(H2_SOCKPAIR_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -19147,7 +19147,7 @@
 
 
 H2_SOCKPAIR+TRACE_TEST_SRC = \
-    test/core/end2end/fixtures/h2_sockpair+trace.c \
+    test/core/end2end/fixtures/h2_sockpair+trace.cc \
 
 H2_SOCKPAIR+TRACE_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(H2_SOCKPAIR+TRACE_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -19179,7 +19179,7 @@
 
 
 H2_SOCKPAIR_1BYTE_TEST_SRC = \
-    test/core/end2end/fixtures/h2_sockpair_1byte.c \
+    test/core/end2end/fixtures/h2_sockpair_1byte.cc \
 
 H2_SOCKPAIR_1BYTE_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(H2_SOCKPAIR_1BYTE_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -19211,7 +19211,7 @@
 
 
 H2_SSL_TEST_SRC = \
-    test/core/end2end/fixtures/h2_ssl.c \
+    test/core/end2end/fixtures/h2_ssl.cc \
 
 H2_SSL_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(H2_SSL_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -19243,7 +19243,7 @@
 
 
 H2_SSL_PROXY_TEST_SRC = \
-    test/core/end2end/fixtures/h2_ssl_proxy.c \
+    test/core/end2end/fixtures/h2_ssl_proxy.cc \
 
 H2_SSL_PROXY_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(H2_SSL_PROXY_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -19275,7 +19275,7 @@
 
 
 H2_UDS_TEST_SRC = \
-    test/core/end2end/fixtures/h2_uds.c \
+    test/core/end2end/fixtures/h2_uds.cc \
 
 H2_UDS_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(H2_UDS_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -19307,7 +19307,7 @@
 
 
 INPROC_TEST_SRC = \
-    test/core/end2end/fixtures/inproc.c \
+    test/core/end2end/fixtures/inproc.cc \
 
 INPROC_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(INPROC_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -19339,7 +19339,7 @@
 
 
 H2_CENSUS_NOSEC_TEST_SRC = \
-    test/core/end2end/fixtures/h2_census.c \
+    test/core/end2end/fixtures/h2_census.cc \
 
 H2_CENSUS_NOSEC_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(H2_CENSUS_NOSEC_TEST_SRC))))
 
@@ -19359,7 +19359,7 @@
 
 
 H2_COMPRESS_NOSEC_TEST_SRC = \
-    test/core/end2end/fixtures/h2_compress.c \
+    test/core/end2end/fixtures/h2_compress.cc \
 
 H2_COMPRESS_NOSEC_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(H2_COMPRESS_NOSEC_TEST_SRC))))
 
@@ -19379,7 +19379,7 @@
 
 
 H2_FD_NOSEC_TEST_SRC = \
-    test/core/end2end/fixtures/h2_fd.c \
+    test/core/end2end/fixtures/h2_fd.cc \
 
 H2_FD_NOSEC_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(H2_FD_NOSEC_TEST_SRC))))
 
@@ -19399,7 +19399,7 @@
 
 
 H2_FULL_NOSEC_TEST_SRC = \
-    test/core/end2end/fixtures/h2_full.c \
+    test/core/end2end/fixtures/h2_full.cc \
 
 H2_FULL_NOSEC_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(H2_FULL_NOSEC_TEST_SRC))))
 
@@ -19419,7 +19419,7 @@
 
 
 H2_FULL+PIPE_NOSEC_TEST_SRC = \
-    test/core/end2end/fixtures/h2_full+pipe.c \
+    test/core/end2end/fixtures/h2_full+pipe.cc \
 
 H2_FULL+PIPE_NOSEC_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(H2_FULL+PIPE_NOSEC_TEST_SRC))))
 
@@ -19439,7 +19439,7 @@
 
 
 H2_FULL+TRACE_NOSEC_TEST_SRC = \
-    test/core/end2end/fixtures/h2_full+trace.c \
+    test/core/end2end/fixtures/h2_full+trace.cc \
 
 H2_FULL+TRACE_NOSEC_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(H2_FULL+TRACE_NOSEC_TEST_SRC))))
 
@@ -19459,7 +19459,7 @@
 
 
 H2_FULL+WORKAROUNDS_NOSEC_TEST_SRC = \
-    test/core/end2end/fixtures/h2_full+workarounds.c \
+    test/core/end2end/fixtures/h2_full+workarounds.cc \
 
 H2_FULL+WORKAROUNDS_NOSEC_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(H2_FULL+WORKAROUNDS_NOSEC_TEST_SRC))))
 
@@ -19479,7 +19479,7 @@
 
 
 H2_HTTP_PROXY_NOSEC_TEST_SRC = \
-    test/core/end2end/fixtures/h2_http_proxy.c \
+    test/core/end2end/fixtures/h2_http_proxy.cc \
 
 H2_HTTP_PROXY_NOSEC_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(H2_HTTP_PROXY_NOSEC_TEST_SRC))))
 
@@ -19499,7 +19499,7 @@
 
 
 H2_LOAD_REPORTING_NOSEC_TEST_SRC = \
-    test/core/end2end/fixtures/h2_load_reporting.c \
+    test/core/end2end/fixtures/h2_load_reporting.cc \
 
 H2_LOAD_REPORTING_NOSEC_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(H2_LOAD_REPORTING_NOSEC_TEST_SRC))))
 
@@ -19519,7 +19519,7 @@
 
 
 H2_PROXY_NOSEC_TEST_SRC = \
-    test/core/end2end/fixtures/h2_proxy.c \
+    test/core/end2end/fixtures/h2_proxy.cc \
 
 H2_PROXY_NOSEC_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(H2_PROXY_NOSEC_TEST_SRC))))
 
@@ -19539,7 +19539,7 @@
 
 
 H2_SOCKPAIR_NOSEC_TEST_SRC = \
-    test/core/end2end/fixtures/h2_sockpair.c \
+    test/core/end2end/fixtures/h2_sockpair.cc \
 
 H2_SOCKPAIR_NOSEC_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(H2_SOCKPAIR_NOSEC_TEST_SRC))))
 
@@ -19559,7 +19559,7 @@
 
 
 H2_SOCKPAIR+TRACE_NOSEC_TEST_SRC = \
-    test/core/end2end/fixtures/h2_sockpair+trace.c \
+    test/core/end2end/fixtures/h2_sockpair+trace.cc \
 
 H2_SOCKPAIR+TRACE_NOSEC_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(H2_SOCKPAIR+TRACE_NOSEC_TEST_SRC))))
 
@@ -19579,7 +19579,7 @@
 
 
 H2_SOCKPAIR_1BYTE_NOSEC_TEST_SRC = \
-    test/core/end2end/fixtures/h2_sockpair_1byte.c \
+    test/core/end2end/fixtures/h2_sockpair_1byte.cc \
 
 H2_SOCKPAIR_1BYTE_NOSEC_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(H2_SOCKPAIR_1BYTE_NOSEC_TEST_SRC))))
 
@@ -19599,7 +19599,7 @@
 
 
 H2_UDS_NOSEC_TEST_SRC = \
-    test/core/end2end/fixtures/h2_uds.c \
+    test/core/end2end/fixtures/h2_uds.cc \
 
 H2_UDS_NOSEC_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(H2_UDS_NOSEC_TEST_SRC))))
 
@@ -19619,7 +19619,7 @@
 
 
 INPROC_NOSEC_TEST_SRC = \
-    test/core/end2end/fixtures/inproc.c \
+    test/core/end2end/fixtures/inproc.cc \
 
 INPROC_NOSEC_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(INPROC_NOSEC_TEST_SRC))))
 
@@ -19811,7 +19811,7 @@
 
 
 API_FUZZER_ONE_ENTRY_SRC = \
-    test/core/end2end/fuzzers/api_fuzzer.c \
+    test/core/end2end/fuzzers/api_fuzzer.cc \
     test/core/util/one_corpus_entry_fuzzer.c \
 
 API_FUZZER_ONE_ENTRY_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(API_FUZZER_ONE_ENTRY_SRC))))
@@ -19846,7 +19846,7 @@
 
 
 CLIENT_FUZZER_ONE_ENTRY_SRC = \
-    test/core/end2end/fuzzers/client_fuzzer.c \
+    test/core/end2end/fuzzers/client_fuzzer.cc \
     test/core/util/one_corpus_entry_fuzzer.c \
 
 CLIENT_FUZZER_ONE_ENTRY_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CLIENT_FUZZER_ONE_ENTRY_SRC))))
@@ -19881,7 +19881,7 @@
 
 
 HPACK_PARSER_FUZZER_TEST_ONE_ENTRY_SRC = \
-    test/core/transport/chttp2/hpack_parser_fuzzer_test.c \
+    test/core/transport/chttp2/hpack_parser_fuzzer_test.cc \
     test/core/util/one_corpus_entry_fuzzer.c \
 
 HPACK_PARSER_FUZZER_TEST_ONE_ENTRY_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(HPACK_PARSER_FUZZER_TEST_ONE_ENTRY_SRC))))
@@ -19916,7 +19916,7 @@
 
 
 HTTP_REQUEST_FUZZER_TEST_ONE_ENTRY_SRC = \
-    test/core/http/request_fuzzer.c \
+    test/core/http/request_fuzzer.cc \
     test/core/util/one_corpus_entry_fuzzer.c \
 
 HTTP_REQUEST_FUZZER_TEST_ONE_ENTRY_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(HTTP_REQUEST_FUZZER_TEST_ONE_ENTRY_SRC))))
@@ -19951,7 +19951,7 @@
 
 
 HTTP_RESPONSE_FUZZER_TEST_ONE_ENTRY_SRC = \
-    test/core/http/response_fuzzer.c \
+    test/core/http/response_fuzzer.cc \
     test/core/util/one_corpus_entry_fuzzer.c \
 
 HTTP_RESPONSE_FUZZER_TEST_ONE_ENTRY_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(HTTP_RESPONSE_FUZZER_TEST_ONE_ENTRY_SRC))))
@@ -19986,7 +19986,7 @@
 
 
 JSON_FUZZER_TEST_ONE_ENTRY_SRC = \
-    test/core/json/fuzzer.c \
+    test/core/json/fuzzer.cc \
     test/core/util/one_corpus_entry_fuzzer.c \
 
 JSON_FUZZER_TEST_ONE_ENTRY_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(JSON_FUZZER_TEST_ONE_ENTRY_SRC))))
@@ -20021,7 +20021,7 @@
 
 
 NANOPB_FUZZER_RESPONSE_TEST_ONE_ENTRY_SRC = \
-    test/core/nanopb/fuzzer_response.c \
+    test/core/nanopb/fuzzer_response.cc \
     test/core/util/one_corpus_entry_fuzzer.c \
 
 NANOPB_FUZZER_RESPONSE_TEST_ONE_ENTRY_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(NANOPB_FUZZER_RESPONSE_TEST_ONE_ENTRY_SRC))))
@@ -20056,7 +20056,7 @@
 
 
 NANOPB_FUZZER_SERVERLIST_TEST_ONE_ENTRY_SRC = \
-    test/core/nanopb/fuzzer_serverlist.c \
+    test/core/nanopb/fuzzer_serverlist.cc \
     test/core/util/one_corpus_entry_fuzzer.c \
 
 NANOPB_FUZZER_SERVERLIST_TEST_ONE_ENTRY_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(NANOPB_FUZZER_SERVERLIST_TEST_ONE_ENTRY_SRC))))
@@ -20091,7 +20091,7 @@
 
 
 PERCENT_DECODE_FUZZER_ONE_ENTRY_SRC = \
-    test/core/slice/percent_decode_fuzzer.c \
+    test/core/slice/percent_decode_fuzzer.cc \
     test/core/util/one_corpus_entry_fuzzer.c \
 
 PERCENT_DECODE_FUZZER_ONE_ENTRY_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(PERCENT_DECODE_FUZZER_ONE_ENTRY_SRC))))
@@ -20126,7 +20126,7 @@
 
 
 PERCENT_ENCODE_FUZZER_ONE_ENTRY_SRC = \
-    test/core/slice/percent_encode_fuzzer.c \
+    test/core/slice/percent_encode_fuzzer.cc \
     test/core/util/one_corpus_entry_fuzzer.c \
 
 PERCENT_ENCODE_FUZZER_ONE_ENTRY_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(PERCENT_ENCODE_FUZZER_ONE_ENTRY_SRC))))
@@ -20161,7 +20161,7 @@
 
 
 SERVER_FUZZER_ONE_ENTRY_SRC = \
-    test/core/end2end/fuzzers/server_fuzzer.c \
+    test/core/end2end/fuzzers/server_fuzzer.cc \
     test/core/util/one_corpus_entry_fuzzer.c \
 
 SERVER_FUZZER_ONE_ENTRY_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(SERVER_FUZZER_ONE_ENTRY_SRC))))
@@ -20196,7 +20196,7 @@
 
 
 SSL_SERVER_FUZZER_ONE_ENTRY_SRC = \
-    test/core/security/ssl_server_fuzzer.c \
+    test/core/security/ssl_server_fuzzer.cc \
     test/core/util/one_corpus_entry_fuzzer.c \
 
 SSL_SERVER_FUZZER_ONE_ENTRY_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(SSL_SERVER_FUZZER_ONE_ENTRY_SRC))))
@@ -20231,7 +20231,7 @@
 
 
 URI_FUZZER_TEST_ONE_ENTRY_SRC = \
-    test/core/client_channel/uri_fuzzer_test.c \
+    test/core/client_channel/uri_fuzzer_test.cc \
     test/core/util/one_corpus_entry_fuzzer.c \
 
 URI_FUZZER_TEST_ONE_ENTRY_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(URI_FUZZER_TEST_ONE_ENTRY_SRC))))
@@ -20323,17 +20323,17 @@
 src/cpp/util/core_stats.cc: $(OPENSSL_DEP)
 src/cpp/util/error_details.cc: $(OPENSSL_DEP)
 src/csharp/ext/grpc_csharp_ext.c: $(OPENSSL_DEP)
-test/core/bad_client/bad_client.c: $(OPENSSL_DEP)
-test/core/bad_ssl/server_common.c: $(OPENSSL_DEP)
-test/core/end2end/data/client_certs.c: $(OPENSSL_DEP)
-test/core/end2end/data/server1_cert.c: $(OPENSSL_DEP)
-test/core/end2end/data/server1_key.c: $(OPENSSL_DEP)
-test/core/end2end/data/test_root_cert.c: $(OPENSSL_DEP)
-test/core/end2end/end2end_tests.c: $(OPENSSL_DEP)
-test/core/end2end/tests/call_creds.c: $(OPENSSL_DEP)
-test/core/security/oauth2_utils.c: $(OPENSSL_DEP)
-test/core/util/reconnect_server.c: $(OPENSSL_DEP)
-test/core/util/test_tcp_server.c: $(OPENSSL_DEP)
+test/core/bad_client/bad_client.cc: $(OPENSSL_DEP)
+test/core/bad_ssl/server_common.cc: $(OPENSSL_DEP)
+test/core/end2end/data/client_certs.cc: $(OPENSSL_DEP)
+test/core/end2end/data/server1_cert.cc: $(OPENSSL_DEP)
+test/core/end2end/data/server1_key.cc: $(OPENSSL_DEP)
+test/core/end2end/data/test_root_cert.cc: $(OPENSSL_DEP)
+test/core/end2end/end2end_tests.cc: $(OPENSSL_DEP)
+test/core/end2end/tests/call_creds.cc: $(OPENSSL_DEP)
+test/core/security/oauth2_utils.cc: $(OPENSSL_DEP)
+test/core/util/reconnect_server.cc: $(OPENSSL_DEP)
+test/core/util/test_tcp_server.cc: $(OPENSSL_DEP)
 test/cpp/end2end/test_service_impl.cc: $(OPENSSL_DEP)
 test/cpp/interop/client.cc: $(OPENSSL_DEP)
 test/cpp/interop/client_helper.cc: $(OPENSSL_DEP)
diff --git a/build.yaml b/build.yaml
index e2faa43..fe13947 100644
--- a/build.yaml
+++ b/build.yaml
@@ -739,20 +739,20 @@
   - test/core/util/trickle_endpoint.h
   src:
   - src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc
-  - test/core/end2end/cq_verifier.c
-  - test/core/end2end/fixtures/http_proxy_fixture.c
-  - test/core/end2end/fixtures/proxy.c
-  - test/core/iomgr/endpoint_tests.c
+  - test/core/end2end/cq_verifier.cc
+  - test/core/end2end/fixtures/http_proxy_fixture.cc
+  - test/core/end2end/fixtures/proxy.cc
+  - test/core/iomgr/endpoint_tests.cc
   - test/core/util/debugger_macros.cc
-  - test/core/util/grpc_profiler.c
-  - test/core/util/memory_counters.c
-  - test/core/util/mock_endpoint.c
-  - test/core/util/parse_hexstring.c
-  - test/core/util/passthru_endpoint.c
-  - test/core/util/port.c
-  - test/core/util/port_server_client.c
-  - test/core/util/slice_splitter.c
-  - test/core/util/trickle_endpoint.c
+  - test/core/util/grpc_profiler.cc
+  - test/core/util/memory_counters.cc
+  - test/core/util/mock_endpoint.cc
+  - test/core/util/parse_hexstring.cc
+  - test/core/util/passthru_endpoint.cc
+  - test/core/util/port.cc
+  - test/core/util/port_server_client.cc
+  - test/core/util/slice_splitter.cc
+  - test/core/util/trickle_endpoint.cc
   deps:
   - gpr_test_util
   - gpr
@@ -937,7 +937,7 @@
   headers:
   - test/core/tsi/transport_security_test_lib.h
   src:
-  - test/core/tsi/transport_security_test_lib.c
+  - test/core/tsi/transport_security_test_lib.cc
   deps:
   - grpc
 - name: tsi
@@ -1147,7 +1147,7 @@
   headers:
   - test/core/util/test_config.h
   src:
-  - test/core/util/test_config.c
+  - test/core/util/test_config.cc
   deps:
   - gpr
   secure: false
@@ -1233,11 +1233,11 @@
   - test/core/end2end/data/ssl_test_data.h
   - test/core/security/oauth2_utils.h
   src:
-  - test/core/end2end/data/client_certs.c
-  - test/core/end2end/data/server1_cert.c
-  - test/core/end2end/data/server1_key.c
-  - test/core/end2end/data/test_root_cert.c
-  - test/core/security/oauth2_utils.c
+  - test/core/end2end/data/client_certs.cc
+  - test/core/end2end/data/server1_cert.cc
+  - test/core/end2end/data/server1_key.cc
+  - test/core/end2end/data/test_root_cert.cc
+  - test/core/security/oauth2_utils.cc
   deps:
   - gpr_test_util
   - gpr
@@ -1293,7 +1293,7 @@
   headers:
   - test/core/util/reconnect_server.h
   src:
-  - test/core/util/reconnect_server.c
+  - test/core/util/reconnect_server.cc
   deps:
   - test_tcp_server
   - grpc_test_util
@@ -1306,7 +1306,7 @@
   headers:
   - test/core/util/test_tcp_server.h
   src:
-  - test/core/util/test_tcp_server.c
+  - test/core/util/test_tcp_server.cc
   deps:
   - grpc_test_util
   - grpc
@@ -1722,7 +1722,7 @@
   build: test
   language: c
   src:
-  - test/core/surface/alarm_test.c
+  - test/core/surface/alarm_test.cc
   deps:
   - grpc_test_util
   - grpc
@@ -1732,7 +1732,7 @@
   build: test
   language: c
   src:
-  - test/core/compression/algorithm_test.c
+  - test/core/compression/algorithm_test.cc
   deps:
   - grpc_test_util
   - grpc
@@ -1743,7 +1743,7 @@
   build: test
   language: c
   src:
-  - test/core/support/alloc_test.c
+  - test/core/support/alloc_test.cc
   deps:
   - gpr_test_util
   - gpr
@@ -1752,7 +1752,7 @@
   build: test
   language: c
   src:
-  - test/core/transport/chttp2/alpn_test.c
+  - test/core/transport/chttp2/alpn_test.cc
   deps:
   - grpc_test_util
   - grpc
@@ -1762,7 +1762,7 @@
   build: fuzzer
   language: c
   src:
-  - test/core/end2end/fuzzers/api_fuzzer.c
+  - test/core/end2end/fuzzers/api_fuzzer.cc
   deps:
   - grpc_test_util
   - grpc
@@ -1776,7 +1776,7 @@
   build: test
   language: c
   src:
-  - test/core/support/arena_test.c
+  - test/core/support/arena_test.cc
   deps:
   - gpr_test_util
   - gpr
@@ -1785,7 +1785,7 @@
   build: test
   language: c
   src:
-  - test/core/backoff/backoff_test.c
+  - test/core/backoff/backoff_test.cc
   deps:
   - grpc_test_util
   - grpc
@@ -1796,7 +1796,7 @@
   build: test
   language: c
   src:
-  - test/core/end2end/bad_server_response_test.c
+  - test/core/end2end/bad_server_response_test.cc
   deps:
   - test_tcp_server
   - grpc_test_util
@@ -1809,7 +1809,7 @@
   build: test
   language: c
   src:
-  - test/core/transport/chttp2/bin_decoder_test.c
+  - test/core/transport/chttp2/bin_decoder_test.cc
   deps:
   - grpc_test_util
   - grpc
@@ -1818,7 +1818,7 @@
   build: test
   language: c
   src:
-  - test/core/transport/chttp2/bin_encoder_test.c
+  - test/core/transport/chttp2/bin_encoder_test.cc
   deps:
   - grpc_test_util
   - grpc
@@ -1827,7 +1827,7 @@
   build: test
   language: c
   src:
-  - test/core/transport/byte_stream_test.c
+  - test/core/transport/byte_stream_test.cc
   deps:
   - grpc_test_util
   - grpc
@@ -1838,7 +1838,7 @@
   build: test
   language: c
   src:
-  - test/core/census/context_test.c
+  - test/core/census/context_test.cc
   deps:
   - grpc_test_util
   - grpc
@@ -1849,7 +1849,7 @@
   build: test
   language: c
   src:
-  - test/core/census/intrusive_hash_map_test.c
+  - test/core/census/intrusive_hash_map_test.cc
   deps:
   - grpc_test_util
   - grpc
@@ -1860,7 +1860,7 @@
   build: test
   language: c
   src:
-  - test/core/census/resource_test.c
+  - test/core/census/resource_test.cc
   deps:
   - grpc_test_util
   - grpc
@@ -1871,7 +1871,7 @@
   build: test
   language: c
   src:
-  - test/core/census/trace_context_test.c
+  - test/core/census/trace_context_test.cc
   deps:
   - grpc_test_util
   - grpc
@@ -1882,7 +1882,7 @@
   build: test
   language: c
   src:
-  - test/core/surface/channel_create_test.c
+  - test/core/surface/channel_create_test.cc
   deps:
   - grpc_test_util
   - grpc
@@ -1892,7 +1892,7 @@
   build: tool
   language: c
   src:
-  - test/build/check_epollexclusive.c
+  - test/build/check_epollexclusive.cc
   deps:
   - grpc
   - gpr
@@ -1900,7 +1900,7 @@
   build: test
   language: c
   src:
-  - test/core/transport/chttp2/hpack_encoder_test.c
+  - test/core/transport/chttp2/hpack_encoder_test.cc
   deps:
   - grpc_test_util
   - grpc
@@ -1911,7 +1911,7 @@
   build: test
   language: c
   src:
-  - test/core/transport/chttp2/stream_map_test.c
+  - test/core/transport/chttp2/stream_map_test.cc
   deps:
   - grpc_test_util
   - grpc
@@ -1922,7 +1922,7 @@
   build: test
   language: c
   src:
-  - test/core/transport/chttp2/varint_test.c
+  - test/core/transport/chttp2/varint_test.cc
   deps:
   - grpc_test_util
   - grpc
@@ -1933,7 +1933,7 @@
   build: fuzzer
   language: c
   src:
-  - test/core/end2end/fuzzers/client_fuzzer.c
+  - test/core/end2end/fuzzers/client_fuzzer.cc
   deps:
   - grpc_test_util
   - grpc
@@ -1948,7 +1948,7 @@
   build: test
   language: c
   src:
-  - test/core/iomgr/combiner_test.c
+  - test/core/iomgr/combiner_test.cc
   deps:
   - grpc_test_util
   - grpc
@@ -1958,7 +1958,7 @@
   build: test
   language: c
   src:
-  - test/core/compression/compression_test.c
+  - test/core/compression/compression_test.cc
   deps:
   - grpc_test_util
   - grpc
@@ -1970,7 +1970,7 @@
   build: test
   language: c
   src:
-  - test/core/surface/concurrent_connectivity_test.c
+  - test/core/surface/concurrent_connectivity_test.cc
   deps:
   - grpc_test_util
   - grpc
@@ -1983,7 +1983,7 @@
   build: test
   language: c
   src:
-  - test/core/end2end/connection_refused_test.c
+  - test/core/end2end/connection_refused_test.cc
   deps:
   - grpc_test_util
   - grpc
@@ -1994,7 +1994,7 @@
   build: test
   language: c
   src:
-  - test/core/client_channel/resolvers/dns_resolver_connectivity_test.c
+  - test/core/client_channel/resolvers/dns_resolver_connectivity_test.cc
   deps:
   - grpc_test_util
   - grpc
@@ -2006,7 +2006,7 @@
   build: test
   language: c
   src:
-  - test/core/client_channel/resolvers/dns_resolver_test.c
+  - test/core/client_channel/resolvers/dns_resolver_test.cc
   deps:
   - grpc_test_util
   - grpc
@@ -2017,7 +2017,7 @@
   build: test
   language: c
   src:
-  - test/core/end2end/dualstack_socket_test.c
+  - test/core/end2end/dualstack_socket_test.cc
   deps:
   - grpc_test_util
   - grpc
@@ -2033,7 +2033,7 @@
   build: test
   language: c
   src:
-  - test/core/iomgr/endpoint_pair_test.c
+  - test/core/iomgr/endpoint_pair_test.cc
   deps:
   - grpc_test_util
   - grpc
@@ -2046,7 +2046,7 @@
   build: test
   language: c
   src:
-  - test/core/iomgr/error_test.c
+  - test/core/iomgr/error_test.cc
   deps:
   - grpc_test_util
   - grpc
@@ -2058,7 +2058,7 @@
   build: test
   language: c
   src:
-  - test/core/iomgr/ev_epollsig_linux_test.c
+  - test/core/iomgr/ev_epollsig_linux_test.cc
   deps:
   - grpc_test_util
   - grpc
@@ -2072,7 +2072,7 @@
   build: test
   language: c
   src:
-  - test/core/client_channel/resolvers/fake_resolver_test.c
+  - test/core/client_channel/resolvers/fake_resolver_test.cc
   deps:
   - grpc_test_util
   - grpc
@@ -2082,7 +2082,7 @@
   build: test
   language: c
   src:
-  - test/core/tsi/fake_transport_security_test.c
+  - test/core/tsi/fake_transport_security_test.cc
   deps:
   - gpr_test_util
   - gpr
@@ -2097,7 +2097,7 @@
   build: test
   language: c
   src:
-  - test/core/iomgr/fd_conservation_posix_test.c
+  - test/core/iomgr/fd_conservation_posix_test.cc
   deps:
   - grpc_test_util
   - grpc
@@ -2113,7 +2113,7 @@
   build: test
   language: c
   src:
-  - test/core/iomgr/fd_posix_test.c
+  - test/core/iomgr/fd_posix_test.cc
   deps:
   - grpc_test_util
   - grpc
@@ -2130,7 +2130,7 @@
   run: false
   language: c
   src:
-  - test/core/fling/client.c
+  - test/core/fling/client.cc
   deps:
   - grpc_test_util
   - grpc
@@ -2141,7 +2141,7 @@
   run: false
   language: c
   src:
-  - test/core/fling/server.c
+  - test/core/fling/server.cc
   deps:
   - grpc_test_util
   - grpc
@@ -2152,7 +2152,7 @@
   build: test
   language: c
   src:
-  - test/core/fling/fling_stream_test.c
+  - test/core/fling/fling_stream_test.cc
   deps:
   - grpc_test_util
   - grpc
@@ -2167,7 +2167,7 @@
   build: test
   language: c
   src:
-  - test/core/fling/fling_test.c
+  - test/core/fling/fling_test.cc
   deps:
   - grpc_test_util
   - grpc
@@ -2204,7 +2204,7 @@
   build: test
   language: c
   src:
-  - test/core/end2end/goaway_server_test.c
+  - test/core/end2end/goaway_server_test.cc
   deps:
   - grpc_test_util
   - grpc
@@ -2220,7 +2220,7 @@
   build: test
   language: c
   src:
-  - test/core/support/avl_test.c
+  - test/core/support/avl_test.cc
   deps:
   - gpr_test_util
   - gpr
@@ -2229,7 +2229,7 @@
   build: test
   language: c
   src:
-  - test/core/support/cmdline_test.c
+  - test/core/support/cmdline_test.cc
   deps:
   - gpr_test_util
   - gpr
@@ -2239,7 +2239,7 @@
   build: test
   language: c
   src:
-  - test/core/support/cpu_test.c
+  - test/core/support/cpu_test.cc
   deps:
   - gpr_test_util
   - gpr
@@ -2248,7 +2248,7 @@
   build: test
   language: c
   src:
-  - test/core/support/env_test.c
+  - test/core/support/env_test.cc
   deps:
   - gpr_test_util
   - gpr
@@ -2257,7 +2257,7 @@
   build: test
   language: c
   src:
-  - test/core/support/histogram_test.c
+  - test/core/support/histogram_test.cc
   deps:
   - gpr_test_util
   - gpr
@@ -2266,7 +2266,7 @@
   build: test
   language: c
   src:
-  - test/core/support/host_port_test.c
+  - test/core/support/host_port_test.cc
   deps:
   - gpr_test_util
   - gpr
@@ -2275,7 +2275,7 @@
   build: test
   language: c
   src:
-  - test/core/support/log_test.c
+  - test/core/support/log_test.cc
   deps:
   - gpr_test_util
   - gpr
@@ -2285,7 +2285,7 @@
   build: test
   language: c
   src:
-  - test/core/support/mpscq_test.c
+  - test/core/support/mpscq_test.cc
   deps:
   - gpr_test_util
   - gpr
@@ -2295,7 +2295,7 @@
   build: test
   language: c
   src:
-  - test/core/support/spinlock_test.c
+  - test/core/support/spinlock_test.cc
   deps:
   - gpr_test_util
   - gpr
@@ -2305,7 +2305,7 @@
   build: test
   language: c
   src:
-  - test/core/support/stack_lockfree_test.c
+  - test/core/support/stack_lockfree_test.cc
   deps:
   - gpr_test_util
   - gpr
@@ -2314,7 +2314,7 @@
   build: test
   language: c
   src:
-  - test/core/support/string_test.c
+  - test/core/support/string_test.cc
   deps:
   - gpr_test_util
   - gpr
@@ -2324,7 +2324,7 @@
   build: test
   language: c
   src:
-  - test/core/support/sync_test.c
+  - test/core/support/sync_test.cc
   deps:
   - gpr_test_util
   - gpr
@@ -2334,7 +2334,7 @@
   build: test
   language: c
   src:
-  - test/core/support/thd_test.c
+  - test/core/support/thd_test.cc
   deps:
   - gpr_test_util
   - gpr
@@ -2343,7 +2343,7 @@
   build: test
   language: c
   src:
-  - test/core/support/time_test.c
+  - test/core/support/time_test.cc
   deps:
   - gpr_test_util
   - gpr
@@ -2352,7 +2352,7 @@
   build: test
   language: c
   src:
-  - test/core/support/tls_test.c
+  - test/core/support/tls_test.cc
   deps:
   - gpr_test_util
   - gpr
@@ -2361,7 +2361,7 @@
   build: test
   language: c
   src:
-  - test/core/support/useful_test.c
+  - test/core/support/useful_test.cc
   deps:
   - gpr_test_util
   - gpr
@@ -2370,7 +2370,7 @@
   build: test
   language: c
   src:
-  - test/core/security/auth_context_test.c
+  - test/core/security/auth_context_test.cc
   deps:
   - grpc_test_util
   - grpc
@@ -2381,7 +2381,7 @@
   build: test
   language: c
   src:
-  - test/core/slice/b64_test.c
+  - test/core/slice/b64_test.cc
   deps:
   - grpc_test_util
   - grpc
@@ -2392,7 +2392,7 @@
   build: test
   language: c
   src:
-  - test/core/surface/byte_buffer_reader_test.c
+  - test/core/surface/byte_buffer_reader_test.cc
   deps:
   - grpc_test_util
   - grpc
@@ -2403,7 +2403,7 @@
   build: test
   language: c
   src:
-  - test/core/channel/channel_args_test.c
+  - test/core/channel/channel_args_test.cc
   deps:
   - grpc_test_util
   - grpc
@@ -2414,7 +2414,7 @@
   build: test
   language: c
   src:
-  - test/core/channel/channel_stack_builder_test.c
+  - test/core/channel/channel_stack_builder_test.cc
   deps:
   - grpc_test_util
   - grpc
@@ -2424,7 +2424,7 @@
   build: test
   language: c
   src:
-  - test/core/channel/channel_stack_test.c
+  - test/core/channel/channel_stack_test.cc
   deps:
   - grpc_test_util
   - grpc
@@ -2435,7 +2435,7 @@
   build: test
   language: c
   src:
-  - test/core/surface/completion_queue_test.c
+  - test/core/surface/completion_queue_test.cc
   deps:
   - grpc_test_util
   - grpc
@@ -2445,7 +2445,7 @@
   build: test
   language: c
   src:
-  - test/core/surface/completion_queue_threading_test.c
+  - test/core/surface/completion_queue_threading_test.cc
   deps:
   - grpc_test_util
   - grpc
@@ -2457,7 +2457,7 @@
   build: tool
   language: c
   src:
-  - test/core/security/create_jwt.c
+  - test/core/security/create_jwt.cc
   deps:
   - grpc
   - gpr
@@ -2467,7 +2467,7 @@
   build: test
   language: c
   src:
-  - test/core/security/credentials_test.c
+  - test/core/security/credentials_test.cc
   deps:
   - grpc_test_util
   - grpc
@@ -2478,7 +2478,7 @@
   run: false
   language: c
   src:
-  - test/core/security/fetch_oauth2.c
+  - test/core/security/fetch_oauth2.cc
   deps:
   - grpc_test_util
   - grpc
@@ -2488,7 +2488,7 @@
   build: test
   language: c
   src:
-  - test/core/surface/invalid_channel_args_test.c
+  - test/core/surface/invalid_channel_args_test.cc
   deps:
   - grpc_test_util
   - grpc
@@ -2499,7 +2499,7 @@
   build: test
   language: c
   src:
-  - test/core/security/json_token_test.c
+  - test/core/security/json_token_test.cc
   deps:
   - grpc_test_util
   - grpc
@@ -2514,7 +2514,7 @@
   build: test
   language: c
   src:
-  - test/core/security/jwt_verifier_test.c
+  - test/core/security/jwt_verifier_test.cc
   deps:
   - grpc_test_util
   - grpc
@@ -2525,7 +2525,7 @@
   build: tool
   language: c
   src:
-  - test/core/security/print_google_default_creds_token.c
+  - test/core/security/print_google_default_creds_token.cc
   deps:
   - grpc
   - gpr
@@ -2534,7 +2534,7 @@
   build: test
   language: c
   src:
-  - test/core/security/security_connector_test.c
+  - test/core/security/security_connector_test.cc
   deps:
   - grpc_test_util
   - grpc
@@ -2544,7 +2544,7 @@
   build: tool
   language: c
   src:
-  - test/core/security/verify_jwt.c
+  - test/core/security/verify_jwt.cc
   deps:
   - grpc
   - gpr
@@ -2553,7 +2553,7 @@
   build: test
   language: c
   src:
-  - test/core/handshake/client_ssl.c
+  - test/core/handshake/client_ssl.cc
   deps:
   - grpc_test_util
   - grpc
@@ -2568,7 +2568,7 @@
   build: test
   language: c
   src:
-  - test/core/handshake/server_ssl.c
+  - test/core/handshake/server_ssl.cc
   deps:
   - grpc_test_util
   - grpc
@@ -2583,7 +2583,7 @@
   build: fuzzer
   language: c
   src:
-  - test/core/transport/chttp2/hpack_parser_fuzzer_test.c
+  - test/core/transport/chttp2/hpack_parser_fuzzer_test.cc
   deps:
   - grpc_test_util
   - grpc
@@ -2597,7 +2597,7 @@
   build: test
   language: c
   src:
-  - test/core/transport/chttp2/hpack_parser_test.c
+  - test/core/transport/chttp2/hpack_parser_test.cc
   deps:
   - grpc_test_util
   - grpc
@@ -2608,7 +2608,7 @@
   build: test
   language: c
   src:
-  - test/core/transport/chttp2/hpack_table_test.c
+  - test/core/transport/chttp2/hpack_table_test.cc
   deps:
   - grpc_test_util
   - grpc
@@ -2619,7 +2619,7 @@
   build: test
   language: c
   src:
-  - test/core/http/parser_test.c
+  - test/core/http/parser_test.cc
   deps:
   - grpc_test_util
   - grpc
@@ -2630,7 +2630,7 @@
   build: fuzzer
   language: c
   src:
-  - test/core/http/request_fuzzer.c
+  - test/core/http/request_fuzzer.cc
   deps:
   - grpc_test_util
   - grpc
@@ -2643,7 +2643,7 @@
   build: fuzzer
   language: c
   src:
-  - test/core/http/response_fuzzer.c
+  - test/core/http/response_fuzzer.cc
   deps:
   - grpc_test_util
   - grpc
@@ -2656,7 +2656,7 @@
   build: test
   language: c
   src:
-  - test/core/http/format_request_test.c
+  - test/core/http/format_request_test.cc
   deps:
   - grpc_test_util
   - grpc
@@ -2667,7 +2667,7 @@
   build: test
   language: c
   src:
-  - test/core/http/httpcli_test.c
+  - test/core/http/httpcli_test.cc
   deps:
   - grpc_test_util
   - grpc
@@ -2682,7 +2682,7 @@
   build: test
   language: c
   src:
-  - test/core/http/httpscli_test.c
+  - test/core/http/httpscli_test.cc
   deps:
   - grpc_test_util
   - grpc
@@ -2694,7 +2694,7 @@
   build: test
   language: c
   src:
-  - test/core/surface/init_test.c
+  - test/core/surface/init_test.cc
   deps:
   - grpc_test_util
   - grpc
@@ -2706,7 +2706,7 @@
   build: test
   language: c
   src:
-  - test/core/end2end/invalid_call_argument_test.c
+  - test/core/end2end/invalid_call_argument_test.cc
   deps:
   - grpc_test_util
   - grpc
@@ -2716,7 +2716,7 @@
   build: fuzzer
   language: c
   src:
-  - test/core/json/fuzzer.c
+  - test/core/json/fuzzer.cc
   deps:
   - grpc_test_util
   - grpc
@@ -2730,7 +2730,7 @@
   run: false
   language: c
   src:
-  - test/core/json/json_rewrite.c
+  - test/core/json/json_rewrite.cc
   deps:
   - grpc
   - gpr
@@ -2739,7 +2739,7 @@
   build: test
   language: c
   src:
-  - test/core/json/json_rewrite_test.c
+  - test/core/json/json_rewrite_test.cc
   deps:
   - grpc_test_util
   - grpc
@@ -2750,7 +2750,7 @@
   build: test
   language: c
   src:
-  - test/core/json/json_stream_error_test.c
+  - test/core/json/json_stream_error_test.cc
   deps:
   - grpc_test_util
   - grpc
@@ -2761,7 +2761,7 @@
   build: test
   language: c
   src:
-  - test/core/json/json_test.c
+  - test/core/json/json_test.cc
   deps:
   - grpc_test_util
   - grpc
@@ -2772,7 +2772,7 @@
   build: test
   language: c
   src:
-  - test/core/surface/lame_client_test.c
+  - test/core/surface/lame_client_test.cc
   deps:
   - grpc_test_util
   - grpc
@@ -2784,7 +2784,7 @@
   run: false
   language: c
   src:
-  - test/core/client_channel/lb_policies_test.c
+  - test/core/client_channel/lb_policies_test.cc
   deps:
   - grpc_test_util
   - grpc
@@ -2795,7 +2795,7 @@
   build: test
   language: c
   src:
-  - test/core/iomgr/load_file_test.c
+  - test/core/iomgr/load_file_test.cc
   deps:
   - grpc_test_util
   - grpc
@@ -2806,7 +2806,7 @@
   build: benchmark
   language: c
   src:
-  - test/core/network_benchmarks/low_level_ping_pong.c
+  - test/core/network_benchmarks/low_level_ping_pong.cc
   deps:
   - grpc_test_util
   - grpc
@@ -2821,7 +2821,7 @@
   run: false
   language: c
   src:
-  - test/core/memory_usage/client.c
+  - test/core/memory_usage/client.cc
   deps:
   - grpc_test_util
   - grpc
@@ -2833,7 +2833,7 @@
   run: false
   language: c
   src:
-  - test/core/memory_usage/server.c
+  - test/core/memory_usage/server.cc
   deps:
   - grpc_test_util
   - grpc
@@ -2844,7 +2844,7 @@
   build: test
   language: c
   src:
-  - test/core/memory_usage/memory_usage_test.c
+  - test/core/memory_usage/memory_usage_test.cc
   deps:
   - grpc_test_util
   - grpc
@@ -2858,7 +2858,7 @@
   build: test
   language: c
   src:
-  - test/core/compression/message_compress_test.c
+  - test/core/compression/message_compress_test.cc
   deps:
   - grpc_test_util
   - grpc
@@ -2869,7 +2869,7 @@
   build: test
   language: c
   src:
-  - test/core/channel/minimal_stack_is_minimal_test.c
+  - test/core/channel/minimal_stack_is_minimal_test.cc
   deps:
   - grpc_test_util
   - grpc
@@ -2881,7 +2881,7 @@
   build: test
   language: c
   src:
-  - test/core/census/mlog_test.c
+  - test/core/census/mlog_test.cc
   deps:
   - grpc_test_util
   - grpc
@@ -2892,7 +2892,7 @@
   build: test
   language: c
   src:
-  - test/core/end2end/multiple_server_queues_test.c
+  - test/core/end2end/multiple_server_queues_test.cc
   deps:
   - grpc_test_util
   - grpc
@@ -2902,7 +2902,7 @@
   build: test
   language: c
   src:
-  - test/core/support/murmur_hash_test.c
+  - test/core/support/murmur_hash_test.cc
   deps:
   - gpr_test_util
   - gpr
@@ -2911,7 +2911,7 @@
   build: fuzzer
   language: c
   src:
-  - test/core/nanopb/fuzzer_response.c
+  - test/core/nanopb/fuzzer_response.cc
   deps:
   - grpc_test_util
   - grpc
@@ -2924,7 +2924,7 @@
   build: fuzzer
   language: c
   src:
-  - test/core/nanopb/fuzzer_serverlist.c
+  - test/core/nanopb/fuzzer_serverlist.cc
   deps:
   - grpc_test_util
   - grpc
@@ -2938,7 +2938,7 @@
   build: test
   language: c
   src:
-  - test/core/end2end/no_server_test.c
+  - test/core/end2end/no_server_test.cc
   deps:
   - grpc_test_util
   - grpc
@@ -2948,7 +2948,7 @@
   build: test
   language: c
   src:
-  - test/core/surface/num_external_connectivity_watchers_test.c
+  - test/core/surface/num_external_connectivity_watchers_test.cc
   deps:
   - grpc_test_util
   - grpc
@@ -2960,7 +2960,7 @@
   build: test
   language: c
   src:
-  - test/core/client_channel/parse_address_test.c
+  - test/core/client_channel/parse_address_test.cc
   deps:
   - grpc_test_util
   - grpc
@@ -2971,7 +2971,7 @@
   build: fuzzer
   language: c
   src:
-  - test/core/slice/percent_decode_fuzzer.c
+  - test/core/slice/percent_decode_fuzzer.cc
   deps:
   - grpc_test_util
   - grpc
@@ -2984,7 +2984,7 @@
   build: fuzzer
   language: c
   src:
-  - test/core/slice/percent_encode_fuzzer.c
+  - test/core/slice/percent_encode_fuzzer.cc
   deps:
   - grpc_test_util
   - grpc
@@ -2997,7 +2997,7 @@
   build: test
   language: c
   src:
-  - test/core/slice/percent_encoding_test.c
+  - test/core/slice/percent_encoding_test.cc
   deps:
   - grpc_test_util
   - grpc
@@ -3008,7 +3008,7 @@
   build: test
   language: c
   src:
-  - test/core/iomgr/pollset_set_test.c
+  - test/core/iomgr/pollset_set_test.cc
   deps:
   - grpc_test_util
   - grpc
@@ -3022,7 +3022,7 @@
   build: test
   language: c
   src:
-  - test/core/iomgr/resolve_address_posix_test.c
+  - test/core/iomgr/resolve_address_posix_test.cc
   deps:
   - grpc_test_util
   - grpc
@@ -3038,7 +3038,7 @@
   build: test
   language: c
   src:
-  - test/core/iomgr/resolve_address_test.c
+  - test/core/iomgr/resolve_address_test.cc
   deps:
   - grpc_test_util
   - grpc
@@ -3049,7 +3049,7 @@
   build: test
   language: c
   src:
-  - test/core/iomgr/resource_quota_test.c
+  - test/core/iomgr/resource_quota_test.cc
   deps:
   - grpc_test_util
   - grpc
@@ -3059,7 +3059,7 @@
   build: test
   language: c
   src:
-  - test/core/surface/secure_channel_create_test.c
+  - test/core/surface/secure_channel_create_test.cc
   deps:
   - grpc_test_util
   - grpc
@@ -3069,7 +3069,7 @@
   build: test
   language: c
   src:
-  - test/core/security/secure_endpoint_test.c
+  - test/core/security/secure_endpoint_test.cc
   deps:
   - grpc_test_util
   - grpc
@@ -3081,7 +3081,7 @@
   build: test
   language: c
   src:
-  - test/core/surface/sequential_connectivity_test.c
+  - test/core/surface/sequential_connectivity_test.cc
   deps:
   - grpc_test_util
   - grpc
@@ -3093,7 +3093,7 @@
   build: test
   language: c
   src:
-  - test/core/surface/server_chttp2_test.c
+  - test/core/surface/server_chttp2_test.cc
   deps:
   - grpc_test_util
   - grpc
@@ -3103,7 +3103,7 @@
   build: fuzzer
   language: c
   src:
-  - test/core/end2end/fuzzers/server_fuzzer.c
+  - test/core/end2end/fuzzers/server_fuzzer.cc
   deps:
   - grpc_test_util
   - grpc
@@ -3117,7 +3117,7 @@
   build: test
   language: c
   src:
-  - test/core/surface/server_test.c
+  - test/core/surface/server_test.cc
   deps:
   - grpc_test_util
   - grpc
@@ -3127,7 +3127,7 @@
   build: test
   language: c
   src:
-  - test/core/slice/slice_buffer_test.c
+  - test/core/slice/slice_buffer_test.cc
   deps:
   - grpc_test_util
   - grpc
@@ -3138,7 +3138,7 @@
   build: test
   language: c
   src:
-  - test/core/slice/slice_hash_table_test.c
+  - test/core/slice/slice_hash_table_test.cc
   deps:
   - grpc_test_util
   - grpc
@@ -3149,7 +3149,7 @@
   build: test
   language: c
   src:
-  - test/core/slice/slice_string_helpers_test.c
+  - test/core/slice/slice_string_helpers_test.cc
   deps:
   - grpc_test_util
   - grpc
@@ -3160,7 +3160,7 @@
   build: test
   language: c
   src:
-  - test/core/slice/slice_test.c
+  - test/core/slice/slice_test.cc
   deps:
   - grpc_test_util
   - grpc
@@ -3171,7 +3171,7 @@
   build: test
   language: c
   src:
-  - test/core/client_channel/resolvers/sockaddr_resolver_test.c
+  - test/core/client_channel/resolvers/sockaddr_resolver_test.cc
   deps:
   - grpc_test_util
   - grpc
@@ -3181,7 +3181,7 @@
   build: test
   language: c
   src:
-  - test/core/iomgr/sockaddr_utils_test.c
+  - test/core/iomgr/sockaddr_utils_test.cc
   deps:
   - grpc_test_util
   - grpc
@@ -3191,7 +3191,7 @@
   build: test
   language: c
   src:
-  - test/core/iomgr/socket_utils_test.c
+  - test/core/iomgr/socket_utils_test.cc
   deps:
   - grpc_test_util
   - grpc
@@ -3207,7 +3207,7 @@
   build: fuzzer
   language: c
   src:
-  - test/core/security/ssl_server_fuzzer.c
+  - test/core/security/ssl_server_fuzzer.cc
   deps:
   - grpc_test_util
   - grpc
@@ -3220,7 +3220,7 @@
   build: test
   language: c
   src:
-  - test/core/tsi/ssl_transport_security_test.c
+  - test/core/tsi/ssl_transport_security_test.cc
   deps:
   - gpr_test_util
   - gpr
@@ -3235,7 +3235,7 @@
   build: test
   language: c
   src:
-  - test/core/transport/status_conversion_test.c
+  - test/core/transport/status_conversion_test.cc
   deps:
   - grpc_test_util
   - grpc
@@ -3246,7 +3246,7 @@
   build: test
   language: c
   src:
-  - test/core/compression/stream_compression_test.c
+  - test/core/compression/stream_compression_test.cc
   deps:
   - grpc_test_util
   - grpc
@@ -3257,7 +3257,7 @@
   build: test
   language: c
   src:
-  - test/core/transport/stream_owned_slice_test.c
+  - test/core/transport/stream_owned_slice_test.cc
   deps:
   - grpc_test_util
   - grpc
@@ -3269,7 +3269,7 @@
   build: test
   language: c
   src:
-  - test/core/iomgr/tcp_client_posix_test.c
+  - test/core/iomgr/tcp_client_posix_test.cc
   deps:
   - grpc_test_util
   - grpc
@@ -3286,7 +3286,7 @@
   build: test
   language: c
   src:
-  - test/core/iomgr/tcp_client_uv_test.c
+  - test/core/iomgr/tcp_client_uv_test.cc
   deps:
   - grpc_test_util
   - grpc
@@ -3299,7 +3299,7 @@
   build: test
   language: c
   src:
-  - test/core/iomgr/tcp_posix_test.c
+  - test/core/iomgr/tcp_posix_test.cc
   deps:
   - grpc_test_util
   - grpc
@@ -3315,7 +3315,7 @@
   build: test
   language: c
   src:
-  - test/core/iomgr/tcp_server_posix_test.c
+  - test/core/iomgr/tcp_server_posix_test.cc
   deps:
   - grpc_test_util
   - grpc
@@ -3331,7 +3331,7 @@
   build: test
   language: c
   src:
-  - test/core/iomgr/tcp_server_uv_test.c
+  - test/core/iomgr/tcp_server_uv_test.cc
   deps:
   - grpc_test_util
   - grpc
@@ -3343,7 +3343,7 @@
   build: test
   language: c
   src:
-  - test/core/iomgr/time_averaged_stats_test.c
+  - test/core/iomgr/time_averaged_stats_test.cc
   deps:
   - grpc_test_util
   - grpc
@@ -3354,7 +3354,7 @@
   build: test
   language: c
   src:
-  - test/core/transport/timeout_encoding_test.c
+  - test/core/transport/timeout_encoding_test.cc
   deps:
   - grpc_test_util
   - grpc
@@ -3365,7 +3365,7 @@
   build: test
   language: c
   src:
-  - test/core/iomgr/timer_heap_test.c
+  - test/core/iomgr/timer_heap_test.cc
   deps:
   - grpc_test_util
   - grpc
@@ -3378,7 +3378,7 @@
   build: test
   language: c
   src:
-  - test/core/iomgr/timer_list_test.c
+  - test/core/iomgr/timer_list_test.cc
   deps:
   - grpc_test_util
   - grpc
@@ -3391,7 +3391,7 @@
   build: test
   language: c
   src:
-  - test/core/transport/connectivity_state_test.c
+  - test/core/transport/connectivity_state_test.cc
   deps:
   - grpc_test_util
   - grpc
@@ -3401,7 +3401,7 @@
   build: test
   language: c
   src:
-  - test/core/transport/metadata_test.c
+  - test/core/transport/metadata_test.cc
   deps:
   - grpc_test_util
   - grpc
@@ -3411,7 +3411,7 @@
   build: test
   language: c
   src:
-  - test/core/tsi/transport_security_test.c
+  - test/core/tsi/transport_security_test.cc
   deps:
   - grpc_test_util
   - grpc
@@ -3425,7 +3425,7 @@
   build: test
   language: c
   src:
-  - test/core/iomgr/udp_server_test.c
+  - test/core/iomgr/udp_server_test.cc
   deps:
   - grpc_test_util
   - grpc
@@ -3441,7 +3441,7 @@
   build: fuzzer
   language: c
   src:
-  - test/core/client_channel/uri_fuzzer_test.c
+  - test/core/client_channel/uri_fuzzer_test.cc
   deps:
   - grpc_test_util
   - grpc
@@ -3454,7 +3454,7 @@
   build: test
   language: c
   src:
-  - test/core/client_channel/uri_parser_test.c
+  - test/core/client_channel/uri_parser_test.cc
   deps:
   - grpc_test_util
   - grpc
@@ -3464,7 +3464,7 @@
   build: test
   language: c
   src:
-  - test/core/iomgr/wakeup_fd_cv_test.c
+  - test/core/iomgr/wakeup_fd_cv_test.cc
   deps:
   - grpc_test_util
   - grpc
diff --git a/gRPC-Core.podspec b/gRPC-Core.podspec
index a9b451e..2074323 100644
--- a/gRPC-Core.podspec
+++ b/gRPC-Core.podspec
@@ -1001,17 +1001,17 @@
     ss.dependency "#{s.name}/Interface", version
     ss.dependency "#{s.name}/Implementation", version
 
-    ss.source_files = 'test/core/end2end/cq_verifier.{c,h}',
-                      'test/core/end2end/end2end_tests.{c,h}',
-                      'test/core/end2end/end2end_test_utils.c',
-                      'test/core/end2end/tests/*.{c,h}',
+    ss.source_files = 'test/core/end2end/cq_verifier.{cc,h}',
+                      'test/core/end2end/end2end_tests.{cc,h}',
+                      'test/core/end2end/end2end_test_utils.cc',
+                      'test/core/end2end/tests/*.{cc,h}',
                       'test/core/end2end/fixtures/*.h',
-                      'test/core/end2end/data/*.{c,h}',
-                      'test/core/util/debugger_macros.{c,h}',
-                      'test/core/util/test_config.{c,h}',
+                      'test/core/end2end/data/*.{cc,h}',
+                      'test/core/util/debugger_macros.{cc,h}',
+                      'test/core/util/test_config.{cc,h}',
                       'test/core/util/port.h',
-                      'test/core/util/port.c',
-                      'test/core/util/port_server_client.{c,h}'
+                      'test/core/util/port.cc',
+                      'test/core/util/port_server_client.{cc,h}'
   end
 
   # TODO (mxyan): Instead of this hack, add include path "third_party" to C core's include path?
diff --git a/grpc.gyp b/grpc.gyp
index 487d529..6e2fc9d 100644
--- a/grpc.gyp
+++ b/grpc.gyp
@@ -215,7 +215,7 @@
         'gpr',
       ],
       'sources': [
-        'test/core/util/test_config.c',
+        'test/core/util/test_config.cc',
       ],
     },
     {
@@ -508,26 +508,26 @@
         'grpc',
       ],
       'sources': [
-        'test/core/end2end/data/client_certs.c',
-        'test/core/end2end/data/server1_cert.c',
-        'test/core/end2end/data/server1_key.c',
-        'test/core/end2end/data/test_root_cert.c',
-        'test/core/security/oauth2_utils.c',
+        'test/core/end2end/data/client_certs.cc',
+        'test/core/end2end/data/server1_cert.cc',
+        'test/core/end2end/data/server1_key.cc',
+        'test/core/end2end/data/test_root_cert.cc',
+        'test/core/security/oauth2_utils.cc',
         'src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc',
-        'test/core/end2end/cq_verifier.c',
-        'test/core/end2end/fixtures/http_proxy_fixture.c',
-        'test/core/end2end/fixtures/proxy.c',
-        'test/core/iomgr/endpoint_tests.c',
+        'test/core/end2end/cq_verifier.cc',
+        'test/core/end2end/fixtures/http_proxy_fixture.cc',
+        'test/core/end2end/fixtures/proxy.cc',
+        'test/core/iomgr/endpoint_tests.cc',
         'test/core/util/debugger_macros.cc',
-        'test/core/util/grpc_profiler.c',
-        'test/core/util/memory_counters.c',
-        'test/core/util/mock_endpoint.c',
-        'test/core/util/parse_hexstring.c',
-        'test/core/util/passthru_endpoint.c',
-        'test/core/util/port.c',
-        'test/core/util/port_server_client.c',
-        'test/core/util/slice_splitter.c',
-        'test/core/util/trickle_endpoint.c',
+        'test/core/util/grpc_profiler.cc',
+        'test/core/util/memory_counters.cc',
+        'test/core/util/mock_endpoint.cc',
+        'test/core/util/parse_hexstring.cc',
+        'test/core/util/passthru_endpoint.cc',
+        'test/core/util/port.cc',
+        'test/core/util/port_server_client.cc',
+        'test/core/util/slice_splitter.cc',
+        'test/core/util/trickle_endpoint.cc',
         'src/core/lib/backoff/backoff.cc',
         'src/core/lib/channel/channel_args.cc',
         'src/core/lib/channel/channel_stack.cc',
@@ -721,20 +721,20 @@
       ],
       'sources': [
         'src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc',
-        'test/core/end2end/cq_verifier.c',
-        'test/core/end2end/fixtures/http_proxy_fixture.c',
-        'test/core/end2end/fixtures/proxy.c',
-        'test/core/iomgr/endpoint_tests.c',
+        'test/core/end2end/cq_verifier.cc',
+        'test/core/end2end/fixtures/http_proxy_fixture.cc',
+        'test/core/end2end/fixtures/proxy.cc',
+        'test/core/iomgr/endpoint_tests.cc',
         'test/core/util/debugger_macros.cc',
-        'test/core/util/grpc_profiler.c',
-        'test/core/util/memory_counters.c',
-        'test/core/util/mock_endpoint.c',
-        'test/core/util/parse_hexstring.c',
-        'test/core/util/passthru_endpoint.c',
-        'test/core/util/port.c',
-        'test/core/util/port_server_client.c',
-        'test/core/util/slice_splitter.c',
-        'test/core/util/trickle_endpoint.c',
+        'test/core/util/grpc_profiler.cc',
+        'test/core/util/memory_counters.cc',
+        'test/core/util/mock_endpoint.cc',
+        'test/core/util/parse_hexstring.cc',
+        'test/core/util/passthru_endpoint.cc',
+        'test/core/util/port.cc',
+        'test/core/util/port_server_client.cc',
+        'test/core/util/slice_splitter.cc',
+        'test/core/util/trickle_endpoint.cc',
         'src/core/lib/backoff/backoff.cc',
         'src/core/lib/channel/channel_args.cc',
         'src/core/lib/channel/channel_stack.cc',
@@ -1169,7 +1169,7 @@
         'gpr',
       ],
       'sources': [
-        'test/core/util/reconnect_server.c',
+        'test/core/util/reconnect_server.cc',
       ],
     },
     {
@@ -1182,7 +1182,7 @@
         'gpr',
       ],
       'sources': [
-        'test/core/util/test_tcp_server.c',
+        'test/core/util/test_tcp_server.cc',
       ],
     },
     {
@@ -2358,7 +2358,7 @@
         'gpr',
       ],
       'sources': [
-        'test/core/bad_client/bad_client.c',
+        'test/core/bad_client/bad_client.cc',
       ],
     },
     {
@@ -2371,67 +2371,67 @@
         'gpr',
       ],
       'sources': [
-        'test/core/end2end/end2end_tests.c',
-        'test/core/end2end/end2end_test_utils.c',
-        'test/core/end2end/tests/authority_not_supported.c',
-        'test/core/end2end/tests/bad_hostname.c',
-        'test/core/end2end/tests/bad_ping.c',
-        'test/core/end2end/tests/binary_metadata.c',
-        'test/core/end2end/tests/call_creds.c',
-        'test/core/end2end/tests/cancel_after_accept.c',
-        'test/core/end2end/tests/cancel_after_client_done.c',
-        'test/core/end2end/tests/cancel_after_invoke.c',
-        'test/core/end2end/tests/cancel_after_round_trip.c',
-        'test/core/end2end/tests/cancel_before_invoke.c',
-        'test/core/end2end/tests/cancel_in_a_vacuum.c',
-        'test/core/end2end/tests/cancel_with_status.c',
-        'test/core/end2end/tests/compressed_payload.c',
-        'test/core/end2end/tests/connectivity.c',
-        'test/core/end2end/tests/default_host.c',
-        'test/core/end2end/tests/disappearing_server.c',
-        'test/core/end2end/tests/empty_batch.c',
-        'test/core/end2end/tests/filter_call_init_fails.c',
-        'test/core/end2end/tests/filter_causes_close.c',
-        'test/core/end2end/tests/filter_latency.c',
-        'test/core/end2end/tests/graceful_server_shutdown.c',
-        'test/core/end2end/tests/high_initial_seqno.c',
-        'test/core/end2end/tests/hpack_size.c',
-        'test/core/end2end/tests/idempotent_request.c',
-        'test/core/end2end/tests/invoke_large_request.c',
-        'test/core/end2end/tests/keepalive_timeout.c',
-        'test/core/end2end/tests/large_metadata.c',
-        'test/core/end2end/tests/load_reporting_hook.c',
-        'test/core/end2end/tests/max_concurrent_streams.c',
-        'test/core/end2end/tests/max_connection_age.c',
-        'test/core/end2end/tests/max_connection_idle.c',
-        'test/core/end2end/tests/max_message_length.c',
-        'test/core/end2end/tests/negative_deadline.c',
-        'test/core/end2end/tests/network_status_change.c',
-        'test/core/end2end/tests/no_logging.c',
-        'test/core/end2end/tests/no_op.c',
-        'test/core/end2end/tests/payload.c',
-        'test/core/end2end/tests/ping.c',
-        'test/core/end2end/tests/ping_pong_streaming.c',
-        'test/core/end2end/tests/proxy_auth.c',
-        'test/core/end2end/tests/registered_call.c',
-        'test/core/end2end/tests/request_with_flags.c',
-        'test/core/end2end/tests/request_with_payload.c',
-        'test/core/end2end/tests/resource_quota_server.c',
-        'test/core/end2end/tests/server_finishes_request.c',
-        'test/core/end2end/tests/shutdown_finishes_calls.c',
-        'test/core/end2end/tests/shutdown_finishes_tags.c',
-        'test/core/end2end/tests/simple_cacheable_request.c',
-        'test/core/end2end/tests/simple_delayed_request.c',
-        'test/core/end2end/tests/simple_metadata.c',
-        'test/core/end2end/tests/simple_request.c',
-        'test/core/end2end/tests/stream_compression_compressed_payload.c',
-        'test/core/end2end/tests/stream_compression_payload.c',
-        'test/core/end2end/tests/stream_compression_ping_pong_streaming.c',
-        'test/core/end2end/tests/streaming_error_response.c',
-        'test/core/end2end/tests/trailing_metadata.c',
-        'test/core/end2end/tests/workaround_cronet_compression.c',
-        'test/core/end2end/tests/write_buffering.c',
-        'test/core/end2end/tests/write_buffering_at_end.c',
+        'test/core/end2end/end2end_tests.cc',
+        'test/core/end2end/end2end_test_utils.cc',
+        'test/core/end2end/tests/authority_not_supported.cc',
+        'test/core/end2end/tests/bad_hostname.cc',
+        'test/core/end2end/tests/bad_ping.cc',
+        'test/core/end2end/tests/binary_metadata.cc',
+        'test/core/end2end/tests/call_creds.cc',
+        'test/core/end2end/tests/cancel_after_accept.cc',
+        'test/core/end2end/tests/cancel_after_client_done.cc',
+        'test/core/end2end/tests/cancel_after_invoke.cc',
+        'test/core/end2end/tests/cancel_after_round_trip.cc',
+        'test/core/end2end/tests/cancel_before_invoke.cc',
+        'test/core/end2end/tests/cancel_in_a_vacuum.cc',
+        'test/core/end2end/tests/cancel_with_status.cc',
+        'test/core/end2end/tests/compressed_payload.cc',
+        'test/core/end2end/tests/connectivity.cc',
+        'test/core/end2end/tests/default_host.cc',
+        'test/core/end2end/tests/disappearing_server.cc',
+        'test/core/end2end/tests/empty_batch.cc',
+        'test/core/end2end/tests/filter_call_init_fails.cc',
+        'test/core/end2end/tests/filter_causes_close.cc',
+        'test/core/end2end/tests/filter_latency.cc',
+        'test/core/end2end/tests/graceful_server_shutdown.cc',
+        'test/core/end2end/tests/high_initial_seqno.cc',
+        'test/core/end2end/tests/hpack_size.cc',
+        'test/core/end2end/tests/idempotent_request.cc',
+        'test/core/end2end/tests/invoke_large_request.cc',
+        'test/core/end2end/tests/keepalive_timeout.cc',
+        'test/core/end2end/tests/large_metadata.cc',
+        'test/core/end2end/tests/load_reporting_hook.cc',
+        'test/core/end2end/tests/max_concurrent_streams.cc',
+        'test/core/end2end/tests/max_connection_age.cc',
+        'test/core/end2end/tests/max_connection_idle.cc',
+        'test/core/end2end/tests/max_message_length.cc',
+        'test/core/end2end/tests/negative_deadline.cc',
+        'test/core/end2end/tests/network_status_change.cc',
+        'test/core/end2end/tests/no_logging.cc',
+        'test/core/end2end/tests/no_op.cc',
+        'test/core/end2end/tests/payload.cc',
+        'test/core/end2end/tests/ping.cc',
+        'test/core/end2end/tests/ping_pong_streaming.cc',
+        'test/core/end2end/tests/proxy_auth.cc',
+        'test/core/end2end/tests/registered_call.cc',
+        'test/core/end2end/tests/request_with_flags.cc',
+        'test/core/end2end/tests/request_with_payload.cc',
+        'test/core/end2end/tests/resource_quota_server.cc',
+        'test/core/end2end/tests/server_finishes_request.cc',
+        'test/core/end2end/tests/shutdown_finishes_calls.cc',
+        'test/core/end2end/tests/shutdown_finishes_tags.cc',
+        'test/core/end2end/tests/simple_cacheable_request.cc',
+        'test/core/end2end/tests/simple_delayed_request.cc',
+        'test/core/end2end/tests/simple_metadata.cc',
+        'test/core/end2end/tests/simple_request.cc',
+        'test/core/end2end/tests/stream_compression_compressed_payload.cc',
+        'test/core/end2end/tests/stream_compression_payload.cc',
+        'test/core/end2end/tests/stream_compression_ping_pong_streaming.cc',
+        'test/core/end2end/tests/streaming_error_response.cc',
+        'test/core/end2end/tests/trailing_metadata.cc',
+        'test/core/end2end/tests/workaround_cronet_compression.cc',
+        'test/core/end2end/tests/write_buffering.cc',
+        'test/core/end2end/tests/write_buffering_at_end.cc',
       ],
     },
     {
@@ -2444,66 +2444,66 @@
         'gpr',
       ],
       'sources': [
-        'test/core/end2end/end2end_nosec_tests.c',
-        'test/core/end2end/end2end_test_utils.c',
-        'test/core/end2end/tests/authority_not_supported.c',
-        'test/core/end2end/tests/bad_hostname.c',
-        'test/core/end2end/tests/bad_ping.c',
-        'test/core/end2end/tests/binary_metadata.c',
-        'test/core/end2end/tests/cancel_after_accept.c',
-        'test/core/end2end/tests/cancel_after_client_done.c',
-        'test/core/end2end/tests/cancel_after_invoke.c',
-        'test/core/end2end/tests/cancel_after_round_trip.c',
-        'test/core/end2end/tests/cancel_before_invoke.c',
-        'test/core/end2end/tests/cancel_in_a_vacuum.c',
-        'test/core/end2end/tests/cancel_with_status.c',
-        'test/core/end2end/tests/compressed_payload.c',
-        'test/core/end2end/tests/connectivity.c',
-        'test/core/end2end/tests/default_host.c',
-        'test/core/end2end/tests/disappearing_server.c',
-        'test/core/end2end/tests/empty_batch.c',
-        'test/core/end2end/tests/filter_call_init_fails.c',
-        'test/core/end2end/tests/filter_causes_close.c',
-        'test/core/end2end/tests/filter_latency.c',
-        'test/core/end2end/tests/graceful_server_shutdown.c',
-        'test/core/end2end/tests/high_initial_seqno.c',
-        'test/core/end2end/tests/hpack_size.c',
-        'test/core/end2end/tests/idempotent_request.c',
-        'test/core/end2end/tests/invoke_large_request.c',
-        'test/core/end2end/tests/keepalive_timeout.c',
-        'test/core/end2end/tests/large_metadata.c',
-        'test/core/end2end/tests/load_reporting_hook.c',
-        'test/core/end2end/tests/max_concurrent_streams.c',
-        'test/core/end2end/tests/max_connection_age.c',
-        'test/core/end2end/tests/max_connection_idle.c',
-        'test/core/end2end/tests/max_message_length.c',
-        'test/core/end2end/tests/negative_deadline.c',
-        'test/core/end2end/tests/network_status_change.c',
-        'test/core/end2end/tests/no_logging.c',
-        'test/core/end2end/tests/no_op.c',
-        'test/core/end2end/tests/payload.c',
-        'test/core/end2end/tests/ping.c',
-        'test/core/end2end/tests/ping_pong_streaming.c',
-        'test/core/end2end/tests/proxy_auth.c',
-        'test/core/end2end/tests/registered_call.c',
-        'test/core/end2end/tests/request_with_flags.c',
-        'test/core/end2end/tests/request_with_payload.c',
-        'test/core/end2end/tests/resource_quota_server.c',
-        'test/core/end2end/tests/server_finishes_request.c',
-        'test/core/end2end/tests/shutdown_finishes_calls.c',
-        'test/core/end2end/tests/shutdown_finishes_tags.c',
-        'test/core/end2end/tests/simple_cacheable_request.c',
-        'test/core/end2end/tests/simple_delayed_request.c',
-        'test/core/end2end/tests/simple_metadata.c',
-        'test/core/end2end/tests/simple_request.c',
-        'test/core/end2end/tests/stream_compression_compressed_payload.c',
-        'test/core/end2end/tests/stream_compression_payload.c',
-        'test/core/end2end/tests/stream_compression_ping_pong_streaming.c',
-        'test/core/end2end/tests/streaming_error_response.c',
-        'test/core/end2end/tests/trailing_metadata.c',
-        'test/core/end2end/tests/workaround_cronet_compression.c',
-        'test/core/end2end/tests/write_buffering.c',
-        'test/core/end2end/tests/write_buffering_at_end.c',
+        'test/core/end2end/end2end_nosec_tests.cc',
+        'test/core/end2end/end2end_test_utils.cc',
+        'test/core/end2end/tests/authority_not_supported.cc',
+        'test/core/end2end/tests/bad_hostname.cc',
+        'test/core/end2end/tests/bad_ping.cc',
+        'test/core/end2end/tests/binary_metadata.cc',
+        'test/core/end2end/tests/cancel_after_accept.cc',
+        'test/core/end2end/tests/cancel_after_client_done.cc',
+        'test/core/end2end/tests/cancel_after_invoke.cc',
+        'test/core/end2end/tests/cancel_after_round_trip.cc',
+        'test/core/end2end/tests/cancel_before_invoke.cc',
+        'test/core/end2end/tests/cancel_in_a_vacuum.cc',
+        'test/core/end2end/tests/cancel_with_status.cc',
+        'test/core/end2end/tests/compressed_payload.cc',
+        'test/core/end2end/tests/connectivity.cc',
+        'test/core/end2end/tests/default_host.cc',
+        'test/core/end2end/tests/disappearing_server.cc',
+        'test/core/end2end/tests/empty_batch.cc',
+        'test/core/end2end/tests/filter_call_init_fails.cc',
+        'test/core/end2end/tests/filter_causes_close.cc',
+        'test/core/end2end/tests/filter_latency.cc',
+        'test/core/end2end/tests/graceful_server_shutdown.cc',
+        'test/core/end2end/tests/high_initial_seqno.cc',
+        'test/core/end2end/tests/hpack_size.cc',
+        'test/core/end2end/tests/idempotent_request.cc',
+        'test/core/end2end/tests/invoke_large_request.cc',
+        'test/core/end2end/tests/keepalive_timeout.cc',
+        'test/core/end2end/tests/large_metadata.cc',
+        'test/core/end2end/tests/load_reporting_hook.cc',
+        'test/core/end2end/tests/max_concurrent_streams.cc',
+        'test/core/end2end/tests/max_connection_age.cc',
+        'test/core/end2end/tests/max_connection_idle.cc',
+        'test/core/end2end/tests/max_message_length.cc',
+        'test/core/end2end/tests/negative_deadline.cc',
+        'test/core/end2end/tests/network_status_change.cc',
+        'test/core/end2end/tests/no_logging.cc',
+        'test/core/end2end/tests/no_op.cc',
+        'test/core/end2end/tests/payload.cc',
+        'test/core/end2end/tests/ping.cc',
+        'test/core/end2end/tests/ping_pong_streaming.cc',
+        'test/core/end2end/tests/proxy_auth.cc',
+        'test/core/end2end/tests/registered_call.cc',
+        'test/core/end2end/tests/request_with_flags.cc',
+        'test/core/end2end/tests/request_with_payload.cc',
+        'test/core/end2end/tests/resource_quota_server.cc',
+        'test/core/end2end/tests/server_finishes_request.cc',
+        'test/core/end2end/tests/shutdown_finishes_calls.cc',
+        'test/core/end2end/tests/shutdown_finishes_tags.cc',
+        'test/core/end2end/tests/simple_cacheable_request.cc',
+        'test/core/end2end/tests/simple_delayed_request.cc',
+        'test/core/end2end/tests/simple_metadata.cc',
+        'test/core/end2end/tests/simple_request.cc',
+        'test/core/end2end/tests/stream_compression_compressed_payload.cc',
+        'test/core/end2end/tests/stream_compression_payload.cc',
+        'test/core/end2end/tests/stream_compression_ping_pong_streaming.cc',
+        'test/core/end2end/tests/streaming_error_response.cc',
+        'test/core/end2end/tests/trailing_metadata.cc',
+        'test/core/end2end/tests/workaround_cronet_compression.cc',
+        'test/core/end2end/tests/write_buffering.cc',
+        'test/core/end2end/tests/write_buffering_at_end.cc',
       ],
     },
   ]
diff --git a/include/grpc/support/cmdline.h b/include/grpc/support/cmdline.h
index 9f46491..5baa06b 100644
--- a/include/grpc/support/cmdline.h
+++ b/include/grpc/support/cmdline.h
@@ -65,7 +65,7 @@
                                  const char *help, int *value);
 /** And for a string */
 GPRAPI void gpr_cmdline_add_string(gpr_cmdline *cl, const char *name,
-                                   const char *help, char **value);
+                                   const char *help, const char **value);
 /** Set a callback for non-named arguments */
 GPRAPI void gpr_cmdline_on_extra_arg(
     gpr_cmdline *cl, const char *name, const char *help,
diff --git a/src/core/lib/iomgr/network_status_tracker.h b/src/core/lib/iomgr/network_status_tracker.h
index cba38d4..c0295c1 100644
--- a/src/core/lib/iomgr/network_status_tracker.h
+++ b/src/core/lib/iomgr/network_status_tracker.h
@@ -20,10 +20,6 @@
 #define GRPC_CORE_LIB_IOMGR_NETWORK_STATUS_TRACKER_H
 #include "src/core/lib/iomgr/endpoint.h"
 
-#ifdef __cplusplus
-extern "C" {
-#endif
-
 void grpc_network_status_init(void);
 void grpc_network_status_shutdown(void);
 
@@ -31,8 +27,4 @@
 void grpc_network_status_unregister_endpoint(grpc_endpoint *ep);
 void grpc_network_status_shutdown_all_endpoints();
 
-#ifdef __cplusplus
-}
-#endif
-
 #endif /* GRPC_CORE_LIB_IOMGR_NETWORK_STATUS_TRACKER_H */
diff --git a/src/core/lib/support/cmdline.cc b/src/core/lib/support/cmdline.cc
index 9fb80d4..9a059ba 100644
--- a/src/core/lib/support/cmdline.cc
+++ b/src/core/lib/support/cmdline.cc
@@ -105,7 +105,7 @@
 }
 
 void gpr_cmdline_add_string(gpr_cmdline *cl, const char *name, const char *help,
-                            char **value) {
+                            const char **value) {
   add_arg(cl, name, help, ARGTYPE_STRING, value);
 }
 
diff --git a/src/ruby/ext/grpc/rb_grpc_imports.generated.h b/src/ruby/ext/grpc/rb_grpc_imports.generated.h
index 868772c..172cba1 100644
--- a/src/ruby/ext/grpc/rb_grpc_imports.generated.h
+++ b/src/ruby/ext/grpc/rb_grpc_imports.generated.h
@@ -689,7 +689,7 @@
 typedef void(*gpr_cmdline_add_flag_type)(gpr_cmdline *cl, const char *name, const char *help, int *value);
 extern gpr_cmdline_add_flag_type gpr_cmdline_add_flag_import;
 #define gpr_cmdline_add_flag gpr_cmdline_add_flag_import
-typedef void(*gpr_cmdline_add_string_type)(gpr_cmdline *cl, const char *name, const char *help, char **value);
+typedef void(*gpr_cmdline_add_string_type)(gpr_cmdline *cl, const char *name, const char *help, const char **value);
 extern gpr_cmdline_add_string_type gpr_cmdline_add_string_import;
 #define gpr_cmdline_add_string gpr_cmdline_add_string_import
 typedef void(*gpr_cmdline_on_extra_arg_type)(gpr_cmdline *cl, const char *name, const char *help, void (*on_extra_arg)(void *user_data, const char *arg), void *user_data);
diff --git a/templates/gRPC-Core.podspec.template b/templates/gRPC-Core.podspec.template
index 5657df8..d7e8fae 100644
--- a/templates/gRPC-Core.podspec.template
+++ b/templates/gRPC-Core.podspec.template
@@ -168,17 +168,17 @@
       ss.dependency "#{s.name}/Interface", version
       ss.dependency "#{s.name}/Implementation", version
 
-      ss.source_files = 'test/core/end2end/cq_verifier.{c,h}',
-                        'test/core/end2end/end2end_tests.{c,h}',
-                        'test/core/end2end/end2end_test_utils.c',
-                        'test/core/end2end/tests/*.{c,h}',
+      ss.source_files = 'test/core/end2end/cq_verifier.{cc,h}',
+                        'test/core/end2end/end2end_tests.{cc,h}',
+                        'test/core/end2end/end2end_test_utils.cc',
+                        'test/core/end2end/tests/*.{cc,h}',
                         'test/core/end2end/fixtures/*.h',
-                        'test/core/end2end/data/*.{c,h}',
-                        'test/core/util/debugger_macros.{c,h}',
-                        'test/core/util/test_config.{c,h}',
+                        'test/core/end2end/data/*.{cc,h}',
+                        'test/core/util/debugger_macros.{cc,h}',
+                        'test/core/util/test_config.{cc,h}',
                         'test/core/util/port.h',
-                        'test/core/util/port.c',
-                        'test/core/util/port_server_client.{c,h}'
+                        'test/core/util/port.cc',
+                        'test/core/util/port_server_client.{cc,h}'
     end
 
     # TODO (mxyan): Instead of this hack, add include path "third_party" to C core's include path?
diff --git a/templates/test/core/end2end/end2end_nosec_tests.c.template b/templates/test/core/end2end/end2end_nosec_tests.cc.template
similarity index 100%
rename from templates/test/core/end2end/end2end_nosec_tests.c.template
rename to templates/test/core/end2end/end2end_nosec_tests.cc.template
diff --git a/templates/test/core/end2end/end2end_tests.c.template b/templates/test/core/end2end/end2end_tests.cc.template
similarity index 100%
rename from templates/test/core/end2end/end2end_tests.c.template
rename to templates/test/core/end2end/end2end_tests.cc.template
diff --git a/test/core/backoff/backoff_test.c b/test/core/backoff/backoff_test.cc
similarity index 100%
rename from test/core/backoff/backoff_test.c
rename to test/core/backoff/backoff_test.cc
diff --git a/test/core/bad_client/bad_client.c b/test/core/bad_client/bad_client.cc
similarity index 100%
rename from test/core/bad_client/bad_client.c
rename to test/core/bad_client/bad_client.cc
diff --git a/test/core/bad_client/gen_build_yaml.py b/test/core/bad_client/gen_build_yaml.py
index 61cf1f7..14c8a27 100755
--- a/test/core/bad_client/gen_build_yaml.py
+++ b/test/core/bad_client/gen_build_yaml.py
@@ -46,7 +46,7 @@
             'build': 'private',
             'language': 'c',
             'src': [
-              'test/core/bad_client/bad_client.c'
+              'test/core/bad_client/bad_client.cc'
             ],
             'headers': [
               'test/core/bad_client/bad_client.h'
@@ -66,7 +66,7 @@
               'build': 'test',
               'language': 'c',
               'secure': 'no',
-              'src': ['test/core/bad_client/tests/%s.c' % t],
+              'src': ['test/core/bad_client/tests/%s.cc' % t],
               'vs_proj_dir': 'test',
               'exclude_iomgrs': ['uv'],
               'deps': [
diff --git a/test/core/bad_client/generate_tests.bzl b/test/core/bad_client/generate_tests.bzl
index 58b48d6..cdea9cc 100755
--- a/test/core/bad_client/generate_tests.bzl
+++ b/test/core/bad_client/generate_tests.bzl
@@ -38,7 +38,7 @@
 def grpc_bad_client_tests():
   native.cc_library(
       name = 'bad_client_test',
-      srcs = ['bad_client.c'],
+      srcs = ['bad_client.cc'],
       hdrs = ['bad_client.h'],
       copts = ['-std=c99'],
       deps = ['//test/core/util:grpc_test_util', '//:grpc', '//:gpr', '//test/core/end2end:cq_verifier']
@@ -46,7 +46,7 @@
   for t, topt in BAD_CLIENT_TESTS.items():
     native.cc_test(
         name = '%s_bad_client_test' % t,
-        srcs = ['tests/%s.c' % t],
+        srcs = ['tests/%s.cc' % t],
         deps = [':bad_client_test'],
         copts = ['-std=c99'],
     )
diff --git a/test/core/bad_client/tests/badreq.c b/test/core/bad_client/tests/badreq.cc
similarity index 100%
rename from test/core/bad_client/tests/badreq.c
rename to test/core/bad_client/tests/badreq.cc
diff --git a/test/core/bad_client/tests/connection_prefix.c b/test/core/bad_client/tests/connection_prefix.cc
similarity index 100%
rename from test/core/bad_client/tests/connection_prefix.c
rename to test/core/bad_client/tests/connection_prefix.cc
diff --git a/test/core/bad_client/tests/head_of_line_blocking.c b/test/core/bad_client/tests/head_of_line_blocking.cc
similarity index 97%
rename from test/core/bad_client/tests/head_of_line_blocking.c
rename to test/core/bad_client/tests/head_of_line_blocking.cc
index 04485d5..cb89423 100644
--- a/test/core/bad_client/tests/head_of_line_blocking.c
+++ b/test/core/bad_client/tests/head_of_line_blocking.cc
@@ -100,7 +100,7 @@
 static void addbuf(const void *data, size_t len) {
   if (g_count + len > g_cap) {
     g_cap = GPR_MAX(g_count + len, g_cap * 2);
-    g_buffer = gpr_realloc(g_buffer, g_cap);
+    g_buffer = static_cast<char *>(gpr_realloc(g_buffer, g_cap));
   }
   memcpy(g_buffer + g_count, data, len);
   g_count += len;
diff --git a/test/core/bad_client/tests/headers.c b/test/core/bad_client/tests/headers.cc
similarity index 100%
rename from test/core/bad_client/tests/headers.c
rename to test/core/bad_client/tests/headers.cc
diff --git a/test/core/bad_client/tests/initial_settings_frame.c b/test/core/bad_client/tests/initial_settings_frame.cc
similarity index 100%
rename from test/core/bad_client/tests/initial_settings_frame.c
rename to test/core/bad_client/tests/initial_settings_frame.cc
diff --git a/test/core/bad_client/tests/large_metadata.c b/test/core/bad_client/tests/large_metadata.cc
similarity index 100%
rename from test/core/bad_client/tests/large_metadata.c
rename to test/core/bad_client/tests/large_metadata.cc
diff --git a/test/core/bad_client/tests/server_registered_method.c b/test/core/bad_client/tests/server_registered_method.cc
similarity index 100%
rename from test/core/bad_client/tests/server_registered_method.c
rename to test/core/bad_client/tests/server_registered_method.cc
diff --git a/test/core/bad_client/tests/simple_request.c b/test/core/bad_client/tests/simple_request.cc
similarity index 100%
rename from test/core/bad_client/tests/simple_request.c
rename to test/core/bad_client/tests/simple_request.cc
diff --git a/test/core/bad_client/tests/unknown_frame.c b/test/core/bad_client/tests/unknown_frame.cc
similarity index 100%
rename from test/core/bad_client/tests/unknown_frame.c
rename to test/core/bad_client/tests/unknown_frame.cc
diff --git a/test/core/bad_client/tests/window_overflow.c b/test/core/bad_client/tests/window_overflow.cc
similarity index 97%
rename from test/core/bad_client/tests/window_overflow.c
rename to test/core/bad_client/tests/window_overflow.cc
index e4b5f97..40552e5 100644
--- a/test/core/bad_client/tests/window_overflow.c
+++ b/test/core/bad_client/tests/window_overflow.cc
@@ -58,7 +58,7 @@
 static void addbuf(const void *data, size_t len) {
   if (g_count + len > g_cap) {
     g_cap = GPR_MAX(g_count + len, g_cap * 2);
-    g_buffer = gpr_realloc(g_buffer, g_cap);
+    g_buffer = static_cast<char *>(gpr_realloc(g_buffer, g_cap));
   }
   memcpy(g_buffer + g_count, data, len);
   g_count += len;
diff --git a/test/core/bad_ssl/bad_ssl_test.c b/test/core/bad_ssl/bad_ssl_test.cc
similarity index 95%
rename from test/core/bad_ssl/bad_ssl_test.c
rename to test/core/bad_ssl/bad_ssl_test.cc
index 793627b..2183fbb 100644
--- a/test/core/bad_ssl/bad_ssl_test.c
+++ b/test/core/bad_ssl/bad_ssl_test.cc
@@ -52,9 +52,10 @@
   grpc_op ops[6];
   grpc_op *op;
 
-  grpc_arg ssl_name_override = {GRPC_ARG_STRING,
-                                GRPC_SSL_TARGET_NAME_OVERRIDE_ARG,
-                                {"foo.test.google.fr"}};
+  grpc_arg ssl_name_override = {
+      GRPC_ARG_STRING,
+      const_cast<char *>(GRPC_SSL_TARGET_NAME_OVERRIDE_ARG),
+      {const_cast<char *>("foo.test.google.fr")}};
   grpc_channel_args args;
 
   args.num_args = 1;
@@ -141,7 +142,7 @@
   /* start the server */
   gpr_asprintf(&args[0], "%s/bad_ssl_%s_server%s", root, test,
                gpr_subprocess_binary_extension());
-  args[1] = "--bind";
+  args[1] = const_cast<char *>("--bind");
   gpr_join_host_port(&args[2], "::", port);
   svr = gpr_subprocess_create(4, (const char **)args);
   gpr_free(args[0]);
diff --git a/test/core/bad_ssl/gen_build_yaml.py b/test/core/bad_ssl/gen_build_yaml.py
index 30fdb5e..6b78e9c 100755
--- a/test/core/bad_ssl/gen_build_yaml.py
+++ b/test/core/bad_ssl/gen_build_yaml.py
@@ -38,7 +38,7 @@
               'name': 'bad_ssl_test_server',
               'build': 'private',
               'language': 'c',
-              'src': ['test/core/bad_ssl/server_common.c'],
+              'src': ['test/core/bad_ssl/server_common.cc'],
               'headers': ['test/core/bad_ssl/server_common.h'],
               'vs_proj_dir': 'test',
               'platforms': ['linux', 'posix', 'mac'],
@@ -56,7 +56,7 @@
               'build': 'test',
               'language': 'c',
               'run': False,
-              'src': ['test/core/bad_ssl/servers/%s.c' % t],
+              'src': ['test/core/bad_ssl/servers/%s.cc' % t],
               'vs_proj_dir': 'test/bad_ssl',
               'platforms': ['linux', 'posix', 'mac'],
               'deps': [
@@ -73,7 +73,7 @@
               'cpu_cost': BAD_CLIENT_TESTS[t].cpu_cost,
               'build': 'test',
               'language': 'c',
-              'src': ['test/core/bad_ssl/bad_ssl_test.c'],
+              'src': ['test/core/bad_ssl/bad_ssl_test.cc'],
               'vs_proj_dir': 'test',
               'platforms': ['linux', 'posix', 'mac'],
               'deps': [
diff --git a/test/core/bad_ssl/generate_tests.bzl b/test/core/bad_ssl/generate_tests.bzl
index b61fabc..b7cb8f8 100755
--- a/test/core/bad_ssl/generate_tests.bzl
+++ b/test/core/bad_ssl/generate_tests.bzl
@@ -24,14 +24,14 @@
 def grpc_bad_ssl_tests():
   native.cc_library(
       name = 'bad_ssl_test_server',
-      srcs = ['server_common.c'],
+      srcs = ['server_common.cc'],
       hdrs = ['server_common.h'],
       deps = ['//test/core/util:grpc_test_util', '//:grpc', '//test/core/end2end:ssl_test_data']
   )
   for t in BAD_SSL_TESTS:
     native.cc_test(
         name = 'bad_ssl_%s_server' % t,
-        srcs = ['servers/%s.c' % t],
+        srcs = ['servers/%s.cc' % t],
         deps = [':bad_ssl_test_server'],
     )
 
diff --git a/test/core/bad_ssl/server_common.c b/test/core/bad_ssl/server_common.cc
similarity index 98%
rename from test/core/bad_ssl/server_common.c
rename to test/core/bad_ssl/server_common.cc
index 0588d43..5def618 100644
--- a/test/core/bad_ssl/server_common.c
+++ b/test/core/bad_ssl/server_common.cc
@@ -34,7 +34,7 @@
 
 const char *bad_ssl_addr(int argc, char **argv) {
   gpr_cmdline *cl;
-  char *addr = NULL;
+  const char *addr = NULL;
   cl = gpr_cmdline_create("test server");
   gpr_cmdline_add_string(cl, "bind", "Bind host:port", &addr);
   gpr_cmdline_parse(cl, argc, argv);
diff --git a/test/core/bad_ssl/servers/alpn.c b/test/core/bad_ssl/servers/alpn.cc
similarity index 100%
rename from test/core/bad_ssl/servers/alpn.c
rename to test/core/bad_ssl/servers/alpn.cc
diff --git a/test/core/bad_ssl/servers/cert.c b/test/core/bad_ssl/servers/cert.cc
similarity index 100%
rename from test/core/bad_ssl/servers/cert.c
rename to test/core/bad_ssl/servers/cert.cc
diff --git a/test/core/census/context_test.c b/test/core/census/context_test.cc
similarity index 100%
rename from test/core/census/context_test.c
rename to test/core/census/context_test.cc
diff --git a/test/core/census/intrusive_hash_map_test.c b/test/core/census/intrusive_hash_map_test.cc
similarity index 100%
rename from test/core/census/intrusive_hash_map_test.c
rename to test/core/census/intrusive_hash_map_test.cc
diff --git a/test/core/census/mlog_test.c b/test/core/census/mlog_test.cc
similarity index 100%
rename from test/core/census/mlog_test.c
rename to test/core/census/mlog_test.cc
diff --git a/test/core/census/resource_test.c b/test/core/census/resource_test.cc
similarity index 100%
rename from test/core/census/resource_test.c
rename to test/core/census/resource_test.cc
diff --git a/test/core/census/trace_context_test.c b/test/core/census/trace_context_test.cc
similarity index 100%
rename from test/core/census/trace_context_test.c
rename to test/core/census/trace_context_test.cc
diff --git a/test/core/channel/channel_args_test.c b/test/core/channel/channel_args_test.cc
similarity index 96%
rename from test/core/channel/channel_args_test.c
rename to test/core/channel/channel_args_test.cc
index deaf293..08dd1f4 100644
--- a/test/core/channel/channel_args_test.c
+++ b/test/core/channel/channel_args_test.cc
@@ -33,13 +33,13 @@
   grpc_arg to_add[2];
   grpc_channel_args *ch_args;
 
-  arg_int.key = "int_arg";
+  arg_int.key = const_cast<char *>("int_arg");
   arg_int.type = GRPC_ARG_INTEGER;
   arg_int.value.integer = 123;
 
-  arg_string.key = "str key";
+  arg_string.key = const_cast<char *>("str key");
   arg_string.type = GRPC_ARG_STRING;
-  arg_string.value.string = "str value";
+  arg_string.value.string = const_cast<char *>("str value");
 
   to_add[0] = arg_int;
   to_add[1] = arg_string;
diff --git a/test/core/channel/channel_stack_builder_test.c b/test/core/channel/channel_stack_builder_test.cc
similarity index 96%
rename from test/core/channel/channel_stack_builder_test.c
rename to test/core/channel/channel_stack_builder_test.cc
index 682efd1..f912960 100644
--- a/test/core/channel/channel_stack_builder_test.c
+++ b/test/core/channel/channel_stack_builder_test.cc
@@ -63,7 +63,7 @@
 bool g_original_fn_called = false;
 void set_arg_once_fn(grpc_channel_stack *channel_stack,
                      grpc_channel_element *elem, void *arg) {
-  bool *called = arg;
+  bool *called = static_cast<bool *>(arg);
   // Make sure this function is only called once per arg.
   GPR_ASSERT(*called == false);
   *called = true;
@@ -109,7 +109,8 @@
 static bool add_replacement_filter(grpc_exec_ctx *exec_ctx,
                                    grpc_channel_stack_builder *builder,
                                    void *arg) {
-  const grpc_channel_filter *filter = arg;
+  const grpc_channel_filter *filter =
+      static_cast<const grpc_channel_filter *>(arg);
   // Get rid of any other version of the filter, as determined by having the
   // same name.
   GPR_ASSERT(grpc_channel_stack_builder_remove_filter(builder, filter->name));
diff --git a/test/core/channel/channel_stack_test.c b/test/core/channel/channel_stack_test.cc
similarity index 84%
rename from test/core/channel/channel_stack_test.c
rename to test/core/channel/channel_stack_test.cc
index a07ef89..8800737 100644
--- a/test/core/channel/channel_stack_test.c
+++ b/test/core/channel/channel_stack_test.cc
@@ -69,12 +69,13 @@
 
 static void free_channel(grpc_exec_ctx *exec_ctx, void *arg,
                          grpc_error *error) {
-  grpc_channel_stack_destroy(exec_ctx, arg);
+  grpc_channel_stack_destroy(exec_ctx, static_cast<grpc_channel_stack *>(arg));
   gpr_free(arg);
 }
 
 static void free_call(grpc_exec_ctx *exec_ctx, void *arg, grpc_error *error) {
-  grpc_call_stack_destroy(exec_ctx, arg, NULL, NULL);
+  grpc_call_stack_destroy(exec_ctx, static_cast<grpc_call_stack *>(arg), NULL,
+                          NULL);
   gpr_free(arg);
 }
 
@@ -104,13 +105,14 @@
   grpc_slice path = grpc_slice_from_static_string("/service/method");
 
   arg.type = GRPC_ARG_INTEGER;
-  arg.key = "test_key";
+  arg.key = const_cast<char *>("test_key");
   arg.value.integer = 42;
 
   chan_args.num_args = 1;
   chan_args.args = &arg;
 
-  channel_stack = gpr_malloc(grpc_channel_stack_size(&filters, 1));
+  channel_stack = static_cast<grpc_channel_stack *>(
+      gpr_malloc(grpc_channel_stack_size(&filters, 1)));
   grpc_channel_stack_init(&exec_ctx, 1, free_channel, channel_stack, &filters,
                           1, &chan_args, NULL, "test", channel_stack);
   GPR_ASSERT(channel_stack->count == 1);
@@ -118,15 +120,18 @@
   channel_data = (int *)channel_elem->channel_data;
   GPR_ASSERT(*channel_data == 0);
 
-  call_stack = gpr_malloc(channel_stack->call_stack_size);
+  call_stack = static_cast<grpc_call_stack *>(
+      gpr_malloc(channel_stack->call_stack_size));
   const grpc_call_element_args args = {
-      .call_stack = call_stack,
-      .server_transport_data = NULL,
-      .context = NULL,
-      .path = path,
-      .start_time = gpr_now(GPR_CLOCK_MONOTONIC),
-      .deadline = GRPC_MILLIS_INF_FUTURE,
-      .arena = NULL};
+      call_stack,                   /* call_stack */
+      nullptr,                      /* server_transport_data */
+      nullptr,                      /* context */
+      path,                         /* path */
+      gpr_now(GPR_CLOCK_MONOTONIC), /* start_time */
+      GRPC_MILLIS_INF_FUTURE,       /* deadline */
+      nullptr,                      /* arena */
+      nullptr                       /* call_combiner */
+  };
   grpc_error *error = grpc_call_stack_init(&exec_ctx, channel_stack, 1,
                                            free_call, call_stack, &args);
   GPR_ASSERT(error == GRPC_ERROR_NONE);
diff --git a/test/core/channel/minimal_stack_is_minimal_test.c b/test/core/channel/minimal_stack_is_minimal_test.cc
similarity index 93%
rename from test/core/channel/minimal_stack_is_minimal_test.c
rename to test/core/channel/minimal_stack_is_minimal_test.cc
index b452834..be6670c 100644
--- a/test/core/channel/minimal_stack_is_minimal_test.c
+++ b/test/core/channel/minimal_stack_is_minimal_test.cc
@@ -61,11 +61,11 @@
   int errors = 0;
 
   // tests with a minimal stack
-  grpc_arg minimal_stack_arg = {.type = GRPC_ARG_INTEGER,
-                                .key = GRPC_ARG_MINIMAL_STACK,
-                                .value.integer = 1};
-  grpc_channel_args minimal_stack_args = {.num_args = 1,
-                                          .args = &minimal_stack_arg};
+  grpc_arg minimal_stack_arg;
+  minimal_stack_arg.type = GRPC_ARG_INTEGER;
+  minimal_stack_arg.key = const_cast<char *>(GRPC_ARG_MINIMAL_STACK);
+  minimal_stack_arg.value.integer = 1;
+  grpc_channel_args minimal_stack_args = {1, &minimal_stack_arg};
   errors += CHECK_STACK("unknown", &minimal_stack_args,
                         GRPC_CLIENT_DIRECT_CHANNEL, "connected", NULL);
   errors += CHECK_STACK("unknown", &minimal_stack_args, GRPC_CLIENT_SUBCHANNEL,
@@ -114,7 +114,9 @@
                        unsigned channel_stack_type, ...) {
   // create dummy channel stack
   grpc_channel_stack_builder *builder = grpc_channel_stack_builder_create();
-  grpc_transport_vtable fake_transport_vtable = {.name = transport_name};
+  grpc_transport_vtable fake_transport_vtable;
+  memset(&fake_transport_vtable, 0, sizeof(grpc_transport_vtable));
+  fake_transport_vtable.name = transport_name;
   grpc_transport fake_transport = {.vtable = &fake_transport_vtable};
   grpc_channel_stack_builder_set_target(builder, "foo.test.google.fr");
   grpc_channel_args *channel_args = grpc_channel_args_copy(init_args);
@@ -194,7 +196,9 @@
             "**************************************************");
     gpr_log(file, line, GPR_LOG_SEVERITY_ERROR,
             "FAILED transport=%s; stack_type=%s; channel_args=%s:",
-            transport_name, grpc_channel_stack_type_string(channel_stack_type),
+            transport_name,
+            grpc_channel_stack_type_string(
+                static_cast<grpc_channel_stack_type>(channel_stack_type)),
             args_str);
     gpr_log(file, line, GPR_LOG_SEVERITY_ERROR, "EXPECTED: %s", expect);
     gpr_log(file, line, GPR_LOG_SEVERITY_ERROR, "GOT:      %s", got);
diff --git a/test/core/client_channel/lb_policies_test.c b/test/core/client_channel/lb_policies_test.cc
similarity index 89%
rename from test/core/client_channel/lb_policies_test.c
rename to test/core/client_channel/lb_policies_test.cc
index ba37cd6..4379af1 100644
--- a/test/core/client_channel/lb_policies_test.c
+++ b/test/core/client_channel/lb_policies_test.cc
@@ -88,14 +88,16 @@
   test_spec *spec;
   size_t i;
 
-  spec = gpr_malloc(sizeof(test_spec));
+  spec = static_cast<test_spec *>(gpr_malloc(sizeof(test_spec)));
   spec->num_iters = num_iters;
   spec->num_servers = num_servers;
-  spec->kill_at = gpr_malloc(sizeof(int *) * num_iters);
-  spec->revive_at = gpr_malloc(sizeof(int *) * num_iters);
+  spec->kill_at = static_cast<int **>(gpr_malloc(sizeof(int *) * num_iters));
+  spec->revive_at = static_cast<int **>(gpr_malloc(sizeof(int *) * num_iters));
   for (i = 0; i < num_iters; i++) {
-    spec->kill_at[i] = gpr_malloc(sizeof(int) * num_servers);
-    spec->revive_at[i] = gpr_malloc(sizeof(int) * num_servers);
+    spec->kill_at[i] =
+        static_cast<int *>(gpr_malloc(sizeof(int) * num_servers));
+    spec->revive_at[i] =
+        static_cast<int *>(gpr_malloc(sizeof(int) * num_servers));
   }
 
   test_spec_reset(spec);
@@ -172,16 +174,20 @@
 static servers_fixture *setup_servers(const char *server_host,
                                       request_data *rdata,
                                       const size_t num_servers) {
-  servers_fixture *f = gpr_malloc(sizeof(servers_fixture));
+  servers_fixture *f =
+      static_cast<servers_fixture *>(gpr_malloc(sizeof(servers_fixture)));
   size_t i;
 
   f->num_servers = num_servers;
-  f->server_calls = gpr_malloc(sizeof(grpc_call *) * num_servers);
-  f->request_metadata_recv =
-      gpr_malloc(sizeof(grpc_metadata_array) * num_servers);
+  f->server_calls =
+      static_cast<grpc_call **>(gpr_malloc(sizeof(grpc_call *) * num_servers));
+  f->request_metadata_recv = static_cast<grpc_metadata_array *>(
+      gpr_malloc(sizeof(grpc_metadata_array) * num_servers));
   /* Create servers. */
-  f->servers = gpr_malloc(sizeof(grpc_server *) * num_servers);
-  f->servers_hostports = gpr_malloc(sizeof(char *) * num_servers);
+  f->servers = static_cast<grpc_server **>(
+      gpr_malloc(sizeof(grpc_server *) * num_servers));
+  f->servers_hostports =
+      static_cast<char **>(gpr_malloc(sizeof(char *) * num_servers));
   f->cq = grpc_completion_queue_create_for_next(NULL);
   f->shutdown_cq = grpc_completion_queue_create_for_pluck(NULL);
   for (i = 0; i < num_servers; i++) {
@@ -226,8 +232,10 @@
 static request_sequences request_sequences_create(size_t n) {
   request_sequences res;
   res.n = n;
-  res.connections = gpr_malloc(sizeof(*res.connections) * n);
-  res.connectivity_states = gpr_malloc(sizeof(*res.connectivity_states) * n);
+  res.connections =
+      static_cast<int *>(gpr_malloc(sizeof(*res.connections) * n));
+  res.connectivity_states =
+      static_cast<int *>(gpr_malloc(sizeof(*res.connectivity_states) * n));
   memset(res.connections, 0, sizeof(*res.connections) * n);
   memset(res.connectivity_states, 0, sizeof(*res.connectivity_states) * n);
   return res;
@@ -255,7 +263,7 @@
   int completed_client;
   const request_sequences sequences = request_sequences_create(spec->num_iters);
 
-  s_valid = gpr_malloc(sizeof(int) * f->num_servers);
+  s_valid = static_cast<int *>(gpr_malloc(sizeof(int) * f->num_servers));
 
   for (iter_num = 0; iter_num < spec->num_iters; iter_num++) {
     cq_verifier *cqv = cq_verifier_create(f->cq);
@@ -426,7 +434,8 @@
   grpc_op *op;
   size_t i;
 
-  calls = gpr_malloc(sizeof(grpc_call *) * concurrent_calls);
+  calls = static_cast<grpc_call **>(
+      gpr_malloc(sizeof(grpc_call *) * concurrent_calls));
   for (i = 0; i < f->num_servers; i++) {
     kill_server(f, i);
   }
@@ -465,8 +474,8 @@
   servers_fixture *f;
   grpc_channel_args args;
   grpc_arg arg_array[2];
-  rdata.call_details =
-      gpr_malloc(sizeof(grpc_call_details) * spec->num_servers);
+  rdata.call_details = static_cast<grpc_call_details *>(
+      gpr_malloc(sizeof(grpc_call_details) * spec->num_servers));
   f = setup_servers("127.0.0.1", &rdata, spec->num_servers);
 
   /* Create client. */
@@ -475,11 +484,12 @@
   gpr_asprintf(&client_hostport, "ipv4:%s", servers_hostports_str);
 
   arg_array[0].type = GRPC_ARG_INTEGER;
-  arg_array[0].key = "grpc.testing.fixed_reconnect_backoff_ms";
+  arg_array[0].key =
+      const_cast<char *>("grpc.testing.fixed_reconnect_backoff_ms");
   arg_array[0].value.integer = RETRY_TIMEOUT;
   arg_array[1].type = GRPC_ARG_STRING;
-  arg_array[1].key = GRPC_ARG_LB_POLICY_NAME;
-  arg_array[1].value.string = "round_robin";
+  arg_array[1].key = const_cast<char *>(GRPC_ARG_LB_POLICY_NAME);
+  arg_array[1].value.string = const_cast<char *>("round_robin");
   args.num_args = 2;
   args.args = arg_array;
 
@@ -513,13 +523,15 @@
   gpr_asprintf(&client_hostport, "ipv4:%s", servers_hostports_str);
 
   arg_array[0].type = GRPC_ARG_INTEGER;
-  arg_array[0].key = "grpc.testing.fixed_reconnect_backoff_ms";
+  arg_array[0].key =
+      const_cast<char *>("grpc.testing.fixed_reconnect_backoff_ms");
   arg_array[0].value.integer = RETRY_TIMEOUT;
   arg_array[1].type = GRPC_ARG_STRING;
-  arg_array[1].key = GRPC_ARG_LB_POLICY_NAME;
-  arg_array[1].value.string = "ROUND_ROBIN";
+  arg_array[1].key = const_cast<char *>(GRPC_ARG_LB_POLICY_NAME);
+  arg_array[1].value.string = const_cast<char *>("ROUND_ROBIN");
   arg_array[2].type = GRPC_ARG_INTEGER;
-  arg_array[2].key = GRPC_ARG_HTTP2_MIN_SENT_PING_INTERVAL_WITHOUT_DATA_MS;
+  arg_array[2].key =
+      const_cast<char *>(GRPC_ARG_HTTP2_MIN_SENT_PING_INTERVAL_WITHOUT_DATA_MS);
   arg_array[2].value.integer = 0;
   args.num_args = GPR_ARRAY_SIZE(arg_array);
   args.args = arg_array;
@@ -540,7 +552,8 @@
   const size_t num_servers = 1;
   int i;
 
-  rdata.call_details = gpr_malloc(sizeof(grpc_call_details) * num_servers);
+  rdata.call_details = static_cast<grpc_call_details *>(
+      gpr_malloc(sizeof(grpc_call_details) * num_servers));
   f = setup_servers("127.0.0.1", &rdata, num_servers);
   cqv = cq_verifier_create(f->cq);
 
@@ -585,8 +598,8 @@
   request_data rdata;
   servers_fixture *f;
   test_spec *spec = test_spec_create(0, 4);
-  rdata.call_details =
-      gpr_malloc(sizeof(grpc_call_details) * spec->num_servers);
+  rdata.call_details = static_cast<grpc_call_details *>(
+      gpr_malloc(sizeof(grpc_call_details) * spec->num_servers));
   f = setup_servers("127.0.0.1", &rdata, spec->num_servers);
 
   client = create_client(f);
@@ -626,7 +639,7 @@
   gpr_free(lb_policy_name);
   // Request service config, which does not exist, so we'll get nothing back.
   memset(&channel_info, 0, sizeof(channel_info));
-  char *service_config_json = "dummy_string";
+  char *service_config_json = const_cast<char *>("dummy_string");
   channel_info.service_config_json = &service_config_json;
   grpc_channel_get_info(channel, &channel_info);
   GPR_ASSERT(service_config_json == NULL);
@@ -634,8 +647,9 @@
   grpc_channel_destroy(channel);
   grpc_arg arg;
   arg.type = GRPC_ARG_STRING;
-  arg.key = GRPC_ARG_SERVICE_CONFIG;
-  arg.value.string = "{\"loadBalancingPolicy\": \"ROUND_ROBIN\"}";
+  arg.key = const_cast<char *>(GRPC_ARG_SERVICE_CONFIG);
+  arg.value.string =
+      const_cast<char *>("{\"loadBalancingPolicy\": \"ROUND_ROBIN\"}");
   grpc_channel_args *args = grpc_channel_args_copy_and_add(NULL, &arg, 1);
   channel = grpc_insecure_channel_create("ipv4:127.0.0.1:1234", args, NULL);
   {
@@ -676,7 +690,7 @@
   /* verify conn. seq. expectation */
   /* get the first sequence of "num_servers" elements */
   int *expected_connection_sequence =
-      gpr_malloc(sizeof(int) * expected_seq_length);
+      static_cast<int *>(gpr_malloc(sizeof(int) * expected_seq_length));
   memcpy(expected_connection_sequence, sequences->connections,
          sizeof(int) * expected_seq_length);
 
@@ -695,7 +709,8 @@
   /* All servers are available, therefore all client subchannels are READY, even
    * when we only need one for the client channel state to be READY */
   for (size_t i = 0; i < sequences->n; i++) {
-    const grpc_connectivity_state actual = sequences->connectivity_states[i];
+    const grpc_connectivity_state actual =
+        static_cast<grpc_connectivity_state>(sequences->connectivity_states[i]);
     const grpc_connectivity_state expected = GRPC_CHANNEL_READY;
     if (actual != expected) {
       gpr_log(GPR_ERROR,
@@ -721,7 +736,8 @@
 
   /* verify conn. seq. expectation */
   /* copy the first full sequence (without -1s) */
-  expected_connection_sequence = gpr_malloc(sizeof(int) * expected_seq_length);
+  expected_connection_sequence =
+      static_cast<int *>(gpr_malloc(sizeof(int) * expected_seq_length));
   memcpy(expected_connection_sequence, sequences->connections + 2,
          expected_seq_length * sizeof(int));
 
@@ -750,7 +766,8 @@
   /* There's always at least one subchannel READY (connected), therefore the
    * overall state of the client channel is READY at all times. */
   for (i = 0; i < sequences->n; i++) {
-    const grpc_connectivity_state actual = sequences->connectivity_states[i];
+    const grpc_connectivity_state actual =
+        static_cast<grpc_connectivity_state>(sequences->connectivity_states[i]);
     const grpc_connectivity_state expected = GRPC_CHANNEL_READY;
     if (actual != expected) {
       gpr_log(GPR_ERROR,
@@ -785,7 +802,8 @@
    * Note that all other states (IDLE, CONNECTING, TRANSIENT_FAILURE) are still
    * possible, as the policy transitions while attempting to reconnect. */
   for (size_t i = 0; i < sequences->n; i++) {
-    const grpc_connectivity_state actual = sequences->connectivity_states[i];
+    const grpc_connectivity_state actual =
+        static_cast<grpc_connectivity_state>(sequences->connectivity_states[i]);
     if (actual == GRPC_CHANNEL_READY || actual == GRPC_CHANNEL_SHUTDOWN) {
       gpr_log(GPR_ERROR,
               "CONNECTIVITY STATUS SEQUENCE FAILURE: got unexpected state "
@@ -805,7 +823,8 @@
 
   /* verify conn. seq. expectation */
   /* get the first sequence of "num_servers" elements */
-  expected_connection_sequence = gpr_malloc(sizeof(int) * expected_seq_length);
+  expected_connection_sequence =
+      static_cast<int *>(gpr_malloc(sizeof(int) * expected_seq_length));
   memcpy(expected_connection_sequence, sequences->connections,
          sizeof(int) * expected_seq_length);
 
@@ -827,7 +846,8 @@
 
   /* We can assert that the first client channel state should be READY, when all
    * servers were available */
-  grpc_connectivity_state actual = sequences->connectivity_states[0];
+  grpc_connectivity_state actual =
+      static_cast<grpc_connectivity_state>(sequences->connectivity_states[0]);
   grpc_connectivity_state expected = GRPC_CHANNEL_READY;
   if (actual != expected) {
     gpr_log(GPR_ERROR,
@@ -841,7 +861,8 @@
   /* ... and that the last one shouldn't be READY (or SHUTDOWN): all servers are
    * gone. It may be all other states (IDLE, CONNECTING, TRANSIENT_FAILURE), as
    * the policy transitions while attempting to reconnect. */
-  actual = sequences->connectivity_states[num_iters - 1];
+  actual = static_cast<grpc_connectivity_state>(
+      sequences->connectivity_states[num_iters - 1]);
   for (i = 0; i < sequences->n; i++) {
     if (actual == GRPC_CHANNEL_READY || actual == GRPC_CHANNEL_SHUTDOWN) {
       gpr_log(GPR_ERROR,
@@ -894,7 +915,8 @@
   /* We can assert that the first client channel state should be READY, when all
    * servers were available; same thing for the last one. In the middle
    * somewhere there must exist at least one TRANSIENT_FAILURE */
-  grpc_connectivity_state actual = sequences->connectivity_states[0];
+  grpc_connectivity_state actual =
+      static_cast<grpc_connectivity_state>(sequences->connectivity_states[0]);
   grpc_connectivity_state expected = GRPC_CHANNEL_READY;
   if (actual != expected) {
     gpr_log(GPR_ERROR,
@@ -905,7 +927,8 @@
     abort();
   }
 
-  actual = sequences->connectivity_states[num_iters - 1];
+  actual = static_cast<grpc_connectivity_state>(
+      sequences->connectivity_states[num_iters - 1]);
   expected = GRPC_CHANNEL_READY;
   if (actual != expected) {
     gpr_log(GPR_ERROR,
@@ -931,7 +954,8 @@
         "instead:");
     for (size_t i = 0; i < num_iters; i++) {
       gpr_log(GPR_ERROR, "[%d]: %s", (int)i,
-              grpc_connectivity_state_name(sequences->connectivity_states[i]));
+              grpc_connectivity_state_name(static_cast<grpc_connectivity_state>(
+                  sequences->connectivity_states[i])));
     }
   }
 }
diff --git a/test/core/client_channel/parse_address_test.c b/test/core/client_channel/parse_address_test.cc
similarity index 100%
rename from test/core/client_channel/parse_address_test.c
rename to test/core/client_channel/parse_address_test.cc
diff --git a/test/core/client_channel/resolvers/dns_resolver_connectivity_test.c b/test/core/client_channel/resolvers/dns_resolver_connectivity_test.cc
similarity index 94%
rename from test/core/client_channel/resolvers/dns_resolver_connectivity_test.c
rename to test/core/client_channel/resolvers/dns_resolver_connectivity_test.cc
index 4597285..4dfee8c 100644
--- a/test/core/client_channel/resolvers/dns_resolver_connectivity_test.c
+++ b/test/core/client_channel/resolvers/dns_resolver_connectivity_test.cc
@@ -49,9 +49,11 @@
     error = GRPC_ERROR_CREATE_FROM_STATIC_STRING("Forced Failure");
   } else {
     gpr_mu_unlock(&g_mu);
-    *addrs = gpr_malloc(sizeof(**addrs));
+    *addrs =
+        static_cast<grpc_resolved_addresses *>(gpr_malloc(sizeof(**addrs)));
     (*addrs)->naddrs = 1;
-    (*addrs)->addrs = gpr_malloc(sizeof(*(*addrs)->addrs));
+    (*addrs)->addrs = static_cast<grpc_resolved_address *>(
+        gpr_malloc(sizeof(*(*addrs)->addrs)));
     (*addrs)->addrs[0].len = 123;
   }
   GRPC_CLOSURE_SCHED(exec_ctx, on_done, error);
@@ -95,7 +97,7 @@
 }
 
 static void on_done(grpc_exec_ctx *exec_ctx, void *ev, grpc_error *error) {
-  gpr_event_set(ev, (void *)1);
+  gpr_event_set((gpr_event *)ev, (void *)1);
 }
 
 // interleave waiting for an event with a timer check
@@ -121,7 +123,7 @@
 static void call_resolver_next_now_lock_taken(grpc_exec_ctx *exec_ctx,
                                               void *arg,
                                               grpc_error *error_unused) {
-  next_args *a = arg;
+  next_args *a = static_cast<next_args *>(arg);
   grpc_resolver_next_locked(exec_ctx, a->resolver, a->result, a->on_complete);
   gpr_free(a);
 }
@@ -130,7 +132,7 @@
                                              grpc_resolver *resolver,
                                              grpc_channel_args **result,
                                              grpc_closure *on_complete) {
-  next_args *a = gpr_malloc(sizeof(*a));
+  next_args *a = static_cast<next_args *>(gpr_malloc(sizeof(*a)));
   a->resolver = resolver;
   a->result = result;
   a->on_complete = on_complete;
diff --git a/test/core/client_channel/resolvers/dns_resolver_test.c b/test/core/client_channel/resolvers/dns_resolver_test.cc
similarity index 100%
rename from test/core/client_channel/resolvers/dns_resolver_test.c
rename to test/core/client_channel/resolvers/dns_resolver_test.cc
diff --git a/test/core/client_channel/resolvers/fake_resolver_test.c b/test/core/client_channel/resolvers/fake_resolver_test.cc
similarity index 97%
rename from test/core/client_channel/resolvers/fake_resolver_test.c
rename to test/core/client_channel/resolvers/fake_resolver_test.cc
index 9b0854d..ed14151 100644
--- a/test/core/client_channel/resolvers/fake_resolver_test.c
+++ b/test/core/client_channel/resolvers/fake_resolver_test.cc
@@ -56,7 +56,7 @@
 } on_resolution_arg;
 
 void on_resolution_cb(grpc_exec_ctx *exec_ctx, void *arg, grpc_error *error) {
-  on_resolution_arg *res = arg;
+  on_resolution_arg *res = static_cast<on_resolution_arg *>(arg);
   // We only check the addresses channel arg because that's the only one
   // explicitly set by the test via
   // grpc_fake_resolver_response_generator_set_response.
@@ -84,7 +84,7 @@
   // Setup expectations.
   grpc_uri *uris[] = {grpc_uri_parse(&exec_ctx, "ipv4:10.2.1.1:1234", true),
                       grpc_uri_parse(&exec_ctx, "ipv4:127.0.0.1:4321", true)};
-  char *balancer_names[] = {"name1", "name2"};
+  const char *balancer_names[] = {"name1", "name2"};
   const bool is_balancer[] = {true, false};
   grpc_lb_addresses *addresses = grpc_lb_addresses_create(3, NULL);
   for (size_t i = 0; i < GPR_ARRAY_SIZE(uris); ++i) {
@@ -117,7 +117,7 @@
   // Setup update.
   grpc_uri *uris_update[] = {
       grpc_uri_parse(&exec_ctx, "ipv4:192.168.1.0:31416", true)};
-  char *balancer_names_update[] = {"name3"};
+  const char *balancer_names_update[] = {"name3"};
   const bool is_balancer_update[] = {false};
   grpc_lb_addresses *addresses_update = grpc_lb_addresses_create(1, NULL);
   for (size_t i = 0; i < GPR_ARRAY_SIZE(uris_update); ++i) {
diff --git a/test/core/client_channel/resolvers/sockaddr_resolver_test.c b/test/core/client_channel/resolvers/sockaddr_resolver_test.cc
similarity index 97%
rename from test/core/client_channel/resolvers/sockaddr_resolver_test.c
rename to test/core/client_channel/resolvers/sockaddr_resolver_test.cc
index 8b88619..254ce59 100644
--- a/test/core/client_channel/resolvers/sockaddr_resolver_test.c
+++ b/test/core/client_channel/resolvers/sockaddr_resolver_test.cc
@@ -36,7 +36,7 @@
 } on_resolution_arg;
 
 void on_resolution_cb(grpc_exec_ctx *exec_ctx, void *arg, grpc_error *error) {
-  on_resolution_arg *res = arg;
+  on_resolution_arg *res = static_cast<on_resolution_arg *>(arg);
   grpc_channel_args_destroy(exec_ctx, res->resolver_result);
 }
 
diff --git a/test/core/client_channel/uri_fuzzer_test.c b/test/core/client_channel/uri_fuzzer_test.cc
similarity index 95%
rename from test/core/client_channel/uri_fuzzer_test.c
rename to test/core/client_channel/uri_fuzzer_test.cc
index e51d003..8c07145 100644
--- a/test/core/client_channel/uri_fuzzer_test.c
+++ b/test/core/client_channel/uri_fuzzer_test.cc
@@ -29,7 +29,7 @@
 bool leak_check = true;
 
 int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
-  char *s = gpr_malloc(size + 1);
+  char *s = static_cast<char *>(gpr_malloc(size + 1));
   memcpy(s, data, size);
   s[size] = 0;
 
diff --git a/test/core/client_channel/uri_parser_test.c b/test/core/client_channel/uri_parser_test.cc
similarity index 100%
rename from test/core/client_channel/uri_parser_test.c
rename to test/core/client_channel/uri_parser_test.cc
diff --git a/test/core/compression/algorithm_test.c b/test/core/compression/algorithm_test.cc
similarity index 88%
rename from test/core/compression/algorithm_test.c
rename to test/core/compression/algorithm_test.cc
index a11e6e9..4ca979e 100644
--- a/test/core/compression/algorithm_test.c
+++ b/test/core/compression/algorithm_test.cc
@@ -69,8 +69,10 @@
 
   GPR_ASSERT(grpc_compression_algorithm_name(GRPC_COMPRESS_ALGORITHMS_COUNT,
                                              NULL) == 0);
-  GPR_ASSERT(grpc_compression_algorithm_name(GRPC_COMPRESS_ALGORITHMS_COUNT + 1,
-                                             NULL) == 0);
+  GPR_ASSERT(
+      grpc_compression_algorithm_name(static_cast<grpc_compression_algorithm>(
+                                          GRPC_COMPRESS_ALGORITHMS_COUNT + 1),
+                                      NULL) == 0);
   mdstr = grpc_slice_from_static_string("this-is-an-invalid-algorithm");
   GPR_ASSERT(grpc_compression_algorithm_from_slice(mdstr) ==
              GRPC_COMPRESS_ALGORITHMS_COUNT);
@@ -78,7 +80,8 @@
       grpc_compression_algorithm_slice(GRPC_COMPRESS_ALGORITHMS_COUNT),
       grpc_empty_slice()));
   GPR_ASSERT(grpc_slice_eq(
-      grpc_compression_algorithm_slice(GRPC_COMPRESS_ALGORITHMS_COUNT + 1),
+      grpc_compression_algorithm_slice(static_cast<grpc_compression_algorithm>(
+          static_cast<int>(GRPC_COMPRESS_ALGORITHMS_COUNT) + 1)),
       grpc_empty_slice()));
   grpc_slice_unref_internal(&exec_ctx, mdstr);
   grpc_exec_ctx_finish(&exec_ctx);
diff --git a/test/core/compression/compression_test.c b/test/core/compression/compression_test.cc
similarity index 93%
rename from test/core/compression/compression_test.c
rename to test/core/compression/compression_test.cc
index 326a800..f4fa3a8 100644
--- a/test/core/compression/compression_test.c
+++ b/test/core/compression/compression_test.cc
@@ -181,21 +181,27 @@
 
   grpc_compression_options_init(&options);
   for (algorithm = GRPC_COMPRESS_NONE;
-       algorithm < GRPC_COMPRESS_ALGORITHMS_COUNT; algorithm++) {
+       algorithm < GRPC_COMPRESS_ALGORITHMS_COUNT;
+       algorithm = static_cast<grpc_compression_algorithm>(
+           static_cast<int>(algorithm) + 1)) {
     /* all algorithms are enabled by default */
     GPR_ASSERT(grpc_compression_options_is_algorithm_enabled(&options,
                                                              algorithm) != 0);
   }
   /* disable one by one */
   for (algorithm = GRPC_COMPRESS_NONE;
-       algorithm < GRPC_COMPRESS_ALGORITHMS_COUNT; algorithm++) {
+       algorithm < GRPC_COMPRESS_ALGORITHMS_COUNT;
+       algorithm = static_cast<grpc_compression_algorithm>(
+           static_cast<int>(algorithm) + 1)) {
     grpc_compression_options_disable_algorithm(&options, algorithm);
     GPR_ASSERT(grpc_compression_options_is_algorithm_enabled(&options,
                                                              algorithm) == 0);
   }
   /* re-enable one by one */
   for (algorithm = GRPC_COMPRESS_NONE;
-       algorithm < GRPC_COMPRESS_ALGORITHMS_COUNT; algorithm++) {
+       algorithm < GRPC_COMPRESS_ALGORITHMS_COUNT;
+       algorithm = static_cast<grpc_compression_algorithm>(
+           static_cast<int>(algorithm) + 1)) {
     grpc_compression_options_enable_algorithm(&options, algorithm);
     GPR_ASSERT(grpc_compression_options_is_algorithm_enabled(&options,
                                                              algorithm) != 0);
diff --git a/test/core/compression/message_compress_test.c b/test/core/compression/message_compress_test.cc
similarity index 89%
rename from test/core/compression/message_compress_test.c
rename to test/core/compression/message_compress_test.cc
index f7f4893..1395d42 100644
--- a/test/core/compression/message_compress_test.c
+++ b/test/core/compression/message_compress_test.cc
@@ -148,16 +148,17 @@
 static void test_tiny_data_compress(void) {
   grpc_slice_buffer input;
   grpc_slice_buffer output;
-  grpc_compression_algorithm i;
 
   grpc_slice_buffer_init(&input);
   grpc_slice_buffer_init(&output);
   grpc_slice_buffer_add(&input, create_test_value(ONE_A));
 
-  for (i = 0; i < GRPC_COMPRESS_ALGORITHMS_COUNT; i++) {
+  for (int i = 0; i < GRPC_COMPRESS_ALGORITHMS_COUNT; i++) {
     if (i == GRPC_COMPRESS_NONE) continue;
     grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT;
-    GPR_ASSERT(0 == grpc_msg_compress(&exec_ctx, i, &input, &output));
+    GPR_ASSERT(0 == grpc_msg_compress(
+                        &exec_ctx, static_cast<grpc_compression_algorithm>(i),
+                        &input, &output));
     grpc_exec_ctx_finish(&exec_ctx);
     GPR_ASSERT(1 == output.count);
   }
@@ -252,8 +253,10 @@
                                      &input, &output);
   GPR_ASSERT(0 == was_compressed);
 
-  was_compressed = grpc_msg_compress(
-      &exec_ctx, GRPC_COMPRESS_ALGORITHMS_COUNT + 123, &input, &output);
+  was_compressed =
+      grpc_msg_compress(&exec_ctx, static_cast<grpc_compression_algorithm>(
+                                       GRPC_COMPRESS_ALGORITHMS_COUNT + 123),
+                        &input, &output);
   GPR_ASSERT(0 == was_compressed);
   grpc_exec_ctx_finish(&exec_ctx);
 
@@ -276,8 +279,10 @@
       &exec_ctx, GRPC_COMPRESS_ALGORITHMS_COUNT, &input, &output);
   GPR_ASSERT(0 == was_decompressed);
 
-  was_decompressed = grpc_msg_decompress(
-      &exec_ctx, GRPC_COMPRESS_ALGORITHMS_COUNT + 123, &input, &output);
+  was_decompressed =
+      grpc_msg_decompress(&exec_ctx, static_cast<grpc_compression_algorithm>(
+                                         GRPC_COMPRESS_ALGORITHMS_COUNT + 123),
+                          &input, &output);
   GPR_ASSERT(0 == was_decompressed);
   grpc_exec_ctx_finish(&exec_ctx);
 
@@ -300,8 +305,13 @@
     for (j = 0; j < GPR_ARRAY_SIZE(uncompressed_split_modes); j++) {
       for (k = 0; k < GPR_ARRAY_SIZE(compressed_split_modes); k++) {
         for (m = 0; m < TEST_VALUE_COUNT; m++) {
-          grpc_slice slice = create_test_value(m);
-          assert_passthrough(slice, i, j, k, get_compressability(m, i));
+          grpc_slice slice = create_test_value(static_cast<test_value>(m));
+          assert_passthrough(
+              slice, static_cast<grpc_compression_algorithm>(i),
+              static_cast<grpc_slice_split_mode>(j),
+              static_cast<grpc_slice_split_mode>(k),
+              get_compressability(static_cast<test_value>(m),
+                                  static_cast<grpc_compression_algorithm>(i)));
           grpc_slice_unref(slice);
         }
       }
diff --git a/test/core/compression/stream_compression_test.c b/test/core/compression/stream_compression_test.cc
similarity index 98%
rename from test/core/compression/stream_compression_test.c
rename to test/core/compression/stream_compression_test.cc
index afed6cd..d136408 100644
--- a/test/core/compression/stream_compression_test.c
+++ b/test/core/compression/stream_compression_test.cc
@@ -134,7 +134,8 @@
 #define LARGE_DATA_SIZE (1024 * 1024)
 static void
 test_stream_compression_simple_compress_decompress_with_large_data() {
-  char *test_str = gpr_malloc(LARGE_DATA_SIZE * sizeof(char));
+  char *test_str =
+      static_cast<char *>(gpr_malloc(LARGE_DATA_SIZE * sizeof(char)));
   generate_random_payload(test_str, LARGE_DATA_SIZE);
   grpc_slice_buffer source, relay, sink;
   grpc_slice_buffer_init(&source);
diff --git a/test/core/end2end/BUILD b/test/core/end2end/BUILD
index 49bfc43..1589880 100644
--- a/test/core/end2end/BUILD
+++ b/test/core/end2end/BUILD
@@ -22,7 +22,7 @@
 
 grpc_cc_library(
     name = "cq_verifier",
-    srcs = ["cq_verifier.c"],
+    srcs = ["cq_verifier.cc"],
     hdrs = ["cq_verifier.h"],
     language = "C",
     visibility = ["//test:__subpackages__"],
@@ -36,9 +36,9 @@
 grpc_cc_library(
     name = "ssl_test_data",
     srcs = [
-        "data/client_certs.c",
-        "data/server1_cert.c",
-        "data/server1_key.c",
+        "data/client_certs.cc",
+        "data/server1_cert.cc",
+        "data/server1_key.cc",
         "data/test_root_cert.c",
     ],
     hdrs = ["data/ssl_test_data.h"],
@@ -49,7 +49,7 @@
 
 grpc_cc_library(
     name = "http_proxy",
-    srcs = ["fixtures/http_proxy_fixture.c"],
+    srcs = ["fixtures/http_proxy_fixture.cc"],
     hdrs = ["fixtures/http_proxy_fixture.h"],
     language = "C",
     deps = [
@@ -61,7 +61,7 @@
 
 grpc_cc_library(
     name = "proxy",
-    srcs = ["fixtures/proxy.c"],
+    srcs = ["fixtures/proxy.cc"],
     hdrs = ["fixtures/proxy.h"],
     language = "C",
     deps = [
diff --git a/test/core/end2end/bad_server_response_test.c b/test/core/end2end/bad_server_response_test.cc
similarity index 100%
rename from test/core/end2end/bad_server_response_test.c
rename to test/core/end2end/bad_server_response_test.cc
diff --git a/test/core/end2end/connection_refused_test.c b/test/core/end2end/connection_refused_test.cc
similarity index 97%
rename from test/core/end2end/connection_refused_test.c
rename to test/core/end2end/connection_refused_test.cc
index 40227de..b295682 100644
--- a/test/core/end2end/connection_refused_test.c
+++ b/test/core/end2end/connection_refused_test.cc
@@ -62,8 +62,8 @@
     GPR_ASSERT(wait_for_ready);
     grpc_arg arg;
     arg.type = GRPC_ARG_STRING;
-    arg.key = GRPC_ARG_SERVICE_CONFIG;
-    arg.value.string =
+    arg.key = const_cast<char *>(GRPC_ARG_SERVICE_CONFIG);
+    arg.value.string = const_cast<char *>(
         "{\n"
         "  \"methodConfig\": [ {\n"
         "    \"name\": [\n"
@@ -71,7 +71,7 @@
         "    ],\n"
         "    \"waitForReady\": true\n"
         "  } ]\n"
-        "}";
+        "}");
     args = grpc_channel_args_copy_and_add(args, &arg, 1);
   }
 
diff --git a/test/core/end2end/cq_verifier.c b/test/core/end2end/cq_verifier.cc
similarity index 100%
rename from test/core/end2end/cq_verifier.c
rename to test/core/end2end/cq_verifier.cc
diff --git a/test/core/end2end/cq_verifier_native.c b/test/core/end2end/cq_verifier_native.cc
similarity index 100%
rename from test/core/end2end/cq_verifier_native.c
rename to test/core/end2end/cq_verifier_native.cc
diff --git a/test/core/end2end/cq_verifier_uv.c b/test/core/end2end/cq_verifier_uv.cc
similarity index 100%
rename from test/core/end2end/cq_verifier_uv.c
rename to test/core/end2end/cq_verifier_uv.cc
diff --git a/test/core/end2end/data/client_certs.c b/test/core/end2end/data/client_certs.cc
similarity index 99%
rename from test/core/end2end/data/client_certs.c
rename to test/core/end2end/data/client_certs.cc
index 7877067..6e61501 100644
--- a/test/core/end2end/data/client_certs.c
+++ b/test/core/end2end/data/client_certs.cc
@@ -16,6 +16,8 @@
  *
  */
 
+#include "test/core/end2end/data/ssl_test_data.h"
+
 const char test_self_signed_client_cert[] = {
     0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43,
     0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d,
diff --git a/test/core/end2end/data/server1_cert.c b/test/core/end2end/data/server1_cert.cc
similarity index 98%
rename from test/core/end2end/data/server1_cert.c
rename to test/core/end2end/data/server1_cert.cc
index 8d14960..5e017c4 100644
--- a/test/core/end2end/data/server1_cert.c
+++ b/test/core/end2end/data/server1_cert.cc
@@ -16,6 +16,8 @@
  *
  */
 
+#include "test/core/end2end/data/ssl_test_data.h"
+
 const char test_server1_cert[] = {
     0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43,
     0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d,
diff --git a/test/core/end2end/data/server1_key.c b/test/core/end2end/data/server1_key.cc
similarity index 98%
rename from test/core/end2end/data/server1_key.c
rename to test/core/end2end/data/server1_key.cc
index eee5cc6..92a77aa 100644
--- a/test/core/end2end/data/server1_key.c
+++ b/test/core/end2end/data/server1_key.cc
@@ -16,6 +16,8 @@
  *
  */
 
+#include "test/core/end2end/data/ssl_test_data.h"
+
 const char test_server1_key[] = {
     0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x52,
     0x53, 0x41, 0x20, 0x50, 0x52, 0x49, 0x56, 0x41, 0x54, 0x45, 0x20, 0x4b,
diff --git a/test/core/end2end/data/ssl_test_data.h b/test/core/end2end/data/ssl_test_data.h
index e9c7dbc..303f3a6 100644
--- a/test/core/end2end/data/ssl_test_data.h
+++ b/test/core/end2end/data/ssl_test_data.h
@@ -19,10 +19,6 @@
 #ifndef GRPC_TEST_CORE_END2END_DATA_SSL_TEST_DATA_H
 #define GRPC_TEST_CORE_END2END_DATA_SSL_TEST_DATA_H
 
-#ifdef __cplusplus
-extern "C" {
-#endif
-
 extern const char test_root_cert[];
 extern const char test_server1_cert[];
 extern const char test_server1_key[];
@@ -31,8 +27,4 @@
 extern const char test_signed_client_cert[];
 extern const char test_signed_client_key[];
 
-#ifdef __cplusplus
-}
-#endif
-
 #endif /* GRPC_TEST_CORE_END2END_DATA_SSL_TEST_DATA_H */
diff --git a/test/core/end2end/data/test_root_cert.c b/test/core/end2end/data/test_root_cert.cc
similarity index 98%
rename from test/core/end2end/data/test_root_cert.c
rename to test/core/end2end/data/test_root_cert.cc
index ef39ca5..81ca410 100644
--- a/test/core/end2end/data/test_root_cert.c
+++ b/test/core/end2end/data/test_root_cert.cc
@@ -16,6 +16,8 @@
  *
  */
 
+#include "test/core/end2end/data/ssl_test_data.h"
+
 const char test_root_cert[] = {
     0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43,
     0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d,
diff --git a/test/core/end2end/dualstack_socket_test.c b/test/core/end2end/dualstack_socket_test.cc
similarity index 98%
rename from test/core/end2end/dualstack_socket_test.c
rename to test/core/end2end/dualstack_socket_test.cc
index f9150f1..bfb2e22 100644
--- a/test/core/end2end/dualstack_socket_test.c
+++ b/test/core/end2end/dualstack_socket_test.cc
@@ -118,7 +118,8 @@
         grpc_slice_new((char *)client_host, strlen(client_host), do_nothing);
     grpc_slice_buffer_init(&uri_parts);
     grpc_slice_split(uri_slice, ",", &uri_parts);
-    hosts_with_port = gpr_malloc(sizeof(char *) * uri_parts.count);
+    hosts_with_port =
+        static_cast<char **>(gpr_malloc(sizeof(char *) * uri_parts.count));
     for (i = 0; i < uri_parts.count; i++) {
       char *uri_part_str = grpc_slice_to_c_string(uri_parts.slices[i]);
       gpr_asprintf(&hosts_with_port[i], "%s:%d", uri_part_str, port);
diff --git a/test/core/end2end/end2end_nosec_tests.c b/test/core/end2end/end2end_nosec_tests.cc
similarity index 100%
rename from test/core/end2end/end2end_nosec_tests.c
rename to test/core/end2end/end2end_nosec_tests.cc
diff --git a/test/core/end2end/end2end_test_utils.c b/test/core/end2end/end2end_test_utils.cc
similarity index 100%
rename from test/core/end2end/end2end_test_utils.c
rename to test/core/end2end/end2end_test_utils.cc
diff --git a/test/core/end2end/end2end_tests.c b/test/core/end2end/end2end_tests.cc
similarity index 100%
rename from test/core/end2end/end2end_tests.c
rename to test/core/end2end/end2end_tests.cc
diff --git a/test/core/end2end/fixtures/h2_census.c b/test/core/end2end/fixtures/h2_census.cc
similarity index 89%
rename from test/core/end2end/fixtures/h2_census.c
rename to test/core/end2end/fixtures/h2_census.cc
index 9870ccb..d705818 100644
--- a/test/core/end2end/fixtures/h2_census.c
+++ b/test/core/end2end/fixtures/h2_census.cc
@@ -44,7 +44,8 @@
     grpc_channel_args *client_args, grpc_channel_args *server_args) {
   grpc_end2end_test_fixture f;
   int port = grpc_pick_unused_port_or_die();
-  fullstack_fixture_data *ffd = gpr_malloc(sizeof(fullstack_fixture_data));
+  fullstack_fixture_data *ffd = static_cast<fullstack_fixture_data *>(
+      gpr_malloc(sizeof(fullstack_fixture_data)));
   memset(&f, 0, sizeof(f));
 
   gpr_join_host_port(&ffd->localaddr, "localhost", port);
@@ -59,14 +60,15 @@
 static grpc_arg make_census_enable_arg(void) {
   grpc_arg arg;
   arg.type = GRPC_ARG_INTEGER;
-  arg.key = GRPC_ARG_ENABLE_CENSUS;
+  arg.key = const_cast<char *>(GRPC_ARG_ENABLE_CENSUS);
   arg.value.integer = 1;
   return arg;
 }
 
 void chttp2_init_client_fullstack(grpc_end2end_test_fixture *f,
                                   grpc_channel_args *client_args) {
-  fullstack_fixture_data *ffd = f->fixture_data;
+  fullstack_fixture_data *ffd =
+      static_cast<fullstack_fixture_data *>(f->fixture_data);
   grpc_arg arg = make_census_enable_arg();
   client_args = grpc_channel_args_copy_and_add(client_args, &arg, 1);
   f->client = grpc_insecure_channel_create(ffd->localaddr, client_args, NULL);
@@ -80,7 +82,8 @@
 
 void chttp2_init_server_fullstack(grpc_end2end_test_fixture *f,
                                   grpc_channel_args *server_args) {
-  fullstack_fixture_data *ffd = f->fixture_data;
+  fullstack_fixture_data *ffd =
+      static_cast<fullstack_fixture_data *>(f->fixture_data);
   grpc_arg arg = make_census_enable_arg();
   if (f->server) {
     grpc_server_destroy(f->server);
@@ -98,7 +101,8 @@
 }
 
 void chttp2_tear_down_fullstack(grpc_end2end_test_fixture *f) {
-  fullstack_fixture_data *ffd = f->fixture_data;
+  fullstack_fixture_data *ffd =
+      static_cast<fullstack_fixture_data *>(f->fixture_data);
   gpr_free(ffd->localaddr);
   gpr_free(ffd);
 }
diff --git a/test/core/end2end/fixtures/h2_compress.c b/test/core/end2end/fixtures/h2_compress.cc
similarity index 90%
rename from test/core/end2end/fixtures/h2_compress.c
rename to test/core/end2end/fixtures/h2_compress.cc
index 9866dea..bdfeef2 100644
--- a/test/core/end2end/fixtures/h2_compress.c
+++ b/test/core/end2end/fixtures/h2_compress.cc
@@ -47,7 +47,8 @@
   grpc_end2end_test_fixture f;
   int port = grpc_pick_unused_port_or_die();
   fullstack_compression_fixture_data *ffd =
-      gpr_malloc(sizeof(fullstack_compression_fixture_data));
+      static_cast<fullstack_compression_fixture_data *>(
+          gpr_malloc(sizeof(fullstack_compression_fixture_data)));
   memset(ffd, 0, sizeof(fullstack_compression_fixture_data));
 
   gpr_join_host_port(&ffd->localaddr, "localhost", port);
@@ -62,7 +63,8 @@
 
 void chttp2_init_client_fullstack_compression(grpc_end2end_test_fixture *f,
                                               grpc_channel_args *client_args) {
-  fullstack_compression_fixture_data *ffd = f->fixture_data;
+  fullstack_compression_fixture_data *ffd =
+      static_cast<fullstack_compression_fixture_data *>(f->fixture_data);
   if (ffd->client_args_compression != NULL) {
     grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT;
     grpc_channel_args_destroy(&exec_ctx, ffd->client_args_compression);
@@ -76,7 +78,8 @@
 
 void chttp2_init_server_fullstack_compression(grpc_end2end_test_fixture *f,
                                               grpc_channel_args *server_args) {
-  fullstack_compression_fixture_data *ffd = f->fixture_data;
+  fullstack_compression_fixture_data *ffd =
+      static_cast<fullstack_compression_fixture_data *>(f->fixture_data);
   if (ffd->server_args_compression != NULL) {
     grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT;
     grpc_channel_args_destroy(&exec_ctx, ffd->server_args_compression);
@@ -95,7 +98,8 @@
 
 void chttp2_tear_down_fullstack_compression(grpc_end2end_test_fixture *f) {
   grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT;
-  fullstack_compression_fixture_data *ffd = f->fixture_data;
+  fullstack_compression_fixture_data *ffd =
+      static_cast<fullstack_compression_fixture_data *>(f->fixture_data);
   grpc_channel_args_destroy(&exec_ctx, ffd->client_args_compression);
   grpc_channel_args_destroy(&exec_ctx, ffd->server_args_compression);
   gpr_free(ffd->localaddr);
diff --git a/test/core/end2end/fixtures/h2_fakesec.c b/test/core/end2end/fixtures/h2_fakesec.cc
similarity index 91%
rename from test/core/end2end/fixtures/h2_fakesec.c
rename to test/core/end2end/fixtures/h2_fakesec.cc
index e622d95..7cbcfcc 100644
--- a/test/core/end2end/fixtures/h2_fakesec.c
+++ b/test/core/end2end/fixtures/h2_fakesec.cc
@@ -39,7 +39,8 @@
   grpc_end2end_test_fixture f;
   int port = grpc_pick_unused_port_or_die();
   fullstack_secure_fixture_data *ffd =
-      gpr_malloc(sizeof(fullstack_secure_fixture_data));
+      static_cast<fullstack_secure_fixture_data *>(
+          gpr_malloc(sizeof(fullstack_secure_fixture_data)));
 
   memset(&f, 0, sizeof(f));
   gpr_join_host_port(&ffd->localaddr, "localhost", port);
@@ -62,7 +63,8 @@
 static void chttp2_init_client_secure_fullstack(
     grpc_end2end_test_fixture *f, grpc_channel_args *client_args,
     grpc_channel_credentials *creds) {
-  fullstack_secure_fixture_data *ffd = f->fixture_data;
+  fullstack_secure_fixture_data *ffd =
+      static_cast<fullstack_secure_fixture_data *>(f->fixture_data);
   f->client =
       grpc_secure_channel_create(creds, ffd->localaddr, client_args, NULL);
   GPR_ASSERT(f->client != NULL);
@@ -72,7 +74,8 @@
 static void chttp2_init_server_secure_fullstack(
     grpc_end2end_test_fixture *f, grpc_channel_args *server_args,
     grpc_server_credentials *server_creds) {
-  fullstack_secure_fixture_data *ffd = f->fixture_data;
+  fullstack_secure_fixture_data *ffd =
+      static_cast<fullstack_secure_fixture_data *>(f->fixture_data);
   if (f->server) {
     grpc_server_destroy(f->server);
   }
@@ -85,7 +88,8 @@
 }
 
 void chttp2_tear_down_secure_fullstack(grpc_end2end_test_fixture *f) {
-  fullstack_secure_fixture_data *ffd = f->fixture_data;
+  fullstack_secure_fixture_data *ffd =
+      static_cast<fullstack_secure_fixture_data *>(f->fixture_data);
   gpr_free(ffd->localaddr);
   gpr_free(ffd);
 }
diff --git a/test/core/end2end/fixtures/h2_fd.c b/test/core/end2end/fixtures/h2_fd.cc
similarity index 93%
rename from test/core/end2end/fixtures/h2_fd.c
rename to test/core/end2end/fixtures/h2_fd.cc
index e82c120..2dc7898 100644
--- a/test/core/end2end/fixtures/h2_fd.c
+++ b/test/core/end2end/fixtures/h2_fd.cc
@@ -50,7 +50,8 @@
 
 static grpc_end2end_test_fixture chttp2_create_fixture_socketpair(
     grpc_channel_args *client_args, grpc_channel_args *server_args) {
-  sp_fixture_data *fixture_data = gpr_malloc(sizeof(*fixture_data));
+  sp_fixture_data *fixture_data =
+      static_cast<sp_fixture_data *>(gpr_malloc(sizeof(*fixture_data)));
 
   grpc_end2end_test_fixture f;
   memset(&f, 0, sizeof(f));
@@ -66,7 +67,7 @@
 static void chttp2_init_client_socketpair(grpc_end2end_test_fixture *f,
                                           grpc_channel_args *client_args) {
   grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT;
-  sp_fixture_data *sfd = f->fixture_data;
+  sp_fixture_data *sfd = static_cast<sp_fixture_data *>(f->fixture_data);
 
   GPR_ASSERT(!f->client);
   f->client = grpc_insecure_channel_create_from_fd(
@@ -79,7 +80,7 @@
 static void chttp2_init_server_socketpair(grpc_end2end_test_fixture *f,
                                           grpc_channel_args *server_args) {
   grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT;
-  sp_fixture_data *sfd = f->fixture_data;
+  sp_fixture_data *sfd = static_cast<sp_fixture_data *>(f->fixture_data);
   GPR_ASSERT(!f->server);
   f->server = grpc_server_create(server_args, NULL);
   GPR_ASSERT(f->server);
diff --git a/test/core/end2end/fixtures/h2_full+pipe.c b/test/core/end2end/fixtures/h2_full+pipe.cc
similarity index 89%
rename from test/core/end2end/fixtures/h2_full+pipe.c
rename to test/core/end2end/fixtures/h2_full+pipe.cc
index c764bd7..beff1be 100644
--- a/test/core/end2end/fixtures/h2_full+pipe.c
+++ b/test/core/end2end/fixtures/h2_full+pipe.cc
@@ -49,7 +49,8 @@
     grpc_channel_args *client_args, grpc_channel_args *server_args) {
   grpc_end2end_test_fixture f;
   int port = grpc_pick_unused_port_or_die();
-  fullstack_fixture_data *ffd = gpr_malloc(sizeof(fullstack_fixture_data));
+  fullstack_fixture_data *ffd = static_cast<fullstack_fixture_data *>(
+      gpr_malloc(sizeof(fullstack_fixture_data)));
   memset(&f, 0, sizeof(f));
 
   gpr_join_host_port(&ffd->localaddr, "localhost", port);
@@ -63,14 +64,16 @@
 
 void chttp2_init_client_fullstack(grpc_end2end_test_fixture *f,
                                   grpc_channel_args *client_args) {
-  fullstack_fixture_data *ffd = f->fixture_data;
+  fullstack_fixture_data *ffd =
+      static_cast<fullstack_fixture_data *>(f->fixture_data);
   f->client = grpc_insecure_channel_create(ffd->localaddr, client_args, NULL);
   GPR_ASSERT(f->client);
 }
 
 void chttp2_init_server_fullstack(grpc_end2end_test_fixture *f,
                                   grpc_channel_args *server_args) {
-  fullstack_fixture_data *ffd = f->fixture_data;
+  fullstack_fixture_data *ffd =
+      static_cast<fullstack_fixture_data *>(f->fixture_data);
   if (f->server) {
     grpc_server_destroy(f->server);
   }
@@ -81,7 +84,8 @@
 }
 
 void chttp2_tear_down_fullstack(grpc_end2end_test_fixture *f) {
-  fullstack_fixture_data *ffd = f->fixture_data;
+  fullstack_fixture_data *ffd =
+      static_cast<fullstack_fixture_data *>(f->fixture_data);
   gpr_free(ffd->localaddr);
   gpr_free(ffd);
 }
diff --git a/test/core/end2end/fixtures/h2_full+trace.c b/test/core/end2end/fixtures/h2_full+trace.cc
similarity index 90%
rename from test/core/end2end/fixtures/h2_full+trace.c
rename to test/core/end2end/fixtures/h2_full+trace.cc
index 7eb29e0..efed0c5 100644
--- a/test/core/end2end/fixtures/h2_full+trace.c
+++ b/test/core/end2end/fixtures/h2_full+trace.cc
@@ -49,7 +49,8 @@
     grpc_channel_args *client_args, grpc_channel_args *server_args) {
   grpc_end2end_test_fixture f;
   int port = grpc_pick_unused_port_or_die();
-  fullstack_fixture_data *ffd = gpr_malloc(sizeof(fullstack_fixture_data));
+  fullstack_fixture_data *ffd = static_cast<fullstack_fixture_data *>(
+      gpr_malloc(sizeof(fullstack_fixture_data)));
   memset(&f, 0, sizeof(f));
 
   gpr_join_host_port(&ffd->localaddr, "localhost", port);
@@ -63,14 +64,16 @@
 
 void chttp2_init_client_fullstack(grpc_end2end_test_fixture *f,
                                   grpc_channel_args *client_args) {
-  fullstack_fixture_data *ffd = f->fixture_data;
+  fullstack_fixture_data *ffd =
+      static_cast<fullstack_fixture_data *>(f->fixture_data);
   f->client = grpc_insecure_channel_create(ffd->localaddr, client_args, NULL);
   GPR_ASSERT(f->client);
 }
 
 void chttp2_init_server_fullstack(grpc_end2end_test_fixture *f,
                                   grpc_channel_args *server_args) {
-  fullstack_fixture_data *ffd = f->fixture_data;
+  fullstack_fixture_data *ffd =
+      static_cast<fullstack_fixture_data *>(f->fixture_data);
   if (f->server) {
     grpc_server_destroy(f->server);
   }
@@ -81,7 +84,8 @@
 }
 
 void chttp2_tear_down_fullstack(grpc_end2end_test_fixture *f) {
-  fullstack_fixture_data *ffd = f->fixture_data;
+  fullstack_fixture_data *ffd =
+      static_cast<fullstack_fixture_data *>(f->fixture_data);
   gpr_free(ffd->localaddr);
   gpr_free(ffd);
 }
diff --git a/test/core/end2end/fixtures/h2_full+workarounds.c b/test/core/end2end/fixtures/h2_full+workarounds.cc
similarity index 88%
rename from test/core/end2end/fixtures/h2_full+workarounds.c
rename to test/core/end2end/fixtures/h2_full+workarounds.cc
index a98e5ad..d4930ce 100644
--- a/test/core/end2end/fixtures/h2_full+workarounds.c
+++ b/test/core/end2end/fixtures/h2_full+workarounds.cc
@@ -37,7 +37,7 @@
 #include "test/core/util/test_config.h"
 
 static char *workarounds_arg[GRPC_MAX_WORKAROUND_ID] = {
-    GRPC_ARG_WORKAROUND_CRONET_COMPRESSION};
+    const_cast<char *>(GRPC_ARG_WORKAROUND_CRONET_COMPRESSION)};
 
 typedef struct fullstack_fixture_data {
   char *localaddr;
@@ -47,7 +47,8 @@
     grpc_channel_args *client_args, grpc_channel_args *server_args) {
   grpc_end2end_test_fixture f;
   int port = grpc_pick_unused_port_or_die();
-  fullstack_fixture_data *ffd = gpr_malloc(sizeof(fullstack_fixture_data));
+  fullstack_fixture_data *ffd = static_cast<fullstack_fixture_data *>(
+      gpr_malloc(sizeof(fullstack_fixture_data)));
   memset(&f, 0, sizeof(f));
 
   gpr_join_host_port(&ffd->localaddr, "localhost", port);
@@ -61,7 +62,8 @@
 
 void chttp2_init_client_fullstack(grpc_end2end_test_fixture *f,
                                   grpc_channel_args *client_args) {
-  fullstack_fixture_data *ffd = f->fixture_data;
+  fullstack_fixture_data *ffd =
+      static_cast<fullstack_fixture_data *>(f->fixture_data);
   f->client = grpc_insecure_channel_create(ffd->localaddr, client_args, NULL);
   GPR_ASSERT(f->client);
 }
@@ -70,7 +72,8 @@
                                   grpc_channel_args *server_args) {
   int i;
   grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT;
-  fullstack_fixture_data *ffd = f->fixture_data;
+  fullstack_fixture_data *ffd =
+      static_cast<fullstack_fixture_data *>(f->fixture_data);
   grpc_arg args[GRPC_MAX_WORKAROUND_ID];
   for (i = 0; i < GRPC_MAX_WORKAROUND_ID; i++) {
     args[i].key = workarounds_arg[i];
@@ -91,7 +94,8 @@
 }
 
 void chttp2_tear_down_fullstack(grpc_end2end_test_fixture *f) {
-  fullstack_fixture_data *ffd = f->fixture_data;
+  fullstack_fixture_data *ffd =
+      static_cast<fullstack_fixture_data *>(f->fixture_data);
   gpr_free(ffd->localaddr);
   gpr_free(ffd);
 }
diff --git a/test/core/end2end/fixtures/h2_full.c b/test/core/end2end/fixtures/h2_full.cc
similarity index 88%
rename from test/core/end2end/fixtures/h2_full.c
rename to test/core/end2end/fixtures/h2_full.cc
index ae68bd9..d132198 100644
--- a/test/core/end2end/fixtures/h2_full.c
+++ b/test/core/end2end/fixtures/h2_full.cc
@@ -43,7 +43,8 @@
     grpc_channel_args *client_args, grpc_channel_args *server_args) {
   grpc_end2end_test_fixture f;
   int port = grpc_pick_unused_port_or_die();
-  fullstack_fixture_data *ffd = gpr_malloc(sizeof(fullstack_fixture_data));
+  fullstack_fixture_data *ffd = static_cast<fullstack_fixture_data *>(
+      gpr_malloc(sizeof(fullstack_fixture_data)));
   memset(&f, 0, sizeof(f));
 
   gpr_join_host_port(&ffd->localaddr, "localhost", port);
@@ -57,14 +58,16 @@
 
 void chttp2_init_client_fullstack(grpc_end2end_test_fixture *f,
                                   grpc_channel_args *client_args) {
-  fullstack_fixture_data *ffd = f->fixture_data;
+  fullstack_fixture_data *ffd =
+      static_cast<fullstack_fixture_data *>(f->fixture_data);
   f->client = grpc_insecure_channel_create(ffd->localaddr, client_args, NULL);
   GPR_ASSERT(f->client);
 }
 
 void chttp2_init_server_fullstack(grpc_end2end_test_fixture *f,
                                   grpc_channel_args *server_args) {
-  fullstack_fixture_data *ffd = f->fixture_data;
+  fullstack_fixture_data *ffd =
+      static_cast<fullstack_fixture_data *>(f->fixture_data);
   if (f->server) {
     grpc_server_destroy(f->server);
   }
@@ -75,7 +78,8 @@
 }
 
 void chttp2_tear_down_fullstack(grpc_end2end_test_fixture *f) {
-  fullstack_fixture_data *ffd = f->fixture_data;
+  fullstack_fixture_data *ffd =
+      static_cast<fullstack_fixture_data *>(f->fixture_data);
   gpr_free(ffd->localaddr);
   gpr_free(ffd);
 }
diff --git a/test/core/end2end/fixtures/h2_http_proxy.c b/test/core/end2end/fixtures/h2_http_proxy.cc
similarity index 90%
rename from test/core/end2end/fixtures/h2_http_proxy.c
rename to test/core/end2end/fixtures/h2_http_proxy.cc
index 6145892..5630b49 100644
--- a/test/core/end2end/fixtures/h2_http_proxy.c
+++ b/test/core/end2end/fixtures/h2_http_proxy.cc
@@ -47,7 +47,8 @@
     grpc_channel_args *client_args, grpc_channel_args *server_args) {
   grpc_end2end_test_fixture f;
   memset(&f, 0, sizeof(f));
-  fullstack_fixture_data *ffd = gpr_malloc(sizeof(fullstack_fixture_data));
+  fullstack_fixture_data *ffd = static_cast<fullstack_fixture_data *>(
+      gpr_malloc(sizeof(fullstack_fixture_data)));
   const int server_port = grpc_pick_unused_port_or_die();
   gpr_join_host_port(&ffd->server_addr, "localhost", server_port);
 
@@ -64,7 +65,8 @@
 
 void chttp2_init_client_fullstack(grpc_end2end_test_fixture *f,
                                   grpc_channel_args *client_args) {
-  fullstack_fixture_data *ffd = f->fixture_data;
+  fullstack_fixture_data *ffd =
+      static_cast<fullstack_fixture_data *>(f->fixture_data);
   char *proxy_uri;
 
   /* If testing for proxy auth, add credentials to proxy uri */
@@ -85,7 +87,8 @@
 
 void chttp2_init_server_fullstack(grpc_end2end_test_fixture *f,
                                   grpc_channel_args *server_args) {
-  fullstack_fixture_data *ffd = f->fixture_data;
+  fullstack_fixture_data *ffd =
+      static_cast<fullstack_fixture_data *>(f->fixture_data);
   if (f->server) {
     grpc_server_destroy(f->server);
   }
@@ -96,7 +99,8 @@
 }
 
 void chttp2_tear_down_fullstack(grpc_end2end_test_fixture *f) {
-  fullstack_fixture_data *ffd = f->fixture_data;
+  fullstack_fixture_data *ffd =
+      static_cast<fullstack_fixture_data *>(f->fixture_data);
   gpr_free(ffd->server_addr);
   grpc_end2end_http_proxy_destroy(ffd->proxy);
   gpr_free(ffd);
diff --git a/test/core/end2end/fixtures/h2_load_reporting.c b/test/core/end2end/fixtures/h2_load_reporting.cc
similarity index 89%
rename from test/core/end2end/fixtures/h2_load_reporting.c
rename to test/core/end2end/fixtures/h2_load_reporting.cc
index 8a05bb7..e461f13 100644
--- a/test/core/end2end/fixtures/h2_load_reporting.c
+++ b/test/core/end2end/fixtures/h2_load_reporting.cc
@@ -45,8 +45,8 @@
     grpc_channel_args *client_args, grpc_channel_args *server_args) {
   grpc_end2end_test_fixture f;
   int port = grpc_pick_unused_port_or_die();
-  load_reporting_fixture_data *ffd =
-      gpr_malloc(sizeof(load_reporting_fixture_data));
+  load_reporting_fixture_data *ffd = static_cast<load_reporting_fixture_data *>(
+      gpr_malloc(sizeof(load_reporting_fixture_data)));
   memset(&f, 0, sizeof(f));
 
   gpr_join_host_port(&ffd->localaddr, "localhost", port);
@@ -60,14 +60,16 @@
 
 void chttp2_init_client_load_reporting(grpc_end2end_test_fixture *f,
                                        grpc_channel_args *client_args) {
-  load_reporting_fixture_data *ffd = f->fixture_data;
+  load_reporting_fixture_data *ffd =
+      static_cast<load_reporting_fixture_data *>(f->fixture_data);
   f->client = grpc_insecure_channel_create(ffd->localaddr, client_args, NULL);
   GPR_ASSERT(f->client);
 }
 
 void chttp2_init_server_load_reporting(grpc_end2end_test_fixture *f,
                                        grpc_channel_args *server_args) {
-  load_reporting_fixture_data *ffd = f->fixture_data;
+  load_reporting_fixture_data *ffd =
+      static_cast<load_reporting_fixture_data *>(f->fixture_data);
   grpc_arg arg = grpc_load_reporting_enable_arg();
   if (f->server) {
     grpc_server_destroy(f->server);
@@ -85,7 +87,8 @@
 }
 
 void chttp2_tear_down_load_reporting(grpc_end2end_test_fixture *f) {
-  load_reporting_fixture_data *ffd = f->fixture_data;
+  load_reporting_fixture_data *ffd =
+      static_cast<load_reporting_fixture_data *>(f->fixture_data);
   gpr_free(ffd->localaddr);
   gpr_free(ffd);
 }
diff --git a/test/core/end2end/fixtures/h2_oauth2.c b/test/core/end2end/fixtures/h2_oauth2.cc
similarity index 91%
rename from test/core/end2end/fixtures/h2_oauth2.c
rename to test/core/end2end/fixtures/h2_oauth2.cc
index ee1d0b1..f1e49f2 100644
--- a/test/core/end2end/fixtures/h2_oauth2.c
+++ b/test/core/end2end/fixtures/h2_oauth2.cc
@@ -92,7 +92,8 @@
   grpc_end2end_test_fixture f;
   int port = grpc_pick_unused_port_or_die();
   fullstack_secure_fixture_data *ffd =
-      gpr_malloc(sizeof(fullstack_secure_fixture_data));
+      static_cast<fullstack_secure_fixture_data *>(
+          gpr_malloc(sizeof(fullstack_secure_fixture_data)));
   memset(&f, 0, sizeof(f));
 
   gpr_join_host_port(&ffd->localaddr, "localhost", port);
@@ -107,7 +108,8 @@
 static void chttp2_init_client_secure_fullstack(
     grpc_end2end_test_fixture *f, grpc_channel_args *client_args,
     grpc_channel_credentials *creds) {
-  fullstack_secure_fixture_data *ffd = f->fixture_data;
+  fullstack_secure_fixture_data *ffd =
+      static_cast<fullstack_secure_fixture_data *>(f->fixture_data);
   f->client =
       grpc_secure_channel_create(creds, ffd->localaddr, client_args, NULL);
   GPR_ASSERT(f->client != NULL);
@@ -117,7 +119,8 @@
 static void chttp2_init_server_secure_fullstack(
     grpc_end2end_test_fixture *f, grpc_channel_args *server_args,
     grpc_server_credentials *server_creds) {
-  fullstack_secure_fixture_data *ffd = f->fixture_data;
+  fullstack_secure_fixture_data *ffd =
+      static_cast<fullstack_secure_fixture_data *>(f->fixture_data);
   if (f->server) {
     grpc_server_destroy(f->server);
   }
@@ -130,7 +133,8 @@
 }
 
 void chttp2_tear_down_secure_fullstack(grpc_end2end_test_fixture *f) {
-  fullstack_secure_fixture_data *ffd = f->fixture_data;
+  fullstack_secure_fixture_data *ffd =
+      static_cast<fullstack_secure_fixture_data *>(f->fixture_data);
   gpr_free(ffd->localaddr);
   gpr_free(ffd);
 }
@@ -144,9 +148,10 @@
       &exec_ctx, "authorization", oauth2_md, true /* is_async */);
   grpc_channel_credentials *ssl_oauth2_creds =
       grpc_composite_channel_credentials_create(ssl_creds, oauth2_creds, NULL);
-  grpc_arg ssl_name_override = {GRPC_ARG_STRING,
-                                GRPC_SSL_TARGET_NAME_OVERRIDE_ARG,
-                                {"foo.test.google.fr"}};
+  grpc_arg ssl_name_override = {
+      GRPC_ARG_STRING,
+      const_cast<char *>(GRPC_SSL_TARGET_NAME_OVERRIDE_ARG),
+      {const_cast<char *>("foo.test.google.fr")}};
   grpc_channel_args *new_client_args =
       grpc_channel_args_copy_and_add(client_args, &ssl_name_override, 1);
   chttp2_init_client_secure_fullstack(f, new_client_args, ssl_oauth2_creds);
@@ -175,7 +180,8 @@
 }
 
 static grpc_auth_metadata_processor test_processor_create(int failing) {
-  test_processor_state *s = gpr_malloc(sizeof(*s));
+  test_processor_state *s =
+      static_cast<test_processor_state *>(gpr_malloc(sizeof(*s)));
   grpc_auth_metadata_processor result;
   s->pseudo_refcount = 1;
   result.state = s;
diff --git a/test/core/end2end/fixtures/h2_proxy.c b/test/core/end2end/fixtures/h2_proxy.cc
similarity index 90%
rename from test/core/end2end/fixtures/h2_proxy.c
rename to test/core/end2end/fixtures/h2_proxy.cc
index 069130b..e1eb968 100644
--- a/test/core/end2end/fixtures/h2_proxy.c
+++ b/test/core/end2end/fixtures/h2_proxy.cc
@@ -58,7 +58,8 @@
 static grpc_end2end_test_fixture chttp2_create_fixture_fullstack(
     grpc_channel_args *client_args, grpc_channel_args *server_args) {
   grpc_end2end_test_fixture f;
-  fullstack_fixture_data *ffd = gpr_malloc(sizeof(fullstack_fixture_data));
+  fullstack_fixture_data *ffd = static_cast<fullstack_fixture_data *>(
+      gpr_malloc(sizeof(fullstack_fixture_data)));
   memset(&f, 0, sizeof(f));
 
   ffd->proxy = grpc_end2end_proxy_create(&proxy_def, client_args, server_args);
@@ -72,7 +73,8 @@
 
 void chttp2_init_client_fullstack(grpc_end2end_test_fixture *f,
                                   grpc_channel_args *client_args) {
-  fullstack_fixture_data *ffd = f->fixture_data;
+  fullstack_fixture_data *ffd =
+      static_cast<fullstack_fixture_data *>(f->fixture_data);
   f->client = grpc_insecure_channel_create(
       grpc_end2end_proxy_get_client_target(ffd->proxy), client_args, NULL);
   GPR_ASSERT(f->client);
@@ -80,7 +82,8 @@
 
 void chttp2_init_server_fullstack(grpc_end2end_test_fixture *f,
                                   grpc_channel_args *server_args) {
-  fullstack_fixture_data *ffd = f->fixture_data;
+  fullstack_fixture_data *ffd =
+      static_cast<fullstack_fixture_data *>(f->fixture_data);
   if (f->server) {
     grpc_server_destroy(f->server);
   }
@@ -92,7 +95,8 @@
 }
 
 void chttp2_tear_down_fullstack(grpc_end2end_test_fixture *f) {
-  fullstack_fixture_data *ffd = f->fixture_data;
+  fullstack_fixture_data *ffd =
+      static_cast<fullstack_fixture_data *>(f->fixture_data);
   grpc_end2end_proxy_destroy(ffd->proxy);
   gpr_free(ffd);
 }
diff --git a/test/core/end2end/fixtures/h2_sockpair+trace.c b/test/core/end2end/fixtures/h2_sockpair+trace.cc
similarity index 91%
rename from test/core/end2end/fixtures/h2_sockpair+trace.c
rename to test/core/end2end/fixtures/h2_sockpair+trace.cc
index 39ccb84..81d0768 100644
--- a/test/core/end2end/fixtures/h2_sockpair+trace.c
+++ b/test/core/end2end/fixtures/h2_sockpair+trace.cc
@@ -49,9 +49,9 @@
    connected_channel without a client_channel */
 
 static void server_setup_transport(void *ts, grpc_transport *transport) {
-  grpc_end2end_test_fixture *f = ts;
+  grpc_end2end_test_fixture *f = static_cast<grpc_end2end_test_fixture *>(ts);
   grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT;
-  grpc_endpoint_pair *sfd = f->fixture_data;
+  grpc_endpoint_pair *sfd = static_cast<grpc_endpoint_pair *>(f->fixture_data);
   grpc_endpoint_add_to_pollset(&exec_ctx, sfd->server, grpc_cq_pollset(f->cq));
   grpc_server_setup_transport(&exec_ctx, f->server, transport, NULL,
                               grpc_server_get_channel_args(f->server));
@@ -65,7 +65,7 @@
 
 static void client_setup_transport(grpc_exec_ctx *exec_ctx, void *ts,
                                    grpc_transport *transport) {
-  sp_client_setup *cs = ts;
+  sp_client_setup *cs = static_cast<sp_client_setup *>(ts);
 
   cs->f->client =
       grpc_channel_create(exec_ctx, "socketpair-target", cs->client_args,
@@ -74,7 +74,8 @@
 
 static grpc_end2end_test_fixture chttp2_create_fixture_socketpair(
     grpc_channel_args *client_args, grpc_channel_args *server_args) {
-  grpc_endpoint_pair *sfd = gpr_malloc(sizeof(grpc_endpoint_pair));
+  grpc_endpoint_pair *sfd =
+      static_cast<grpc_endpoint_pair *>(gpr_malloc(sizeof(grpc_endpoint_pair)));
 
   grpc_end2end_test_fixture f;
   memset(&f, 0, sizeof(f));
@@ -90,7 +91,7 @@
 static void chttp2_init_client_socketpair(grpc_end2end_test_fixture *f,
                                           grpc_channel_args *client_args) {
   grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT;
-  grpc_endpoint_pair *sfd = f->fixture_data;
+  grpc_endpoint_pair *sfd = static_cast<grpc_endpoint_pair *>(f->fixture_data);
   grpc_transport *transport;
   sp_client_setup cs;
   cs.client_args = client_args;
@@ -106,7 +107,7 @@
 static void chttp2_init_server_socketpair(grpc_end2end_test_fixture *f,
                                           grpc_channel_args *server_args) {
   grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT;
-  grpc_endpoint_pair *sfd = f->fixture_data;
+  grpc_endpoint_pair *sfd = static_cast<grpc_endpoint_pair *>(f->fixture_data);
   grpc_transport *transport;
   GPR_ASSERT(!f->server);
   f->server = grpc_server_create(server_args, NULL);
diff --git a/test/core/end2end/fixtures/h2_sockpair.c b/test/core/end2end/fixtures/h2_sockpair.cc
similarity index 90%
rename from test/core/end2end/fixtures/h2_sockpair.c
rename to test/core/end2end/fixtures/h2_sockpair.cc
index 03566ea..78b5ad8 100644
--- a/test/core/end2end/fixtures/h2_sockpair.c
+++ b/test/core/end2end/fixtures/h2_sockpair.cc
@@ -43,9 +43,9 @@
    connected_channel without a client_channel */
 
 static void server_setup_transport(void *ts, grpc_transport *transport) {
-  grpc_end2end_test_fixture *f = ts;
+  grpc_end2end_test_fixture *f = static_cast<grpc_end2end_test_fixture *>(ts);
   grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT;
-  grpc_endpoint_pair *sfd = f->fixture_data;
+  grpc_endpoint_pair *sfd = static_cast<grpc_endpoint_pair *>(f->fixture_data);
   grpc_endpoint_add_to_pollset(&exec_ctx, sfd->server, grpc_cq_pollset(f->cq));
   grpc_server_setup_transport(&exec_ctx, f->server, transport, NULL,
                               grpc_server_get_channel_args(f->server));
@@ -59,7 +59,7 @@
 
 static void client_setup_transport(grpc_exec_ctx *exec_ctx, void *ts,
                                    grpc_transport *transport) {
-  sp_client_setup *cs = ts;
+  sp_client_setup *cs = static_cast<sp_client_setup *>(ts);
 
   cs->f->client =
       grpc_channel_create(exec_ctx, "socketpair-target", cs->client_args,
@@ -68,7 +68,8 @@
 
 static grpc_end2end_test_fixture chttp2_create_fixture_socketpair(
     grpc_channel_args *client_args, grpc_channel_args *server_args) {
-  grpc_endpoint_pair *sfd = gpr_malloc(sizeof(grpc_endpoint_pair));
+  grpc_endpoint_pair *sfd =
+      static_cast<grpc_endpoint_pair *>(gpr_malloc(sizeof(grpc_endpoint_pair)));
 
   grpc_end2end_test_fixture f;
   memset(&f, 0, sizeof(f));
@@ -84,7 +85,7 @@
 static void chttp2_init_client_socketpair(grpc_end2end_test_fixture *f,
                                           grpc_channel_args *client_args) {
   grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT;
-  grpc_endpoint_pair *sfd = f->fixture_data;
+  grpc_endpoint_pair *sfd = static_cast<grpc_endpoint_pair *>(f->fixture_data);
   grpc_transport *transport;
   sp_client_setup cs;
   cs.client_args = client_args;
@@ -100,7 +101,7 @@
 static void chttp2_init_server_socketpair(grpc_end2end_test_fixture *f,
                                           grpc_channel_args *server_args) {
   grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT;
-  grpc_endpoint_pair *sfd = f->fixture_data;
+  grpc_endpoint_pair *sfd = static_cast<grpc_endpoint_pair *>(f->fixture_data);
   grpc_transport *transport;
   GPR_ASSERT(!f->server);
   f->server = grpc_server_create(server_args, NULL);
diff --git a/test/core/end2end/fixtures/h2_sockpair_1byte.c b/test/core/end2end/fixtures/h2_sockpair_1byte.cc
similarity index 83%
rename from test/core/end2end/fixtures/h2_sockpair_1byte.c
rename to test/core/end2end/fixtures/h2_sockpair_1byte.cc
index c75a387..b144771 100644
--- a/test/core/end2end/fixtures/h2_sockpair_1byte.c
+++ b/test/core/end2end/fixtures/h2_sockpair_1byte.cc
@@ -43,9 +43,9 @@
    connected_channel without a client_channel */
 
 static void server_setup_transport(void *ts, grpc_transport *transport) {
-  grpc_end2end_test_fixture *f = ts;
+  grpc_end2end_test_fixture *f = static_cast<grpc_end2end_test_fixture *>(ts);
   grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT;
-  grpc_endpoint_pair *sfd = f->fixture_data;
+  grpc_endpoint_pair *sfd = static_cast<grpc_endpoint_pair *>(f->fixture_data);
   grpc_endpoint_add_to_pollset(&exec_ctx, sfd->server, grpc_cq_pollset(f->cq));
   grpc_server_setup_transport(&exec_ctx, f->server, transport, NULL,
                               grpc_server_get_channel_args(f->server));
@@ -59,7 +59,7 @@
 
 static void client_setup_transport(grpc_exec_ctx *exec_ctx, void *ts,
                                    grpc_transport *transport) {
-  sp_client_setup *cs = ts;
+  sp_client_setup *cs = static_cast<sp_client_setup *>(ts);
 
   cs->f->client =
       grpc_channel_create(exec_ctx, "socketpair-target", cs->client_args,
@@ -68,7 +68,8 @@
 
 static grpc_end2end_test_fixture chttp2_create_fixture_socketpair(
     grpc_channel_args *client_args, grpc_channel_args *server_args) {
-  grpc_endpoint_pair *sfd = gpr_malloc(sizeof(grpc_endpoint_pair));
+  grpc_endpoint_pair *sfd =
+      static_cast<grpc_endpoint_pair *>(gpr_malloc(sizeof(grpc_endpoint_pair)));
 
   grpc_end2end_test_fixture f;
   memset(&f, 0, sizeof(f));
@@ -76,16 +77,17 @@
   f.cq = grpc_completion_queue_create_for_next(NULL);
   f.shutdown_cq = grpc_completion_queue_create_for_pluck(NULL);
 
-  grpc_arg a[] = {{.key = GRPC_ARG_TCP_READ_CHUNK_SIZE,
-                   .type = GRPC_ARG_INTEGER,
-                   .value.integer = 1},
-                  {.key = GRPC_ARG_TCP_MIN_READ_CHUNK_SIZE,
-                   .type = GRPC_ARG_INTEGER,
-                   .value.integer = 1},
-                  {.key = GRPC_ARG_TCP_MAX_READ_CHUNK_SIZE,
-                   .type = GRPC_ARG_INTEGER,
-                   .value.integer = 1}};
-  grpc_channel_args args = {.num_args = GPR_ARRAY_SIZE(a), .args = a};
+  grpc_arg a[3];
+  a[0].key = const_cast<char *>(GRPC_ARG_TCP_READ_CHUNK_SIZE);
+  a[0].type = GRPC_ARG_INTEGER;
+  a[0].value.integer = 1;
+  a[1].key = const_cast<char *>(GRPC_ARG_TCP_MIN_READ_CHUNK_SIZE);
+  a[1].type = GRPC_ARG_INTEGER;
+  a[1].value.integer = 1;
+  a[2].key = const_cast<char *>(GRPC_ARG_TCP_MAX_READ_CHUNK_SIZE);
+  a[2].type = GRPC_ARG_INTEGER;
+  a[2].value.integer = 1;
+  grpc_channel_args args = {GPR_ARRAY_SIZE(a), a};
   *sfd = grpc_iomgr_create_endpoint_pair("fixture", &args);
 
   return f;
@@ -94,7 +96,7 @@
 static void chttp2_init_client_socketpair(grpc_end2end_test_fixture *f,
                                           grpc_channel_args *client_args) {
   grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT;
-  grpc_endpoint_pair *sfd = f->fixture_data;
+  grpc_endpoint_pair *sfd = static_cast<grpc_endpoint_pair *>(f->fixture_data);
   grpc_transport *transport;
   sp_client_setup cs;
   cs.client_args = client_args;
@@ -110,7 +112,7 @@
 static void chttp2_init_server_socketpair(grpc_end2end_test_fixture *f,
                                           grpc_channel_args *server_args) {
   grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT;
-  grpc_endpoint_pair *sfd = f->fixture_data;
+  grpc_endpoint_pair *sfd = static_cast<grpc_endpoint_pair *>(f->fixture_data);
   grpc_transport *transport;
   GPR_ASSERT(!f->server);
   f->server = grpc_server_create(server_args, NULL);
diff --git a/test/core/end2end/fixtures/h2_ssl.c b/test/core/end2end/fixtures/h2_ssl.cc
similarity index 90%
rename from test/core/end2end/fixtures/h2_ssl.c
rename to test/core/end2end/fixtures/h2_ssl.cc
index 0bac464..045a8b7 100644
--- a/test/core/end2end/fixtures/h2_ssl.c
+++ b/test/core/end2end/fixtures/h2_ssl.cc
@@ -43,7 +43,8 @@
   grpc_end2end_test_fixture f;
   int port = grpc_pick_unused_port_or_die();
   fullstack_secure_fixture_data *ffd =
-      gpr_malloc(sizeof(fullstack_secure_fixture_data));
+      static_cast<fullstack_secure_fixture_data *>(
+          gpr_malloc(sizeof(fullstack_secure_fixture_data)));
   memset(&f, 0, sizeof(f));
 
   gpr_join_host_port(&ffd->localaddr, "localhost", port);
@@ -66,7 +67,8 @@
 static void chttp2_init_client_secure_fullstack(
     grpc_end2end_test_fixture *f, grpc_channel_args *client_args,
     grpc_channel_credentials *creds) {
-  fullstack_secure_fixture_data *ffd = f->fixture_data;
+  fullstack_secure_fixture_data *ffd =
+      static_cast<fullstack_secure_fixture_data *>(f->fixture_data);
   f->client =
       grpc_secure_channel_create(creds, ffd->localaddr, client_args, NULL);
   GPR_ASSERT(f->client != NULL);
@@ -76,7 +78,8 @@
 static void chttp2_init_server_secure_fullstack(
     grpc_end2end_test_fixture *f, grpc_channel_args *server_args,
     grpc_server_credentials *server_creds) {
-  fullstack_secure_fixture_data *ffd = f->fixture_data;
+  fullstack_secure_fixture_data *ffd =
+      static_cast<fullstack_secure_fixture_data *>(f->fixture_data);
   if (f->server) {
     grpc_server_destroy(f->server);
   }
@@ -89,7 +92,8 @@
 }
 
 void chttp2_tear_down_secure_fullstack(grpc_end2end_test_fixture *f) {
-  fullstack_secure_fixture_data *ffd = f->fixture_data;
+  fullstack_secure_fixture_data *ffd =
+      static_cast<fullstack_secure_fixture_data *>(f->fixture_data);
   gpr_free(ffd->localaddr);
   gpr_free(ffd);
 }
@@ -98,9 +102,10 @@
     grpc_end2end_test_fixture *f, grpc_channel_args *client_args) {
   grpc_channel_credentials *ssl_creds =
       grpc_ssl_credentials_create(NULL, NULL, NULL);
-  grpc_arg ssl_name_override = {GRPC_ARG_STRING,
-                                GRPC_SSL_TARGET_NAME_OVERRIDE_ARG,
-                                {"foo.test.google.fr"}};
+  grpc_arg ssl_name_override = {
+      GRPC_ARG_STRING,
+      const_cast<char *>(GRPC_SSL_TARGET_NAME_OVERRIDE_ARG),
+      {const_cast<char *>("foo.test.google.fr")}};
   grpc_channel_args *new_client_args =
       grpc_channel_args_copy_and_add(client_args, &ssl_name_override, 1);
   chttp2_init_client_secure_fullstack(f, new_client_args, ssl_creds);
diff --git a/test/core/end2end/fixtures/h2_ssl_proxy.c b/test/core/end2end/fixtures/h2_ssl_proxy.cc
similarity index 90%
rename from test/core/end2end/fixtures/h2_ssl_proxy.c
rename to test/core/end2end/fixtures/h2_ssl_proxy.cc
index 8bc7183..b9b68c8 100644
--- a/test/core/end2end/fixtures/h2_ssl_proxy.c
+++ b/test/core/end2end/fixtures/h2_ssl_proxy.cc
@@ -56,9 +56,10 @@
   grpc_channel *channel;
   grpc_channel_credentials *ssl_creds =
       grpc_ssl_credentials_create(NULL, NULL, NULL);
-  grpc_arg ssl_name_override = {GRPC_ARG_STRING,
-                                GRPC_SSL_TARGET_NAME_OVERRIDE_ARG,
-                                {"foo.test.google.fr"}};
+  grpc_arg ssl_name_override = {
+      GRPC_ARG_STRING,
+      const_cast<char *>(GRPC_SSL_TARGET_NAME_OVERRIDE_ARG),
+      {const_cast<char *>("foo.test.google.fr")}};
   grpc_channel_args *new_client_args =
       grpc_channel_args_copy_and_add(client_args, &ssl_name_override, 1);
   channel =
@@ -79,7 +80,8 @@
     grpc_channel_args *client_args, grpc_channel_args *server_args) {
   grpc_end2end_test_fixture f;
   fullstack_secure_fixture_data *ffd =
-      gpr_malloc(sizeof(fullstack_secure_fixture_data));
+      static_cast<fullstack_secure_fixture_data *>(
+          gpr_malloc(sizeof(fullstack_secure_fixture_data)));
   memset(&f, 0, sizeof(f));
 
   ffd->proxy = grpc_end2end_proxy_create(&proxy_def, client_args, server_args);
@@ -102,7 +104,8 @@
 static void chttp2_init_client_secure_fullstack(
     grpc_end2end_test_fixture *f, grpc_channel_args *client_args,
     grpc_channel_credentials *creds) {
-  fullstack_secure_fixture_data *ffd = f->fixture_data;
+  fullstack_secure_fixture_data *ffd =
+      static_cast<fullstack_secure_fixture_data *>(f->fixture_data);
   f->client = grpc_secure_channel_create(
       creds, grpc_end2end_proxy_get_client_target(ffd->proxy), client_args,
       NULL);
@@ -113,7 +116,8 @@
 static void chttp2_init_server_secure_fullstack(
     grpc_end2end_test_fixture *f, grpc_channel_args *server_args,
     grpc_server_credentials *server_creds) {
-  fullstack_secure_fixture_data *ffd = f->fixture_data;
+  fullstack_secure_fixture_data *ffd =
+      static_cast<fullstack_secure_fixture_data *>(f->fixture_data);
   if (f->server) {
     grpc_server_destroy(f->server);
   }
@@ -126,7 +130,8 @@
 }
 
 void chttp2_tear_down_secure_fullstack(grpc_end2end_test_fixture *f) {
-  fullstack_secure_fixture_data *ffd = f->fixture_data;
+  fullstack_secure_fixture_data *ffd =
+      static_cast<fullstack_secure_fixture_data *>(f->fixture_data);
   grpc_end2end_proxy_destroy(ffd->proxy);
   gpr_free(ffd);
 }
@@ -135,9 +140,10 @@
     grpc_end2end_test_fixture *f, grpc_channel_args *client_args) {
   grpc_channel_credentials *ssl_creds =
       grpc_ssl_credentials_create(NULL, NULL, NULL);
-  grpc_arg ssl_name_override = {GRPC_ARG_STRING,
-                                GRPC_SSL_TARGET_NAME_OVERRIDE_ARG,
-                                {"foo.test.google.fr"}};
+  grpc_arg ssl_name_override = {
+      GRPC_ARG_STRING,
+      const_cast<char *>(GRPC_SSL_TARGET_NAME_OVERRIDE_ARG),
+      {const_cast<char *>("foo.test.google.fr")}};
   grpc_channel_args *new_client_args =
       grpc_channel_args_copy_and_add(client_args, &ssl_name_override, 1);
   chttp2_init_client_secure_fullstack(f, new_client_args, ssl_creds);
diff --git a/test/core/end2end/fixtures/h2_uds.c b/test/core/end2end/fixtures/h2_uds.cc
similarity index 89%
rename from test/core/end2end/fixtures/h2_uds.c
rename to test/core/end2end/fixtures/h2_uds.cc
index 05a3198..f9336b5 100644
--- a/test/core/end2end/fixtures/h2_uds.c
+++ b/test/core/end2end/fixtures/h2_uds.cc
@@ -48,7 +48,8 @@
 static grpc_end2end_test_fixture chttp2_create_fixture_fullstack(
     grpc_channel_args *client_args, grpc_channel_args *server_args) {
   grpc_end2end_test_fixture f;
-  fullstack_fixture_data *ffd = gpr_malloc(sizeof(fullstack_fixture_data));
+  fullstack_fixture_data *ffd = static_cast<fullstack_fixture_data *>(
+      gpr_malloc(sizeof(fullstack_fixture_data)));
   memset(&f, 0, sizeof(f));
 
   gpr_asprintf(&ffd->localaddr, "unix:/tmp/grpc_fullstack_test.%d.%d", getpid(),
@@ -63,13 +64,15 @@
 
 void chttp2_init_client_fullstack(grpc_end2end_test_fixture *f,
                                   grpc_channel_args *client_args) {
-  fullstack_fixture_data *ffd = f->fixture_data;
+  fullstack_fixture_data *ffd =
+      static_cast<fullstack_fixture_data *>(f->fixture_data);
   f->client = grpc_insecure_channel_create(ffd->localaddr, client_args, NULL);
 }
 
 void chttp2_init_server_fullstack(grpc_end2end_test_fixture *f,
                                   grpc_channel_args *server_args) {
-  fullstack_fixture_data *ffd = f->fixture_data;
+  fullstack_fixture_data *ffd =
+      static_cast<fullstack_fixture_data *>(f->fixture_data);
   if (f->server) {
     grpc_server_destroy(f->server);
   }
@@ -80,7 +83,8 @@
 }
 
 void chttp2_tear_down_fullstack(grpc_end2end_test_fixture *f) {
-  fullstack_fixture_data *ffd = f->fixture_data;
+  fullstack_fixture_data *ffd =
+      static_cast<fullstack_fixture_data *>(f->fixture_data);
   gpr_free(ffd->localaddr);
   gpr_free(ffd);
 }
diff --git a/test/core/end2end/fixtures/http_proxy_fixture.c b/test/core/end2end/fixtures/http_proxy_fixture.cc
similarity index 100%
rename from test/core/end2end/fixtures/http_proxy_fixture.c
rename to test/core/end2end/fixtures/http_proxy_fixture.cc
diff --git a/test/core/end2end/fixtures/inproc.c b/test/core/end2end/fixtures/inproc.cc
similarity index 93%
rename from test/core/end2end/fixtures/inproc.c
rename to test/core/end2end/fixtures/inproc.cc
index 6f742f0..c075dc6 100644
--- a/test/core/end2end/fixtures/inproc.c
+++ b/test/core/end2end/fixtures/inproc.cc
@@ -42,7 +42,8 @@
 static grpc_end2end_test_fixture inproc_create_fixture(
     grpc_channel_args *client_args, grpc_channel_args *server_args) {
   grpc_end2end_test_fixture f;
-  inproc_fixture_data *ffd = gpr_malloc(sizeof(inproc_fixture_data));
+  inproc_fixture_data *ffd = static_cast<inproc_fixture_data *>(
+      gpr_malloc(sizeof(inproc_fixture_data)));
   memset(&f, 0, sizeof(f));
 
   f.fixture_data = ffd;
@@ -69,7 +70,8 @@
 }
 
 void inproc_tear_down(grpc_end2end_test_fixture *f) {
-  inproc_fixture_data *ffd = f->fixture_data;
+  inproc_fixture_data *ffd =
+      static_cast<inproc_fixture_data *>(f->fixture_data);
   gpr_free(ffd);
 }
 
diff --git a/test/core/end2end/fixtures/proxy.c b/test/core/end2end/fixtures/proxy.cc
similarity index 100%
rename from test/core/end2end/fixtures/proxy.c
rename to test/core/end2end/fixtures/proxy.cc
diff --git a/test/core/end2end/fuzzers/api_fuzzer.c b/test/core/end2end/fuzzers/api_fuzzer.cc
similarity index 94%
rename from test/core/end2end/fuzzers/api_fuzzer.c
rename to test/core/end2end/fuzzers/api_fuzzer.cc
index 0a787bb..2db8ed4 100644
--- a/test/core/end2end/fuzzers/api_fuzzer.c
+++ b/test/core/end2end/fuzzers/api_fuzzer.cc
@@ -91,7 +91,7 @@
   do {
     if (cap == sz) {
       cap = GPR_MAX(3 * cap / 2, cap + 8);
-      str = gpr_realloc(str, cap);
+      str = static_cast<char *>(gpr_realloc(str, cap));
     }
     c = (char)next_byte(inp);
     str[sz++] = c;
@@ -114,7 +114,7 @@
   } else {
     if (special != NULL) *special = false;
   }
-  *buffer = gpr_malloc(*length);
+  *buffer = static_cast<char *>(gpr_malloc(*length));
   for (size_t i = 0; i < *length; i++) {
     (*buffer)[i] = (char)next_byte(inp);
   }
@@ -196,7 +196,7 @@
 
 static grpc_channel_args *read_args(input_stream *inp) {
   size_t n = next_byte(inp);
-  grpc_arg *args = gpr_malloc(sizeof(*args) * n);
+  grpc_arg *args = static_cast<grpc_arg *>(gpr_malloc(sizeof(*args) * n));
   for (size_t i = 0; i < n; i++) {
     switch (next_byte(inp)) {
       case 1:
@@ -222,7 +222,8 @@
         break;
     }
   }
-  grpc_channel_args *a = gpr_malloc(sizeof(*a));
+  grpc_channel_args *a =
+      static_cast<grpc_channel_args *>(gpr_malloc(sizeof(*a)));
   a->args = args;
   a->num_args = n;
   return a;
@@ -373,13 +374,15 @@
 
 static void finish_resolve(grpc_exec_ctx *exec_ctx, void *arg,
                            grpc_error *error) {
-  addr_req *r = arg;
+  addr_req *r = static_cast<addr_req *>(arg);
 
   if (error == GRPC_ERROR_NONE && 0 == strcmp(r->addr, "server")) {
     if (r->addrs != NULL) {
-      grpc_resolved_addresses *addrs = gpr_malloc(sizeof(*addrs));
+      grpc_resolved_addresses *addrs =
+          static_cast<grpc_resolved_addresses *>(gpr_malloc(sizeof(*addrs)));
       addrs->naddrs = 1;
-      addrs->addrs = gpr_malloc(sizeof(*addrs->addrs));
+      addrs->addrs = static_cast<grpc_resolved_address *>(
+          gpr_malloc(sizeof(*addrs->addrs)));
       addrs->addrs[0].len = 0;
       *r->addrs = addrs;
     } else if (r->lb_addrs != NULL) {
@@ -403,7 +406,7 @@
                         grpc_pollset_set *interested_parties,
                         grpc_closure *on_done,
                         grpc_resolved_addresses **addresses) {
-  addr_req *r = gpr_malloc(sizeof(*r));
+  addr_req *r = static_cast<addr_req *>(gpr_malloc(sizeof(*r)));
   r->addr = gpr_strdup(addr);
   r->on_done = on_done;
   r->addrs = addresses;
@@ -418,7 +421,7 @@
     const char *default_port, grpc_pollset_set *interested_parties,
     grpc_closure *on_done, grpc_lb_addresses **lb_addrs, bool check_grpclb,
     char **service_config_json) {
-  addr_req *r = gpr_malloc(sizeof(*r));
+  addr_req *r = static_cast<addr_req *>(gpr_malloc(sizeof(*r)));
   r->addr = gpr_strdup(addr);
   r->on_done = on_done;
   r->addrs = NULL;
@@ -449,7 +452,7 @@
 } future_connect;
 
 static void do_connect(grpc_exec_ctx *exec_ctx, void *arg, grpc_error *error) {
-  future_connect *fc = arg;
+  future_connect *fc = static_cast<future_connect *>(arg);
   if (error != GRPC_ERROR_NONE) {
     *fc->ep = NULL;
     GRPC_CLOSURE_SCHED(exec_ctx, fc->closure, GRPC_ERROR_REF(error));
@@ -480,7 +483,7 @@
     return;
   }
 
-  future_connect *fc = gpr_malloc(sizeof(*fc));
+  future_connect *fc = static_cast<future_connect *>(gpr_malloc(sizeof(*fc)));
   fc->closure = closure;
   fc->ep = ep;
   fc->deadline = deadline;
@@ -508,7 +511,7 @@
 
 static validator *create_validator(void (*validate)(void *arg, bool success),
                                    void *arg) {
-  validator *v = gpr_malloc(sizeof(*v));
+  validator *v = static_cast<validator *>(gpr_malloc(sizeof(*v)));
   v->validate = validate;
   v->arg = arg;
   return v;
@@ -528,14 +531,15 @@
 
 static connectivity_watch *make_connectivity_watch(gpr_timespec s,
                                                    int *counter) {
-  connectivity_watch *o = gpr_malloc(sizeof(*o));
+  connectivity_watch *o =
+      static_cast<connectivity_watch *>(gpr_malloc(sizeof(*o)));
   o->deadline = s;
   o->counter = counter;
   return o;
 }
 
 static void validate_connectivity_watch(void *p, bool success) {
-  connectivity_watch *w = p;
+  connectivity_watch *w = static_cast<connectivity_watch *>(p);
   if (!success) {
     GPR_ASSERT(gpr_time_cmp(gpr_now(w->deadline.clock_type), w->deadline) >= 0);
   }
@@ -585,7 +589,7 @@
 static call_state *g_active_call;
 
 static call_state *new_call(call_state *sibling, call_state_type type) {
-  call_state *c = gpr_malloc(sizeof(*c));
+  call_state *c = static_cast<call_state *>(gpr_malloc(sizeof(*c)));
   memset(c, 0, sizeof(*c));
   if (sibling != NULL) {
     c->next = sibling;
@@ -634,8 +638,8 @@
 static void add_to_free(call_state *call, void *p) {
   if (call->num_to_free == call->cap_to_free) {
     call->cap_to_free = GPR_MAX(8, 2 * call->cap_to_free);
-    call->to_free =
-        gpr_realloc(call->to_free, sizeof(*call->to_free) * call->cap_to_free);
+    call->to_free = static_cast<void **>(
+        gpr_realloc(call->to_free, sizeof(*call->to_free) * call->cap_to_free));
   }
   call->to_free[call->num_to_free++] = p;
 }
@@ -643,12 +647,12 @@
 static grpc_slice *add_slice_to_unref(call_state *call, grpc_slice s) {
   if (call->num_slices_to_unref == call->cap_slices_to_unref) {
     call->cap_slices_to_unref = GPR_MAX(8, 2 * call->cap_slices_to_unref);
-    call->slices_to_unref =
-        gpr_realloc(call->slices_to_unref,
-                    sizeof(*call->slices_to_unref) * call->cap_slices_to_unref);
+    call->slices_to_unref = static_cast<grpc_slice **>(gpr_realloc(
+        call->slices_to_unref,
+        sizeof(*call->slices_to_unref) * call->cap_slices_to_unref));
   }
   call->slices_to_unref[call->num_slices_to_unref] =
-      gpr_malloc(sizeof(grpc_slice));
+      static_cast<grpc_slice *>(gpr_malloc(sizeof(grpc_slice)));
   *call->slices_to_unref[call->num_slices_to_unref++] = s;
   return call->slices_to_unref[call->num_slices_to_unref - 1];
 }
@@ -657,7 +661,8 @@
                           grpc_metadata **metadata, call_state *cs) {
   *count = next_byte(inp);
   if (*count) {
-    *metadata = gpr_malloc(*count * sizeof(**metadata));
+    *metadata =
+        static_cast<grpc_metadata *>(gpr_malloc(*count * sizeof(**metadata)));
     memset(*metadata, 0, *count * sizeof(**metadata));
     for (size_t i = 0; i < *count; i++) {
       (*metadata)[i].key = read_string_like_slice(inp);
@@ -667,7 +672,7 @@
       add_slice_to_unref(cs, (*metadata)[i].value);
     }
   } else {
-    *metadata = gpr_malloc(1);
+    *metadata = static_cast<grpc_metadata *>(gpr_malloc(1));
   }
   add_to_free(cs, *metadata);
 }
@@ -679,7 +684,7 @@
 }
 
 static void finished_request_call(void *csp, bool success) {
-  call_state *cs = csp;
+  call_state *cs = static_cast<call_state *>(csp);
   GPR_ASSERT(cs->pending_ops > 0);
   --cs->pending_ops;
   if (success) {
@@ -696,7 +701,7 @@
 } batch_info;
 
 static void finished_batch(void *p, bool success) {
-  batch_info *bi = p;
+  batch_info *bi = static_cast<batch_info *>(p);
   --bi->cs->pending_ops;
   if ((bi->has_ops & (1u << GRPC_OP_RECV_MESSAGE)) &&
       (bi->cs->done_flags & DONE_FLAG_CALL_CLOSED)) {
@@ -721,7 +726,7 @@
 
 static validator *make_finished_batch_validator(call_state *cs,
                                                 uint8_t has_ops) {
-  batch_info *bi = gpr_malloc(sizeof(*bi));
+  batch_info *bi = static_cast<batch_info *>(gpr_malloc(sizeof(*bi)));
   bi->cs = cs;
   bi->has_ops = has_ops;
   return create_validator(finished_batch, bi);
@@ -803,7 +808,7 @@
             cq, gpr_inf_past(GPR_CLOCK_REALTIME), NULL);
         switch (ev.type) {
           case GRPC_OP_COMPLETE: {
-            validator *v = ev.tag;
+            validator *v = static_cast<validator *>(ev.tag);
             v->validate(v->arg, ev.success);
             gpr_free(v);
             break;
@@ -992,7 +997,8 @@
           end(&inp);
           break;
         }
-        grpc_op *ops = gpr_malloc(sizeof(grpc_op) * num_ops);
+        grpc_op *ops =
+            static_cast<grpc_op *>(gpr_malloc(sizeof(grpc_op) * num_ops));
         if (num_ops > 0) memset(ops, 0, sizeof(grpc_op) * num_ops);
         bool ok = true;
         size_t i;
@@ -1035,7 +1041,8 @@
                   &op->data.send_status_from_server.trailing_metadata_count,
                   &op->data.send_status_from_server.trailing_metadata,
                   g_active_call);
-              op->data.send_status_from_server.status = next_byte(&inp);
+              op->data.send_status_from_server.status =
+                  static_cast<grpc_status_code>(next_byte(&inp));
               op->data.send_status_from_server.status_details =
                   add_slice_to_unref(g_active_call,
                                      read_buffer_like_slice(&inp));
diff --git a/test/core/end2end/fuzzers/client_fuzzer.c b/test/core/end2end/fuzzers/client_fuzzer.cc
similarity index 100%
rename from test/core/end2end/fuzzers/client_fuzzer.c
rename to test/core/end2end/fuzzers/client_fuzzer.cc
diff --git a/test/core/end2end/fuzzers/server_fuzzer.c b/test/core/end2end/fuzzers/server_fuzzer.cc
similarity index 100%
rename from test/core/end2end/fuzzers/server_fuzzer.c
rename to test/core/end2end/fuzzers/server_fuzzer.cc
diff --git a/test/core/end2end/gen_build_yaml.py b/test/core/end2end/gen_build_yaml.py
index f7f996d..7c8e7f4 100755
--- a/test/core/end2end/gen_build_yaml.py
+++ b/test/core/end2end/gen_build_yaml.py
@@ -220,9 +220,9 @@
               'build': 'private',
               'language': 'c',
               'secure': True,
-              'src': ['test/core/end2end/end2end_tests.c',
-                      'test/core/end2end/end2end_test_utils.c'] + [
-                  'test/core/end2end/tests/%s.c' % t
+              'src': ['test/core/end2end/end2end_tests.cc',
+                      'test/core/end2end/end2end_test_utils.cc'] + [
+                  'test/core/end2end/tests/%s.cc' % t
                   for t in sorted(END2END_TESTS.keys())],
               'headers': ['test/core/end2end/tests/cancel_test_helpers.h',
                           'test/core/end2end/end2end_tests.h'],
@@ -235,9 +235,9 @@
               'build': 'private',
               'language': 'c',
               'secure': False,
-              'src': ['test/core/end2end/end2end_nosec_tests.c',
-                      'test/core/end2end/end2end_test_utils.c'] + [
-                  'test/core/end2end/tests/%s.c' % t
+              'src': ['test/core/end2end/end2end_nosec_tests.cc',
+                      'test/core/end2end/end2end_test_utils.cc'] + [
+                  'test/core/end2end/tests/%s.cc' % t
                   for t in sorted(END2END_TESTS.keys())
                   if not END2END_TESTS[t].secure],
               'headers': ['test/core/end2end/tests/cancel_test_helpers.h',
@@ -252,7 +252,7 @@
               'build': 'test',
               'language': 'c',
               'run': False,
-              'src': ['test/core/end2end/fixtures/%s.c' % f],
+              'src': ['test/core/end2end/fixtures/%s.cc' % f],
               'platforms': END2END_FIXTURES[f].platforms,
               'ci_platforms': (END2END_FIXTURES[f].platforms
                                if END2END_FIXTURES[f].ci_mac else without(
@@ -269,7 +269,7 @@
               'build': 'test',
               'language': 'c',
               'secure': False,
-              'src': ['test/core/end2end/fixtures/%s.c' % f],
+              'src': ['test/core/end2end/fixtures/%s.cc' % f],
               'run': False,
               'platforms': END2END_FIXTURES[f].platforms,
               'ci_platforms': (END2END_FIXTURES[f].platforms
diff --git a/test/core/end2end/generate_tests.bzl b/test/core/end2end/generate_tests.bzl
index 89a95ed..94f9f98 100755
--- a/test/core/end2end/generate_tests.bzl
+++ b/test/core/end2end/generate_tests.bzl
@@ -186,8 +186,8 @@
 def grpc_end2end_tests():
   grpc_cc_library(
     name = 'end2end_tests',
-    srcs = ['end2end_tests.c', 'end2end_test_utils.c'] + [
-             'tests/%s.c' % t
+    srcs = ['end2end_tests.cc', 'end2end_test_utils.cc'] + [
+             'tests/%s.cc' % t
              for t in sorted(END2END_TESTS.keys())],
     hdrs = [
       'tests/cancel_test_helpers.h',
@@ -205,7 +205,7 @@
   for f, fopt in END2END_FIXTURES.items():
     grpc_cc_binary(
       name = '%s_test' % f,
-      srcs = ['fixtures/%s.c' % f],
+      srcs = ['fixtures/%s.cc' % f],
       language = "C",
       deps = [
         ':end2end_tests',
diff --git a/test/core/end2end/goaway_server_test.c b/test/core/end2end/goaway_server_test.cc
similarity index 96%
rename from test/core/end2end/goaway_server_test.c
rename to test/core/end2end/goaway_server_test.cc
index c3aca13..c0d7fb8 100644
--- a/test/core/end2end/goaway_server_test.c
+++ b/test/core/end2end/goaway_server_test.cc
@@ -74,9 +74,11 @@
     gpr_mu_unlock(&g_mu);
     error = GRPC_ERROR_CREATE_FROM_STATIC_STRING("Forced Failure");
   } else {
-    *addrs = gpr_malloc(sizeof(**addrs));
+    *addrs =
+        static_cast<grpc_resolved_addresses *>(gpr_malloc(sizeof(**addrs)));
     (*addrs)->naddrs = 1;
-    (*addrs)->addrs = gpr_malloc(sizeof(*(*addrs)->addrs));
+    (*addrs)->addrs = static_cast<grpc_resolved_address *>(
+        gpr_malloc(sizeof(*(*addrs)->addrs)));
     memset((*addrs)->addrs, 0, sizeof(*(*addrs)->addrs));
     struct sockaddr_in *sa = (struct sockaddr_in *)(*addrs)->addrs[0].addr;
     sa->sin_family = AF_INET;
@@ -106,7 +108,8 @@
     error = GRPC_ERROR_CREATE_FROM_STATIC_STRING("Forced Failure");
   } else {
     *lb_addrs = grpc_lb_addresses_create(1, NULL);
-    struct sockaddr_in *sa = gpr_zalloc(sizeof(struct sockaddr_in));
+    struct sockaddr_in *sa = static_cast<struct sockaddr_in *>(
+        gpr_zalloc(sizeof(struct sockaddr_in)));
     sa->sin_family = AF_INET;
     sa->sin_addr.s_addr = htonl(0x7f000001);
     sa->sin_port = htons((uint16_t)g_resolve_port);
@@ -167,7 +170,8 @@
   grpc_channel_args client_args;
   grpc_arg arg_array[1];
   arg_array[0].type = GRPC_ARG_INTEGER;
-  arg_array[0].key = "grpc.testing.fixed_reconnect_backoff_ms";
+  arg_array[0].key =
+      const_cast<char *>("grpc.testing.fixed_reconnect_backoff_ms");
   arg_array[0].value.integer = 1000;
   client_args.args = arg_array;
   client_args.num_args = 1;
diff --git a/test/core/end2end/invalid_call_argument_test.c b/test/core/end2end/invalid_call_argument_test.cc
similarity index 99%
rename from test/core/end2end/invalid_call_argument_test.c
rename to test/core/end2end/invalid_call_argument_test.cc
index e3fd5a8..ac704a6 100644
--- a/test/core/end2end/invalid_call_argument_test.c
+++ b/test/core/end2end/invalid_call_argument_test.cc
@@ -258,7 +258,7 @@
   op->reserved = NULL;
   op++;
   op->op = GRPC_OP_SEND_MESSAGE;
-  op->data.send_message.send_message = tag(2);
+  op->data.send_message.send_message = static_cast<grpc_byte_buffer *>(tag(2));
   op->flags = 0;
   op->reserved = NULL;
   op++;
diff --git a/test/core/end2end/multiple_server_queues_test.c b/test/core/end2end/multiple_server_queues_test.cc
similarity index 100%
rename from test/core/end2end/multiple_server_queues_test.c
rename to test/core/end2end/multiple_server_queues_test.cc
diff --git a/test/core/end2end/no_server_test.c b/test/core/end2end/no_server_test.cc
similarity index 100%
rename from test/core/end2end/no_server_test.c
rename to test/core/end2end/no_server_test.cc
diff --git a/test/core/end2end/tests/authority_not_supported.c b/test/core/end2end/tests/authority_not_supported.cc
similarity index 100%
rename from test/core/end2end/tests/authority_not_supported.c
rename to test/core/end2end/tests/authority_not_supported.cc
diff --git a/test/core/end2end/tests/bad_hostname.c b/test/core/end2end/tests/bad_hostname.cc
similarity index 100%
rename from test/core/end2end/tests/bad_hostname.c
rename to test/core/end2end/tests/bad_hostname.cc
diff --git a/test/core/end2end/tests/bad_ping.c b/test/core/end2end/tests/bad_ping.cc
similarity index 84%
rename from test/core/end2end/tests/bad_ping.c
rename to test/core/end2end/tests/bad_ping.cc
index 34cc8e7..50e02ed 100644
--- a/test/core/end2end/tests/bad_ping.c
+++ b/test/core/end2end/tests/bad_ping.cc
@@ -66,30 +66,30 @@
 static void test_bad_ping(grpc_end2end_test_config config) {
   grpc_end2end_test_fixture f = config.create_fixture(NULL, NULL);
   cq_verifier *cqv = cq_verifier_create(f.cq);
-  grpc_arg client_a[] = {
-      {.type = GRPC_ARG_INTEGER,
-       .key = GRPC_ARG_HTTP2_MIN_SENT_PING_INTERVAL_WITHOUT_DATA_MS,
-       .value.integer = 10},
-      {.type = GRPC_ARG_INTEGER,
-       .key = GRPC_ARG_HTTP2_MAX_PINGS_WITHOUT_DATA,
-       .value.integer = 0},
-      {.type = GRPC_ARG_INTEGER,
-       .key = GRPC_ARG_HTTP2_BDP_PROBE,
-       .value.integer = 0}};
-  grpc_arg server_a[] = {
-      {.type = GRPC_ARG_INTEGER,
-       .key = GRPC_ARG_HTTP2_MIN_RECV_PING_INTERVAL_WITHOUT_DATA_MS,
-       .value.integer = 300000 /* 5 minutes */},
-      {.type = GRPC_ARG_INTEGER,
-       .key = GRPC_ARG_HTTP2_MAX_PING_STRIKES,
-       .value.integer = MAX_PING_STRIKES},
-      {.type = GRPC_ARG_INTEGER,
-       .key = GRPC_ARG_HTTP2_BDP_PROBE,
-       .value.integer = 0}};
-  grpc_channel_args client_args = {.num_args = GPR_ARRAY_SIZE(client_a),
-                                   .args = client_a};
-  grpc_channel_args server_args = {.num_args = GPR_ARRAY_SIZE(server_a),
-                                   .args = server_a};
+  grpc_arg client_a[3];
+  client_a[0].type = GRPC_ARG_INTEGER;
+  client_a[0].key =
+      const_cast<char *>(GRPC_ARG_HTTP2_MIN_SENT_PING_INTERVAL_WITHOUT_DATA_MS);
+  client_a[0].value.integer = 10;
+  client_a[1].type = GRPC_ARG_INTEGER;
+  client_a[1].key = const_cast<char *>(GRPC_ARG_HTTP2_MAX_PINGS_WITHOUT_DATA);
+  client_a[1].value.integer = 0;
+  client_a[2].type = GRPC_ARG_INTEGER;
+  client_a[2].key = const_cast<char *>(GRPC_ARG_HTTP2_BDP_PROBE);
+  client_a[2].value.integer = 0;
+  grpc_arg server_a[3];
+  server_a[0].type = GRPC_ARG_INTEGER;
+  server_a[0].key =
+      const_cast<char *>(GRPC_ARG_HTTP2_MIN_RECV_PING_INTERVAL_WITHOUT_DATA_MS);
+  server_a[0].value.integer = 300000 /* 5 minutes */;
+  server_a[1].type = GRPC_ARG_INTEGER;
+  server_a[1].key = const_cast<char *>(GRPC_ARG_HTTP2_MAX_PING_STRIKES);
+  server_a[1].value.integer = MAX_PING_STRIKES;
+  server_a[2].type = GRPC_ARG_INTEGER;
+  server_a[2].key = const_cast<char *>(GRPC_ARG_HTTP2_BDP_PROBE);
+  server_a[2].value.integer = 0;
+  grpc_channel_args client_args = {GPR_ARRAY_SIZE(client_a), client_a};
+  grpc_channel_args server_args = {GPR_ARRAY_SIZE(server_a), server_a};
 
   config.init_client(&f, &client_args);
   config.init_server(&f, &server_args);
diff --git a/test/core/end2end/tests/binary_metadata.c b/test/core/end2end/tests/binary_metadata.cc
similarity index 100%
rename from test/core/end2end/tests/binary_metadata.c
rename to test/core/end2end/tests/binary_metadata.cc
diff --git a/test/core/end2end/tests/call_creds.c b/test/core/end2end/tests/call_creds.cc
similarity index 98%
rename from test/core/end2end/tests/call_creds.c
rename to test/core/end2end/tests/call_creds.cc
index 600005c..dfe6d19 100644
--- a/test/core/end2end/tests/call_creds.c
+++ b/test/core/end2end/tests/call_creds.cc
@@ -49,7 +49,9 @@
   config.init_client(&f, NULL);
   if (fail_server_auth_check) {
     grpc_arg fail_auth_arg = {
-        GRPC_ARG_STRING, FAIL_AUTH_CHECK_SERVER_ARG_NAME, {NULL}};
+        GRPC_ARG_STRING,
+        const_cast<char *>(FAIL_AUTH_CHECK_SERVER_ARG_NAME),
+        {NULL}};
     grpc_channel_args args;
     args.num_args = 1;
     args.args = &fail_auth_arg;
diff --git a/test/core/end2end/tests/cancel_after_accept.c b/test/core/end2end/tests/cancel_after_accept.cc
similarity index 98%
rename from test/core/end2end/tests/cancel_after_accept.c
rename to test/core/end2end/tests/cancel_after_accept.cc
index c3ac0c3..58e807b 100644
--- a/test/core/end2end/tests/cancel_after_accept.c
+++ b/test/core/end2end/tests/cancel_after_accept.cc
@@ -125,8 +125,8 @@
   if (use_service_config) {
     grpc_arg arg;
     arg.type = GRPC_ARG_STRING;
-    arg.key = GRPC_ARG_SERVICE_CONFIG;
-    arg.value.string =
+    arg.key = const_cast<char *>(GRPC_ARG_SERVICE_CONFIG);
+    arg.value.string = const_cast<char *>(
         "{\n"
         "  \"methodConfig\": [ {\n"
         "    \"name\": [\n"
@@ -134,7 +134,7 @@
         "    ],\n"
         "    \"timeout\": \"5s\"\n"
         "  } ]\n"
-        "}";
+        "}");
     args = grpc_channel_args_copy_and_add(args, &arg, 1);
   }
 
diff --git a/test/core/end2end/tests/cancel_after_client_done.c b/test/core/end2end/tests/cancel_after_client_done.cc
similarity index 100%
rename from test/core/end2end/tests/cancel_after_client_done.c
rename to test/core/end2end/tests/cancel_after_client_done.cc
diff --git a/test/core/end2end/tests/cancel_after_invoke.c b/test/core/end2end/tests/cancel_after_invoke.cc
similarity index 100%
rename from test/core/end2end/tests/cancel_after_invoke.c
rename to test/core/end2end/tests/cancel_after_invoke.cc
diff --git a/test/core/end2end/tests/cancel_after_round_trip.c b/test/core/end2end/tests/cancel_after_round_trip.cc
similarity index 98%
rename from test/core/end2end/tests/cancel_after_round_trip.c
rename to test/core/end2end/tests/cancel_after_round_trip.cc
index bc41bd3..202eeb5 100644
--- a/test/core/end2end/tests/cancel_after_round_trip.c
+++ b/test/core/end2end/tests/cancel_after_round_trip.cc
@@ -127,8 +127,8 @@
   if (use_service_config) {
     grpc_arg arg;
     arg.type = GRPC_ARG_STRING;
-    arg.key = GRPC_ARG_SERVICE_CONFIG;
-    arg.value.string =
+    arg.key = const_cast<char *>(GRPC_ARG_SERVICE_CONFIG);
+    arg.value.string = const_cast<char *>(
         "{\n"
         "  \"methodConfig\": [ {\n"
         "    \"name\": [\n"
@@ -136,7 +136,7 @@
         "    ],\n"
         "    \"timeout\": \"5s\"\n"
         "  } ]\n"
-        "}";
+        "}");
     args = grpc_channel_args_copy_and_add(args, &arg, 1);
   }
 
diff --git a/test/core/end2end/tests/cancel_before_invoke.c b/test/core/end2end/tests/cancel_before_invoke.cc
similarity index 100%
rename from test/core/end2end/tests/cancel_before_invoke.c
rename to test/core/end2end/tests/cancel_before_invoke.cc
diff --git a/test/core/end2end/tests/cancel_in_a_vacuum.c b/test/core/end2end/tests/cancel_in_a_vacuum.cc
similarity index 100%
rename from test/core/end2end/tests/cancel_in_a_vacuum.c
rename to test/core/end2end/tests/cancel_in_a_vacuum.cc
diff --git a/test/core/end2end/tests/cancel_with_status.c b/test/core/end2end/tests/cancel_with_status.cc
similarity index 100%
rename from test/core/end2end/tests/cancel_with_status.c
rename to test/core/end2end/tests/cancel_with_status.cc
diff --git a/test/core/end2end/tests/compressed_payload.c b/test/core/end2end/tests/compressed_payload.cc
similarity index 100%
rename from test/core/end2end/tests/compressed_payload.c
rename to test/core/end2end/tests/compressed_payload.cc
diff --git a/test/core/end2end/tests/connectivity.c b/test/core/end2end/tests/connectivity.cc
similarity index 98%
rename from test/core/end2end/tests/connectivity.c
rename to test/core/end2end/tests/connectivity.cc
index 610243e..2cba259 100644
--- a/test/core/end2end/tests/connectivity.c
+++ b/test/core/end2end/tests/connectivity.cc
@@ -56,7 +56,8 @@
   grpc_channel_args client_args;
   grpc_arg arg_array[1];
   arg_array[0].type = GRPC_ARG_INTEGER;
-  arg_array[0].key = "grpc.testing.fixed_reconnect_backoff_ms";
+  arg_array[0].key =
+      const_cast<char *>("grpc.testing.fixed_reconnect_backoff_ms");
   arg_array[0].value.integer = 1000;
   client_args.args = arg_array;
   client_args.num_args = 1;
diff --git a/test/core/end2end/tests/default_host.c b/test/core/end2end/tests/default_host.cc
similarity index 100%
rename from test/core/end2end/tests/default_host.c
rename to test/core/end2end/tests/default_host.cc
diff --git a/test/core/end2end/tests/disappearing_server.c b/test/core/end2end/tests/disappearing_server.cc
similarity index 100%
rename from test/core/end2end/tests/disappearing_server.c
rename to test/core/end2end/tests/disappearing_server.cc
diff --git a/test/core/end2end/tests/empty_batch.c b/test/core/end2end/tests/empty_batch.cc
similarity index 100%
rename from test/core/end2end/tests/empty_batch.c
rename to test/core/end2end/tests/empty_batch.cc
diff --git a/test/core/end2end/tests/filter_call_init_fails.c b/test/core/end2end/tests/filter_call_init_fails.cc
similarity index 100%
rename from test/core/end2end/tests/filter_call_init_fails.c
rename to test/core/end2end/tests/filter_call_init_fails.cc
diff --git a/test/core/end2end/tests/filter_causes_close.c b/test/core/end2end/tests/filter_causes_close.cc
similarity index 100%
rename from test/core/end2end/tests/filter_causes_close.c
rename to test/core/end2end/tests/filter_causes_close.cc
diff --git a/test/core/end2end/tests/filter_latency.c b/test/core/end2end/tests/filter_latency.cc
similarity index 100%
rename from test/core/end2end/tests/filter_latency.c
rename to test/core/end2end/tests/filter_latency.cc
diff --git a/test/core/end2end/tests/graceful_server_shutdown.c b/test/core/end2end/tests/graceful_server_shutdown.cc
similarity index 100%
rename from test/core/end2end/tests/graceful_server_shutdown.c
rename to test/core/end2end/tests/graceful_server_shutdown.cc
diff --git a/test/core/end2end/tests/high_initial_seqno.c b/test/core/end2end/tests/high_initial_seqno.cc
similarity index 98%
rename from test/core/end2end/tests/high_initial_seqno.c
rename to test/core/end2end/tests/high_initial_seqno.cc
index 04b9483..2b72d09 100644
--- a/test/core/end2end/tests/high_initial_seqno.c
+++ b/test/core/end2end/tests/high_initial_seqno.cc
@@ -211,7 +211,7 @@
   char *name;
 
   client_arg.type = GRPC_ARG_INTEGER;
-  client_arg.key = GRPC_ARG_HTTP2_INITIAL_SEQUENCE_NUMBER;
+  client_arg.key = const_cast<char *>(GRPC_ARG_HTTP2_INITIAL_SEQUENCE_NUMBER);
   client_arg.value.integer = initial_sequence_number;
 
   client_args.num_args = 1;
diff --git a/test/core/end2end/tests/hpack_size.c b/test/core/end2end/tests/hpack_size.cc
similarity index 98%
rename from test/core/end2end/tests/hpack_size.c
rename to test/core/end2end/tests/hpack_size.cc
index 9358c11..e838be9 100644
--- a/test/core/end2end/tests/hpack_size.c
+++ b/test/core/end2end/tests/hpack_size.cc
@@ -360,13 +360,13 @@
   char *name;
 
   server_arg.type = GRPC_ARG_INTEGER;
-  server_arg.key = GRPC_ARG_HTTP2_HPACK_TABLE_SIZE_DECODER;
+  server_arg.key = const_cast<char *>(GRPC_ARG_HTTP2_HPACK_TABLE_SIZE_DECODER);
   server_arg.value.integer = decode_size;
   server_args.num_args = 1;
   server_args.args = &server_arg;
 
   client_arg.type = GRPC_ARG_INTEGER;
-  client_arg.key = GRPC_ARG_HTTP2_HPACK_TABLE_SIZE_ENCODER;
+  client_arg.key = const_cast<char *>(GRPC_ARG_HTTP2_HPACK_TABLE_SIZE_ENCODER);
   client_arg.value.integer = encode_size;
   client_args.num_args = 1;
   client_args.args = &client_arg;
diff --git a/test/core/end2end/tests/idempotent_request.c b/test/core/end2end/tests/idempotent_request.cc
similarity index 100%
rename from test/core/end2end/tests/idempotent_request.c
rename to test/core/end2end/tests/idempotent_request.cc
diff --git a/test/core/end2end/tests/invoke_large_request.c b/test/core/end2end/tests/invoke_large_request.cc
similarity index 98%
rename from test/core/end2end/tests/invoke_large_request.c
rename to test/core/end2end/tests/invoke_large_request.cc
index ff269fa..c0e6310 100644
--- a/test/core/end2end/tests/invoke_large_request.c
+++ b/test/core/end2end/tests/invoke_large_request.cc
@@ -96,10 +96,10 @@
 
   grpc_arg args[2];
   args[0].type = GRPC_ARG_INTEGER;
-  args[0].key = GRPC_ARG_HTTP2_MAX_FRAME_SIZE;
+  args[0].key = const_cast<char *>(GRPC_ARG_HTTP2_MAX_FRAME_SIZE);
   args[0].value.integer = max_frame_size;
   args[1].type = GRPC_ARG_INTEGER;
-  args[1].key = GRPC_ARG_HTTP2_STREAM_LOOKAHEAD_BYTES;
+  args[1].key = const_cast<char *>(GRPC_ARG_HTTP2_STREAM_LOOKAHEAD_BYTES);
   args[1].value.integer = lookahead_bytes;
   grpc_channel_args channel_args = {GPR_ARRAY_SIZE(args), args};
 
diff --git a/test/core/end2end/tests/keepalive_timeout.c b/test/core/end2end/tests/keepalive_timeout.cc
similarity index 90%
rename from test/core/end2end/tests/keepalive_timeout.c
rename to test/core/end2end/tests/keepalive_timeout.cc
index 0053368..721c136 100644
--- a/test/core/end2end/tests/keepalive_timeout.c
+++ b/test/core/end2end/tests/keepalive_timeout.cc
@@ -98,18 +98,19 @@
   grpc_byte_buffer *response_payload =
       grpc_raw_byte_buffer_create(&response_payload_slice, 1);
 
-  grpc_arg keepalive_arg_elems[] = {{.type = GRPC_ARG_INTEGER,
-                                     .key = GRPC_ARG_KEEPALIVE_TIME_MS,
-                                     .value.integer = 1500},
-                                    {.type = GRPC_ARG_INTEGER,
-                                     .key = GRPC_ARG_KEEPALIVE_TIMEOUT_MS,
-                                     .value.integer = 0},
-                                    {.type = GRPC_ARG_INTEGER,
-                                     .key = GRPC_ARG_HTTP2_BDP_PROBE,
-                                     .value.integer = 0}};
-  grpc_channel_args keepalive_args = {
-      .num_args = GPR_ARRAY_SIZE(keepalive_arg_elems),
-      .args = keepalive_arg_elems};
+  grpc_arg keepalive_arg_elems[3];
+  keepalive_arg_elems[0].type = GRPC_ARG_INTEGER;
+  keepalive_arg_elems[0].key = const_cast<char *>(GRPC_ARG_KEEPALIVE_TIME_MS);
+  keepalive_arg_elems[0].value.integer = 1500;
+  keepalive_arg_elems[1].type = GRPC_ARG_INTEGER;
+  keepalive_arg_elems[1].key =
+      const_cast<char *>(GRPC_ARG_KEEPALIVE_TIMEOUT_MS);
+  keepalive_arg_elems[1].value.integer = 0;
+  keepalive_arg_elems[2].type = GRPC_ARG_INTEGER;
+  keepalive_arg_elems[2].key = const_cast<char *>(GRPC_ARG_HTTP2_BDP_PROBE);
+  keepalive_arg_elems[2].value.integer = 0;
+  grpc_channel_args keepalive_args = {GPR_ARRAY_SIZE(keepalive_arg_elems),
+                                      keepalive_arg_elems};
 
   grpc_end2end_test_fixture f =
       begin_test(config, "keepalive_timeout", &keepalive_args, NULL);
diff --git a/test/core/end2end/tests/large_metadata.c b/test/core/end2end/tests/large_metadata.cc
similarity index 97%
rename from test/core/end2end/tests/large_metadata.c
rename to test/core/end2end/tests/large_metadata.cc
index 81a45d8..c2aa4d1 100644
--- a/test/core/end2end/tests/large_metadata.c
+++ b/test/core/end2end/tests/large_metadata.cc
@@ -94,9 +94,10 @@
       grpc_raw_byte_buffer_create(&request_payload_slice, 1);
   grpc_metadata meta;
   const size_t large_size = 64 * 1024;
-  grpc_arg arg = {GRPC_ARG_INTEGER,
-                  GRPC_ARG_MAX_METADATA_SIZE,
-                  {.integer = (int)large_size + 1024}};
+  grpc_arg arg;
+  arg.type = GRPC_ARG_INTEGER;
+  arg.key = const_cast<char *>(GRPC_ARG_MAX_METADATA_SIZE);
+  arg.value.integer = (int)large_size + 1024;
   grpc_channel_args args = {1, &arg};
   grpc_end2end_test_fixture f =
       begin_test(config, "test_request_with_large_metadata", &args, &args);
diff --git a/test/core/end2end/tests/load_reporting_hook.c b/test/core/end2end/tests/load_reporting_hook.cc
similarity index 100%
rename from test/core/end2end/tests/load_reporting_hook.c
rename to test/core/end2end/tests/load_reporting_hook.cc
diff --git a/test/core/end2end/tests/max_concurrent_streams.c b/test/core/end2end/tests/max_concurrent_streams.cc
similarity index 98%
rename from test/core/end2end/tests/max_concurrent_streams.c
rename to test/core/end2end/tests/max_concurrent_streams.cc
index d18c139..deb44bb 100644
--- a/test/core/end2end/tests/max_concurrent_streams.c
+++ b/test/core/end2end/tests/max_concurrent_streams.cc
@@ -221,7 +221,7 @@
   int got_client_start;
   int got_server_start;
 
-  server_arg.key = GRPC_ARG_MAX_CONCURRENT_STREAMS;
+  server_arg.key = const_cast<char *>(GRPC_ARG_MAX_CONCURRENT_STREAMS);
   server_arg.type = GRPC_ARG_INTEGER;
   server_arg.value.integer = 1;
 
@@ -461,7 +461,7 @@
   grpc_op *op;
   int was_cancelled;
 
-  server_arg.key = GRPC_ARG_MAX_CONCURRENT_STREAMS;
+  server_arg.key = const_cast<char *>(GRPC_ARG_MAX_CONCURRENT_STREAMS);
   server_arg.type = GRPC_ARG_INTEGER;
   server_arg.value.integer = 1;
 
@@ -655,7 +655,7 @@
   grpc_op *op;
   int was_cancelled;
 
-  server_arg.key = GRPC_ARG_MAX_CONCURRENT_STREAMS;
+  server_arg.key = const_cast<char *>(GRPC_ARG_MAX_CONCURRENT_STREAMS);
   server_arg.type = GRPC_ARG_INTEGER;
   server_arg.value.integer = 1;
 
diff --git a/test/core/end2end/tests/max_connection_age.c b/test/core/end2end/tests/max_connection_age.cc
similarity index 89%
rename from test/core/end2end/tests/max_connection_age.c
rename to test/core/end2end/tests/max_connection_age.cc
index b6daa59..01cae9e 100644
--- a/test/core/end2end/tests/max_connection_age.c
+++ b/test/core/end2end/tests/max_connection_age.cc
@@ -80,17 +80,17 @@
 static void test_max_age_forcibly_close(grpc_end2end_test_config config) {
   grpc_end2end_test_fixture f = config.create_fixture(NULL, NULL);
   cq_verifier *cqv = cq_verifier_create(f.cq);
-  grpc_arg server_a[] = {{.type = GRPC_ARG_INTEGER,
-                          .key = GRPC_ARG_MAX_CONNECTION_AGE_MS,
-                          .value.integer = MAX_CONNECTION_AGE_MS},
-                         {.type = GRPC_ARG_INTEGER,
-                          .key = GRPC_ARG_MAX_CONNECTION_AGE_GRACE_MS,
-                          .value.integer = MAX_CONNECTION_AGE_GRACE_MS},
-                         {.type = GRPC_ARG_INTEGER,
-                          .key = GRPC_ARG_MAX_CONNECTION_IDLE_MS,
-                          .value.integer = MAX_CONNECTION_IDLE_MS}};
-  grpc_channel_args server_args = {.num_args = GPR_ARRAY_SIZE(server_a),
-                                   .args = server_a};
+  grpc_arg server_a[3];
+  server_a[0].type = GRPC_ARG_INTEGER;
+  server_a[0].key = const_cast<char *>(GRPC_ARG_MAX_CONNECTION_AGE_MS);
+  server_a[0].value.integer = MAX_CONNECTION_AGE_MS;
+  server_a[1].type = GRPC_ARG_INTEGER;
+  server_a[1].key = const_cast<char *>(GRPC_ARG_MAX_CONNECTION_AGE_GRACE_MS);
+  server_a[1].value.integer = MAX_CONNECTION_AGE_GRACE_MS;
+  server_a[2].type = GRPC_ARG_INTEGER;
+  server_a[2].key = const_cast<char *>(GRPC_ARG_MAX_CONNECTION_IDLE_MS);
+  server_a[2].value.integer = MAX_CONNECTION_IDLE_MS;
+  grpc_channel_args server_args = {GPR_ARRAY_SIZE(server_a), server_a};
 
   config.init_client(&f, NULL);
   config.init_server(&f, &server_args);
@@ -223,17 +223,17 @@
 static void test_max_age_gracefully_close(grpc_end2end_test_config config) {
   grpc_end2end_test_fixture f = config.create_fixture(NULL, NULL);
   cq_verifier *cqv = cq_verifier_create(f.cq);
-  grpc_arg server_a[] = {{.type = GRPC_ARG_INTEGER,
-                          .key = GRPC_ARG_MAX_CONNECTION_AGE_MS,
-                          .value.integer = MAX_CONNECTION_AGE_MS},
-                         {.type = GRPC_ARG_INTEGER,
-                          .key = GRPC_ARG_MAX_CONNECTION_AGE_GRACE_MS,
-                          .value.integer = INT_MAX},
-                         {.type = GRPC_ARG_INTEGER,
-                          .key = GRPC_ARG_MAX_CONNECTION_IDLE_MS,
-                          .value.integer = MAX_CONNECTION_IDLE_MS}};
-  grpc_channel_args server_args = {.num_args = GPR_ARRAY_SIZE(server_a),
-                                   .args = server_a};
+  grpc_arg server_a[3];
+  server_a[0].type = GRPC_ARG_INTEGER;
+  server_a[0].key = const_cast<char *>(GRPC_ARG_MAX_CONNECTION_AGE_MS);
+  server_a[0].value.integer = MAX_CONNECTION_AGE_MS;
+  server_a[1].type = GRPC_ARG_INTEGER;
+  server_a[1].key = const_cast<char *>(GRPC_ARG_MAX_CONNECTION_AGE_GRACE_MS);
+  server_a[1].value.integer = INT_MAX;
+  server_a[2].type = GRPC_ARG_INTEGER;
+  server_a[2].key = const_cast<char *>(GRPC_ARG_MAX_CONNECTION_IDLE_MS);
+  server_a[2].value.integer = MAX_CONNECTION_IDLE_MS;
+  grpc_channel_args server_args = {GPR_ARRAY_SIZE(server_a), server_a};
 
   config.init_client(&f, NULL);
   config.init_server(&f, &server_args);
diff --git a/test/core/end2end/tests/max_connection_idle.c b/test/core/end2end/tests/max_connection_idle.cc
similarity index 89%
rename from test/core/end2end/tests/max_connection_idle.c
rename to test/core/end2end/tests/max_connection_idle.cc
index f26b0be..a44d154 100644
--- a/test/core/end2end/tests/max_connection_idle.c
+++ b/test/core/end2end/tests/max_connection_idle.cc
@@ -171,19 +171,20 @@
   grpc_connectivity_state state = GRPC_CHANNEL_IDLE;
   cq_verifier *cqv = cq_verifier_create(f.cq);
 
-  grpc_arg client_a[] = {{.type = GRPC_ARG_INTEGER,
-                          .key = "grpc.testing.fixed_reconnect_backoff_ms",
-                          .value.integer = 1000}};
-  grpc_arg server_a[] = {{.type = GRPC_ARG_INTEGER,
-                          .key = GRPC_ARG_MAX_CONNECTION_IDLE_MS,
-                          .value.integer = MAX_CONNECTION_IDLE_MS},
-                         {.type = GRPC_ARG_INTEGER,
-                          .key = GRPC_ARG_MAX_CONNECTION_AGE_MS,
-                          .value.integer = MAX_CONNECTION_AGE_MS}};
-  grpc_channel_args client_args = {.num_args = GPR_ARRAY_SIZE(client_a),
-                                   .args = client_a};
-  grpc_channel_args server_args = {.num_args = GPR_ARRAY_SIZE(server_a),
-                                   .args = server_a};
+  grpc_arg client_a[1];
+  client_a[0].type = GRPC_ARG_INTEGER;
+  client_a[0].key =
+      const_cast<char *>("grpc.testing.fixed_reconnect_backoff_ms");
+  client_a[0].value.integer = 1000;
+  grpc_arg server_a[2];
+  server_a[0].type = GRPC_ARG_INTEGER;
+  server_a[0].key = const_cast<char *>(GRPC_ARG_MAX_CONNECTION_IDLE_MS);
+  server_a[0].value.integer = MAX_CONNECTION_IDLE_MS;
+  server_a[1].type = GRPC_ARG_INTEGER;
+  server_a[1].key = const_cast<char *>(GRPC_ARG_MAX_CONNECTION_AGE_MS);
+  server_a[1].value.integer = MAX_CONNECTION_AGE_MS;
+  grpc_channel_args client_args = {GPR_ARRAY_SIZE(client_a), client_a};
+  grpc_channel_args server_args = {GPR_ARRAY_SIZE(server_a), server_a};
 
   config.init_client(&f, &client_args);
   config.init_server(&f, &server_args);
diff --git a/test/core/end2end/tests/max_message_length.c b/test/core/end2end/tests/max_message_length.cc
similarity index 92%
rename from test/core/end2end/tests/max_message_length.c
rename to test/core/end2end/tests/max_message_length.cc
index 01eb8d3..2ee7b0b 100644
--- a/test/core/end2end/tests/max_message_length.c
+++ b/test/core/end2end/tests/max_message_length.cc
@@ -132,31 +132,34 @@
     GPR_ASSERT(send_limit);
     grpc_arg arg;
     arg.type = GRPC_ARG_STRING;
-    arg.key = GRPC_ARG_SERVICE_CONFIG;
+    arg.key = const_cast<char *>(GRPC_ARG_SERVICE_CONFIG);
     arg.value.string =
         use_string_json_value
-            ? "{\n"
-              "  \"methodConfig\": [ {\n"
-              "    \"name\": [\n"
-              "      { \"service\": \"service\", \"method\": \"method\" }\n"
-              "    ],\n"
-              "    \"maxRequestMessageBytes\": \"5\"\n"
-              "  } ]\n"
-              "}"
-            : "{\n"
-              "  \"methodConfig\": [ {\n"
-              "    \"name\": [\n"
-              "      { \"service\": \"service\", \"method\": \"method\" }\n"
-              "    ],\n"
-              "    \"maxRequestMessageBytes\": 5\n"
-              "  } ]\n"
-              "}";
+            ? const_cast<char *>(
+                  "{\n"
+                  "  \"methodConfig\": [ {\n"
+                  "    \"name\": [\n"
+                  "      { \"service\": \"service\", \"method\": \"method\" }\n"
+                  "    ],\n"
+                  "    \"maxRequestMessageBytes\": \"5\"\n"
+                  "  } ]\n"
+                  "}")
+            : const_cast<char *>(
+                  "{\n"
+                  "  \"methodConfig\": [ {\n"
+                  "    \"name\": [\n"
+                  "      { \"service\": \"service\", \"method\": \"method\" }\n"
+                  "    ],\n"
+                  "    \"maxRequestMessageBytes\": 5\n"
+                  "  } ]\n"
+                  "}");
     client_args = grpc_channel_args_copy_and_add(NULL, &arg, 1);
   } else {
     // Set limit via channel args.
     grpc_arg arg;
-    arg.key = send_limit ? GRPC_ARG_MAX_SEND_MESSAGE_LENGTH
-                         : GRPC_ARG_MAX_RECEIVE_MESSAGE_LENGTH;
+    arg.key = send_limit
+                  ? const_cast<char *>(GRPC_ARG_MAX_SEND_MESSAGE_LENGTH)
+                  : const_cast<char *>(GRPC_ARG_MAX_RECEIVE_MESSAGE_LENGTH);
     arg.type = GRPC_ARG_INTEGER;
     arg.value.integer = 5;
     grpc_channel_args *args = grpc_channel_args_copy_and_add(NULL, &arg, 1);
@@ -322,8 +325,8 @@
     GPR_ASSERT(!send_limit);
     grpc_arg arg;
     arg.type = GRPC_ARG_STRING;
-    arg.key = GRPC_ARG_SERVICE_CONFIG;
-    arg.value.string =
+    arg.key = const_cast<char *>(GRPC_ARG_SERVICE_CONFIG);
+    arg.value.string = const_cast<char *>(
         use_string_json_value
             ? "{\n"
               "  \"methodConfig\": [ {\n"
@@ -340,13 +343,14 @@
               "    ],\n"
               "    \"maxResponseMessageBytes\": 5\n"
               "  } ]\n"
-              "}";
+              "}");
     client_args = grpc_channel_args_copy_and_add(NULL, &arg, 1);
   } else {
     // Set limit via channel args.
     grpc_arg arg;
-    arg.key = send_limit ? GRPC_ARG_MAX_SEND_MESSAGE_LENGTH
-                         : GRPC_ARG_MAX_RECEIVE_MESSAGE_LENGTH;
+    arg.key = send_limit
+                  ? const_cast<char *>(GRPC_ARG_MAX_SEND_MESSAGE_LENGTH)
+                  : const_cast<char *>(GRPC_ARG_MAX_RECEIVE_MESSAGE_LENGTH);
     arg.type = GRPC_ARG_INTEGER;
     arg.value.integer = 5;
     grpc_channel_args *args = grpc_channel_args_copy_and_add(NULL, &arg, 1);
diff --git a/test/core/end2end/tests/negative_deadline.c b/test/core/end2end/tests/negative_deadline.cc
similarity index 100%
rename from test/core/end2end/tests/negative_deadline.c
rename to test/core/end2end/tests/negative_deadline.cc
diff --git a/test/core/end2end/tests/network_status_change.c b/test/core/end2end/tests/network_status_change.cc
similarity index 100%
rename from test/core/end2end/tests/network_status_change.c
rename to test/core/end2end/tests/network_status_change.cc
diff --git a/test/core/end2end/tests/no_logging.c b/test/core/end2end/tests/no_logging.cc
similarity index 98%
rename from test/core/end2end/tests/no_logging.c
rename to test/core/end2end/tests/no_logging.cc
index f7d50c2..d898ef0 100644
--- a/test/core/end2end/tests/no_logging.c
+++ b/test/core/end2end/tests/no_logging.cc
@@ -36,7 +36,7 @@
 
 static void *tag(intptr_t t) { return (void *)t; }
 
-extern void gpr_default_log(gpr_log_func_args *args);
+extern "C" void gpr_default_log(gpr_log_func_args *args);
 
 static void test_no_log(gpr_log_func_args *args) {
   char *message = NULL;
diff --git a/test/core/end2end/tests/no_op.c b/test/core/end2end/tests/no_op.cc
similarity index 100%
rename from test/core/end2end/tests/no_op.c
rename to test/core/end2end/tests/no_op.cc
diff --git a/test/core/end2end/tests/payload.c b/test/core/end2end/tests/payload.cc
similarity index 100%
rename from test/core/end2end/tests/payload.c
rename to test/core/end2end/tests/payload.cc
diff --git a/test/core/end2end/tests/ping.c b/test/core/end2end/tests/ping.cc
similarity index 75%
rename from test/core/end2end/tests/ping.c
rename to test/core/end2end/tests/ping.cc
index 23c8256..e6b0e55 100644
--- a/test/core/end2end/tests/ping.c
+++ b/test/core/end2end/tests/ping.cc
@@ -37,27 +37,27 @@
   grpc_connectivity_state state = GRPC_CHANNEL_IDLE;
   int i;
 
-  grpc_arg client_a[] = {
-      {.type = GRPC_ARG_INTEGER,
-       .key = GRPC_ARG_HTTP2_MIN_SENT_PING_INTERVAL_WITHOUT_DATA_MS,
-       .value.integer = 10},
-      {.type = GRPC_ARG_INTEGER,
-       .key = GRPC_ARG_HTTP2_MAX_PINGS_WITHOUT_DATA,
-       .value.integer = 0},
-      {.type = GRPC_ARG_INTEGER,
-       .key = GRPC_ARG_KEEPALIVE_PERMIT_WITHOUT_CALLS,
-       .value.integer = 1}};
-  grpc_arg server_a[] = {
-      {.type = GRPC_ARG_INTEGER,
-       .key = GRPC_ARG_HTTP2_MIN_RECV_PING_INTERVAL_WITHOUT_DATA_MS,
-       .value.integer = 0},
-      {.type = GRPC_ARG_INTEGER,
-       .key = GRPC_ARG_KEEPALIVE_PERMIT_WITHOUT_CALLS,
-       .value.integer = 1}};
-  grpc_channel_args client_args = {.num_args = GPR_ARRAY_SIZE(client_a),
-                                   .args = client_a};
-  grpc_channel_args server_args = {.num_args = GPR_ARRAY_SIZE(server_a),
-                                   .args = server_a};
+  grpc_arg client_a[3];
+  client_a[0].type = GRPC_ARG_INTEGER;
+  client_a[0].key =
+      const_cast<char *>(GRPC_ARG_HTTP2_MIN_SENT_PING_INTERVAL_WITHOUT_DATA_MS);
+  client_a[0].value.integer = 10;
+  client_a[1].type = GRPC_ARG_INTEGER;
+  client_a[1].key = const_cast<char *>(GRPC_ARG_HTTP2_MAX_PINGS_WITHOUT_DATA);
+  client_a[1].value.integer = 0;
+  client_a[2].type = GRPC_ARG_INTEGER;
+  client_a[2].key = const_cast<char *>(GRPC_ARG_KEEPALIVE_PERMIT_WITHOUT_CALLS);
+  client_a[2].value.integer = 1;
+  grpc_arg server_a[2];
+  server_a[0].type = GRPC_ARG_INTEGER;
+  server_a[0].key =
+      const_cast<char *>(GRPC_ARG_HTTP2_MIN_RECV_PING_INTERVAL_WITHOUT_DATA_MS);
+  server_a[0].value.integer = 0;
+  server_a[1].type = GRPC_ARG_INTEGER;
+  server_a[1].key = const_cast<char *>(GRPC_ARG_KEEPALIVE_PERMIT_WITHOUT_CALLS);
+  server_a[1].value.integer = 1;
+  grpc_channel_args client_args = {GPR_ARRAY_SIZE(client_a), client_a};
+  grpc_channel_args server_args = {GPR_ARRAY_SIZE(server_a), server_a};
 
   config.init_client(&f, &client_args);
   config.init_server(&f, &server_args);
diff --git a/test/core/end2end/tests/ping_pong_streaming.c b/test/core/end2end/tests/ping_pong_streaming.cc
similarity index 100%
rename from test/core/end2end/tests/ping_pong_streaming.c
rename to test/core/end2end/tests/ping_pong_streaming.cc
diff --git a/test/core/end2end/tests/proxy_auth.c b/test/core/end2end/tests/proxy_auth.cc
similarity index 96%
rename from test/core/end2end/tests/proxy_auth.c
rename to test/core/end2end/tests/proxy_auth.cc
index d922049..fe87399 100644
--- a/test/core/end2end/tests/proxy_auth.c
+++ b/test/core/end2end/tests/proxy_auth.cc
@@ -217,10 +217,11 @@
 
 static void test_invoke_proxy_auth(grpc_end2end_test_config config) {
   /* Indicate that the proxy requires user auth */
-  grpc_arg client_arg = {.type = GRPC_ARG_STRING,
-                         .key = GRPC_ARG_HTTP_PROXY_AUTH_CREDS,
-                         .value.string = GRPC_TEST_HTTP_PROXY_AUTH_CREDS};
-  grpc_channel_args client_args = {.num_args = 1, .args = &client_arg};
+  grpc_arg client_arg;
+  client_arg.type = GRPC_ARG_STRING;
+  client_arg.key = const_cast<char *>(GRPC_ARG_HTTP_PROXY_AUTH_CREDS);
+  client_arg.value.string = const_cast<char *>(GRPC_TEST_HTTP_PROXY_AUTH_CREDS);
+  grpc_channel_args client_args = {1, &client_arg};
   grpc_end2end_test_fixture f =
       begin_test(config, "test_invoke_proxy_auth", &client_args, NULL);
   simple_request_body(config, f);
diff --git a/test/core/end2end/tests/registered_call.c b/test/core/end2end/tests/registered_call.cc
similarity index 100%
rename from test/core/end2end/tests/registered_call.c
rename to test/core/end2end/tests/registered_call.cc
diff --git a/test/core/end2end/tests/request_with_flags.c b/test/core/end2end/tests/request_with_flags.cc
similarity index 100%
rename from test/core/end2end/tests/request_with_flags.c
rename to test/core/end2end/tests/request_with_flags.cc
diff --git a/test/core/end2end/tests/request_with_payload.c b/test/core/end2end/tests/request_with_payload.cc
similarity index 100%
rename from test/core/end2end/tests/request_with_payload.c
rename to test/core/end2end/tests/request_with_payload.cc
diff --git a/test/core/end2end/tests/resource_quota_server.c b/test/core/end2end/tests/resource_quota_server.cc
similarity index 99%
rename from test/core/end2end/tests/resource_quota_server.c
rename to test/core/end2end/tests/resource_quota_server.cc
index 93befee..e710e39 100644
--- a/test/core/end2end/tests/resource_quota_server.c
+++ b/test/core/end2end/tests/resource_quota_server.cc
@@ -117,7 +117,7 @@
 #define SERVER_END_BASE_TAG 0x4000
 
   grpc_arg arg;
-  arg.key = GRPC_ARG_RESOURCE_QUOTA;
+  arg.key = const_cast<char *>(GRPC_ARG_RESOURCE_QUOTA);
   arg.type = GRPC_ARG_POINTER;
   arg.value.pointer.p = resource_quota;
   arg.value.pointer.vtable = grpc_resource_quota_arg_vtable();
diff --git a/test/core/end2end/tests/server_finishes_request.c b/test/core/end2end/tests/server_finishes_request.cc
similarity index 100%
rename from test/core/end2end/tests/server_finishes_request.c
rename to test/core/end2end/tests/server_finishes_request.cc
diff --git a/test/core/end2end/tests/shutdown_finishes_calls.c b/test/core/end2end/tests/shutdown_finishes_calls.cc
similarity index 100%
rename from test/core/end2end/tests/shutdown_finishes_calls.c
rename to test/core/end2end/tests/shutdown_finishes_calls.cc
diff --git a/test/core/end2end/tests/shutdown_finishes_tags.c b/test/core/end2end/tests/shutdown_finishes_tags.cc
similarity index 100%
rename from test/core/end2end/tests/shutdown_finishes_tags.c
rename to test/core/end2end/tests/shutdown_finishes_tags.cc
diff --git a/test/core/end2end/tests/simple_cacheable_request.c b/test/core/end2end/tests/simple_cacheable_request.cc
similarity index 100%
rename from test/core/end2end/tests/simple_cacheable_request.c
rename to test/core/end2end/tests/simple_cacheable_request.cc
diff --git a/test/core/end2end/tests/simple_delayed_request.c b/test/core/end2end/tests/simple_delayed_request.cc
similarity index 97%
rename from test/core/end2end/tests/simple_delayed_request.c
rename to test/core/end2end/tests/simple_delayed_request.cc
index c3f66a0..a4cbcbf 100644
--- a/test/core/end2end/tests/simple_delayed_request.c
+++ b/test/core/end2end/tests/simple_delayed_request.cc
@@ -191,7 +191,8 @@
   grpc_channel_args client_args;
   grpc_arg arg_array[1];
   arg_array[0].type = GRPC_ARG_INTEGER;
-  arg_array[0].key = "grpc.testing.fixed_reconnect_backoff_ms";
+  arg_array[0].key =
+      const_cast<char *>("grpc.testing.fixed_reconnect_backoff_ms");
   arg_array[0].value.integer = 1000;
   client_args.args = arg_array;
   client_args.num_args = 1;
@@ -210,7 +211,8 @@
   grpc_channel_args client_args;
   grpc_arg arg_array[1];
   arg_array[0].type = GRPC_ARG_INTEGER;
-  arg_array[0].key = "grpc.testing.fixed_reconnect_backoff_ms";
+  arg_array[0].key =
+      const_cast<char *>("grpc.testing.fixed_reconnect_backoff_ms");
   arg_array[0].value.integer = 1000;
   client_args.args = arg_array;
   client_args.num_args = 1;
diff --git a/test/core/end2end/tests/simple_metadata.c b/test/core/end2end/tests/simple_metadata.cc
similarity index 100%
rename from test/core/end2end/tests/simple_metadata.c
rename to test/core/end2end/tests/simple_metadata.cc
diff --git a/test/core/end2end/tests/simple_request.c b/test/core/end2end/tests/simple_request.cc
similarity index 97%
rename from test/core/end2end/tests/simple_request.c
rename to test/core/end2end/tests/simple_request.cc
index 7ce7e1f..48c9824 100644
--- a/test/core/end2end/tests/simple_request.c
+++ b/test/core/end2end/tests/simple_request.cc
@@ -103,8 +103,10 @@
   grpc_slice details;
   int was_cancelled = 2;
   char *peer;
-  grpc_stats_data *before = gpr_malloc(sizeof(grpc_stats_data));
-  grpc_stats_data *after = gpr_malloc(sizeof(grpc_stats_data));
+  grpc_stats_data *before =
+      static_cast<grpc_stats_data *>(gpr_malloc(sizeof(grpc_stats_data)));
+  grpc_stats_data *after =
+      static_cast<grpc_stats_data *>(gpr_malloc(sizeof(grpc_stats_data)));
 
   grpc_stats_collect(before);
 
diff --git a/test/core/end2end/tests/stream_compression_compressed_payload.c b/test/core/end2end/tests/stream_compression_compressed_payload.cc
similarity index 100%
rename from test/core/end2end/tests/stream_compression_compressed_payload.c
rename to test/core/end2end/tests/stream_compression_compressed_payload.cc
diff --git a/test/core/end2end/tests/stream_compression_payload.c b/test/core/end2end/tests/stream_compression_payload.cc
similarity index 100%
rename from test/core/end2end/tests/stream_compression_payload.c
rename to test/core/end2end/tests/stream_compression_payload.cc
diff --git a/test/core/end2end/tests/stream_compression_ping_pong_streaming.c b/test/core/end2end/tests/stream_compression_ping_pong_streaming.cc
similarity index 100%
rename from test/core/end2end/tests/stream_compression_ping_pong_streaming.c
rename to test/core/end2end/tests/stream_compression_ping_pong_streaming.cc
diff --git a/test/core/end2end/tests/streaming_error_response.c b/test/core/end2end/tests/streaming_error_response.cc
similarity index 100%
rename from test/core/end2end/tests/streaming_error_response.c
rename to test/core/end2end/tests/streaming_error_response.cc
diff --git a/test/core/end2end/tests/trailing_metadata.c b/test/core/end2end/tests/trailing_metadata.cc
similarity index 100%
rename from test/core/end2end/tests/trailing_metadata.c
rename to test/core/end2end/tests/trailing_metadata.cc
diff --git a/test/core/end2end/tests/workaround_cronet_compression.c b/test/core/end2end/tests/workaround_cronet_compression.cc
similarity index 96%
rename from test/core/end2end/tests/workaround_cronet_compression.c
rename to test/core/end2end/tests/workaround_cronet_compression.cc
index 44e8e04..17e59ad 100644
--- a/test/core/end2end/tests/workaround_cronet_compression.c
+++ b/test/core/end2end/tests/workaround_cronet_compression.cc
@@ -145,7 +145,7 @@
     grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT;
     grpc_channel_args *client_args_old = client_args;
     grpc_arg arg;
-    arg.key = GRPC_ARG_PRIMARY_USER_AGENT_STRING;
+    arg.key = const_cast<char *>(GRPC_ARG_PRIMARY_USER_AGENT_STRING);
     arg.type = GRPC_ARG_STRING;
     arg.value.string = user_agent_override;
     client_args = grpc_channel_args_copy_and_add(client_args_old, &arg, 1);
@@ -366,11 +366,14 @@
 
 static workaround_cronet_compression_config workaround_configs[] = {
     {NULL, GRPC_COMPRESS_GZIP},
-    {"grpc-objc/1.3.0-dev grpc-c/3.0.0-dev (ios; cronet_http; gentle)",
+    {const_cast<char *>(
+         "grpc-objc/1.3.0-dev grpc-c/3.0.0-dev (ios; cronet_http; gentle)"),
      GRPC_COMPRESS_NONE},
-    {"grpc-objc/1.3.0-dev grpc-c/3.0.0-dev (ios; chttp2; gentle)",
+    {const_cast<char *>(
+         "grpc-objc/1.3.0-dev grpc-c/3.0.0-dev (ios; chttp2; gentle)"),
      GRPC_COMPRESS_GZIP},
-    {"grpc-objc/1.4.0 grpc-c/3.0.0-dev (ios; cronet_http; gentle)",
+    {const_cast<char *>(
+         "grpc-objc/1.4.0 grpc-c/3.0.0-dev (ios; cronet_http; gentle)"),
      GRPC_COMPRESS_GZIP}};
 static const size_t workaround_configs_num =
     sizeof(workaround_configs) / sizeof(*workaround_configs);
diff --git a/test/core/end2end/tests/write_buffering.c b/test/core/end2end/tests/write_buffering.cc
similarity index 100%
rename from test/core/end2end/tests/write_buffering.c
rename to test/core/end2end/tests/write_buffering.cc
diff --git a/test/core/end2end/tests/write_buffering_at_end.c b/test/core/end2end/tests/write_buffering_at_end.cc
similarity index 100%
rename from test/core/end2end/tests/write_buffering_at_end.c
rename to test/core/end2end/tests/write_buffering_at_end.cc
diff --git a/test/core/fling/client.c b/test/core/fling/client.cc
similarity index 98%
rename from test/core/fling/client.c
rename to test/core/fling/client.cc
index be7bfc2..356ec4b 100644
--- a/test/core/fling/client.c
+++ b/test/core/fling/client.cc
@@ -151,10 +151,10 @@
 
   int payload_size = 1;
   int secure = 0;
-  char *target = "localhost:443";
+  const char *target = "localhost:443";
   gpr_cmdline *cl;
   grpc_event event;
-  char *scenario_name = "ping-pong-request";
+  const char *scenario_name = "ping-pong-request";
   scenario sc = {NULL, NULL, NULL};
 
   gpr_timers_set_log_filename("latency_trace.fling_client.txt");
diff --git a/test/core/fling/fling_stream_test.c b/test/core/fling/fling_stream_test.cc
similarity index 89%
rename from test/core/fling/fling_stream_test.c
rename to test/core/fling/fling_stream_test.cc
index 566d9ae..4e3b63e 100644
--- a/test/core/fling/fling_stream_test.c
+++ b/test/core/fling/fling_stream_test.cc
@@ -44,9 +44,9 @@
   /* start the server */
   gpr_asprintf(&args[0], "%s/fling_server%s", root,
                gpr_subprocess_binary_extension());
-  args[1] = "--bind";
+  args[1] = const_cast<char *>("--bind");
   gpr_join_host_port(&args[2], "::", port);
-  args[3] = "--no-secure";
+  args[3] = const_cast<char *>("--no-secure");
   svr = gpr_subprocess_create(4, (const char **)args);
   gpr_free(args[0]);
   gpr_free(args[2]);
@@ -54,10 +54,10 @@
   /* start the client */
   gpr_asprintf(&args[0], "%s/fling_client%s", root,
                gpr_subprocess_binary_extension());
-  args[1] = "--target";
+  args[1] = const_cast<char *>("--target");
   gpr_join_host_port(&args[2], "127.0.0.1", port);
-  args[3] = "--scenario=ping-pong-stream";
-  args[4] = "--no-secure";
+  args[3] = const_cast<char *>("--scenario=ping-pong-stream");
+  args[4] = const_cast<char *>("--no-secure");
   args[5] = 0;
   cli = gpr_subprocess_create(6, (const char **)args);
   gpr_free(args[0]);
diff --git a/test/core/fling/fling_test.c b/test/core/fling/fling_test.c
deleted file mode 100644
index 90b48e7..0000000
--- a/test/core/fling/fling_test.c
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- *
- * Copyright 2015 gRPC authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-#include <stdio.h>
-#include <string.h>
-
-#include <grpc/support/alloc.h>
-#include <grpc/support/host_port.h>
-#include <grpc/support/string_util.h>
-#include <grpc/support/subprocess.h>
-#include "src/core/lib/support/string.h"
-#include "test/core/util/port.h"
-
-int main(int argc, char **argv) {
-  char *me = argv[0];
-  char *lslash = strrchr(me, '/');
-  char root[1024];
-  int port = grpc_pick_unused_port_or_die();
-  char *args[10];
-  int status;
-  gpr_subprocess *svr, *cli;
-  /* figure out where we are */
-  if (lslash) {
-    memcpy(root, me, (size_t)(lslash - me));
-    root[lslash - me] = 0;
-  } else {
-    strcpy(root, ".");
-  }
-  /* start the server */
-  gpr_asprintf(&args[0], "%s/fling_server%s", root,
-               gpr_subprocess_binary_extension());
-  args[1] = "--bind";
-  gpr_join_host_port(&args[2], "::", port);
-  args[3] = "--no-secure";
-  svr = gpr_subprocess_create(4, (const char **)args);
-  gpr_free(args[0]);
-  gpr_free(args[2]);
-
-  /* start the client */
-  gpr_asprintf(&args[0], "%s/fling_client%s", root,
-               gpr_subprocess_binary_extension());
-  args[1] = "--target";
-  gpr_join_host_port(&args[2], "127.0.0.1", port);
-  args[3] = "--scenario=ping-pong-request";
-  args[4] = "--no-secure";
-  args[5] = 0;
-  cli = gpr_subprocess_create(6, (const char **)args);
-  gpr_free(args[0]);
-  gpr_free(args[2]);
-
-  /* wait for completion */
-  printf("waiting for client\n");
-  if ((status = gpr_subprocess_join(cli))) {
-    gpr_subprocess_destroy(cli);
-    gpr_subprocess_destroy(svr);
-    return status;
-  }
-  gpr_subprocess_destroy(cli);
-
-  gpr_subprocess_interrupt(svr);
-  status = gpr_subprocess_join(svr);
-  gpr_subprocess_destroy(svr);
-  return status;
-}
diff --git a/test/core/fling/fling_stream_test.c b/test/core/fling/fling_test.cc
similarity index 85%
copy from test/core/fling/fling_stream_test.c
copy to test/core/fling/fling_test.cc
index 566d9ae..a7681d5 100644
--- a/test/core/fling/fling_stream_test.c
+++ b/test/core/fling/fling_test.cc
@@ -26,9 +26,9 @@
 #include "src/core/lib/support/string.h"
 #include "test/core/util/port.h"
 
-int main(int argc, char **argv) {
-  char *me = argv[0];
-  char *lslash = strrchr(me, '/');
+int main(int argc, const char **argv) {
+  const char *me = argv[0];
+  const char *lslash = strrchr(me, '/');
   char root[1024];
   int port = grpc_pick_unused_port_or_die();
   char *args[10];
@@ -44,9 +44,9 @@
   /* start the server */
   gpr_asprintf(&args[0], "%s/fling_server%s", root,
                gpr_subprocess_binary_extension());
-  args[1] = "--bind";
+  args[1] = const_cast<char *>("--bind");
   gpr_join_host_port(&args[2], "::", port);
-  args[3] = "--no-secure";
+  args[3] = const_cast<char *>("--no-secure");
   svr = gpr_subprocess_create(4, (const char **)args);
   gpr_free(args[0]);
   gpr_free(args[2]);
@@ -54,10 +54,10 @@
   /* start the client */
   gpr_asprintf(&args[0], "%s/fling_client%s", root,
                gpr_subprocess_binary_extension());
-  args[1] = "--target";
+  args[1] = const_cast<char *>("--target");
   gpr_join_host_port(&args[2], "127.0.0.1", port);
-  args[3] = "--scenario=ping-pong-stream";
-  args[4] = "--no-secure";
+  args[3] = const_cast<char *>("--scenario=ping-pong-request");
+  args[4] = const_cast<char *>("--no-secure");
   args[5] = 0;
   cli = gpr_subprocess_create(6, (const char **)args);
   gpr_free(args[0]);
diff --git a/test/core/fling/server.c b/test/core/fling/server.cc
similarity index 98%
rename from test/core/fling/server.c
rename to test/core/fling/server.cc
index b3a7fa2..34e5f79 100644
--- a/test/core/fling/server.c
+++ b/test/core/fling/server.cc
@@ -177,7 +177,7 @@
   int shutdown_finished = 0;
 
   int secure = 0;
-  char *addr = NULL;
+  const char *addr = NULL;
 
   char *fake_argv[1];
 
@@ -247,7 +247,7 @@
         cq, gpr_time_add(gpr_now(GPR_CLOCK_REALTIME),
                          gpr_time_from_micros(1000000, GPR_TIMESPAN)),
         NULL);
-    s = ev.tag;
+    s = static_cast<call_state *>(ev.tag);
     switch (ev.type) {
       case GRPC_OP_COMPLETE:
         switch ((intptr_t)s) {
diff --git a/test/core/handshake/client_ssl.c b/test/core/handshake/client_ssl.cc
similarity index 95%
rename from test/core/handshake/client_ssl.c
rename to test/core/handshake/client_ssl.cc
index de660fe..f501948 100644
--- a/test/core/handshake/client_ssl.c
+++ b/test/core/handshake/client_ssl.cc
@@ -230,8 +230,7 @@
   gpr_thd_options thdopt = gpr_thd_options_default();
   gpr_thd_id thdid;
   gpr_thd_options_set_joinable(&thdopt);
-  server_args args = {.socket = server_socket,
-                      .alpn_preferred = server_alpn_preferred};
+  server_args args = {server_socket, server_alpn_preferred};
   GPR_ASSERT(gpr_thd_new(&thdid, server_thread, &args, &thdopt));
 
   // Load key pair and establish client SSL credentials.
@@ -253,9 +252,10 @@
   // lazy, this won't necessarily establish a connection yet.
   char *target;
   gpr_asprintf(&target, "127.0.0.1:%d", port);
-  grpc_arg ssl_name_override = {GRPC_ARG_STRING,
-                                GRPC_SSL_TARGET_NAME_OVERRIDE_ARG,
-                                {"foo.test.google.fr"}};
+  grpc_arg ssl_name_override = {
+      GRPC_ARG_STRING,
+      const_cast<char *>(GRPC_SSL_TARGET_NAME_OVERRIDE_ARG),
+      {const_cast<char *>("foo.test.google.fr")}};
   grpc_channel_args grpc_args;
   grpc_args.num_args = 1;
   grpc_args.args = &ssl_name_override;
@@ -305,14 +305,14 @@
 
 int main(int argc, char *argv[]) {
   // Handshake succeeeds when the server has grpc-exp as the ALPN preference.
-  GPR_ASSERT(client_ssl_test("grpc-exp"));
+  GPR_ASSERT(client_ssl_test(const_cast<char *>("grpc-exp")));
   // Handshake succeeeds when the server has h2 as the ALPN preference. This
   // covers legacy gRPC servers which don't support grpc-exp.
-  GPR_ASSERT(client_ssl_test("h2"));
+  GPR_ASSERT(client_ssl_test(const_cast<char *>("h2")));
   // Handshake fails when the server uses a fake protocol as its ALPN
   // preference. This validates the client is correctly validating ALPN returns
   // and sanity checks the client_ssl_test.
-  GPR_ASSERT(!client_ssl_test("foo"));
+  GPR_ASSERT(!client_ssl_test(const_cast<char *>("foo")));
   return 0;
 }
 
diff --git a/test/core/handshake/server_ssl.c b/test/core/handshake/server_ssl.cc
similarity index 98%
rename from test/core/handshake/server_ssl.c
rename to test/core/handshake/server_ssl.cc
index 85a8b4d..7b24459 100644
--- a/test/core/handshake/server_ssl.c
+++ b/test/core/handshake/server_ssl.cc
@@ -175,7 +175,8 @@
   for (unsigned int i = 0; i < alpn_list_len; ++i) {
     alpn_protos_len += (unsigned int)strlen(alpn_list[i]);
   }
-  unsigned char *alpn_protos = gpr_malloc(alpn_protos_len);
+  unsigned char *alpn_protos =
+      static_cast<unsigned char *>(gpr_malloc(alpn_protos_len));
   unsigned char *p = alpn_protos;
   for (unsigned int i = 0; i < alpn_list_len; ++i) {
     const uint8_t len = (uint8_t)strlen(alpn_list[i]);
diff --git a/test/core/http/format_request_test.c b/test/core/http/format_request_test.cc
similarity index 81%
rename from test/core/http/format_request_test.c
rename to test/core/http/format_request_test.cc
index 0279a1b..b2d9034 100644
--- a/test/core/http/format_request_test.c
+++ b/test/core/http/format_request_test.cc
@@ -24,13 +24,14 @@
 #include "test/core/util/test_config.h"
 
 static void test_format_get_request(void) {
-  grpc_http_header hdr = {"x-yz", "abc"};
+  grpc_http_header hdr = {const_cast<char *>("x-yz"),
+                          const_cast<char *>("abc")};
   grpc_httpcli_request req;
   grpc_slice slice;
 
   memset(&req, 0, sizeof(req));
-  req.host = "example.com";
-  req.http.path = "/index.html";
+  req.host = const_cast<char *>("example.com");
+  req.http.path = const_cast<char *>("/index.html");
   req.http.hdr_count = 1;
   req.http.hdrs = &hdr;
 
@@ -49,15 +50,16 @@
 }
 
 static void test_format_post_request(void) {
-  grpc_http_header hdr = {"x-yz", "abc"};
+  grpc_http_header hdr = {const_cast<char *>("x-yz"),
+                          const_cast<char *>("abc")};
   grpc_httpcli_request req;
   grpc_slice slice;
   char body_bytes[] = "fake body";
   size_t body_len = 9;
 
   memset(&req, 0, sizeof(req));
-  req.host = "example.com";
-  req.http.path = "/index.html";
+  req.host = const_cast<char *>("example.com");
+  req.http.path = const_cast<char *>("/index.html");
   req.http.hdr_count = 1;
   req.http.hdrs = &hdr;
 
@@ -79,13 +81,14 @@
 }
 
 static void test_format_post_request_no_body(void) {
-  grpc_http_header hdr = {"x-yz", "abc"};
+  grpc_http_header hdr = {const_cast<char *>("x-yz"),
+                          const_cast<char *>("abc")};
   grpc_httpcli_request req;
   grpc_slice slice;
 
   memset(&req, 0, sizeof(req));
-  req.host = "example.com";
-  req.http.path = "/index.html";
+  req.host = const_cast<char *>("example.com");
+  req.http.path = const_cast<char *>("/index.html");
   req.http.hdr_count = 1;
   req.http.hdrs = &hdr;
 
@@ -110,13 +113,13 @@
   char body_bytes[] = "fake%20body";
   size_t body_len = 11;
 
-  hdrs[0].key = "x-yz";
-  hdrs[0].value = "abc";
-  hdrs[1].key = "Content-Type";
-  hdrs[1].value = "application/x-www-form-urlencoded";
+  hdrs[0].key = const_cast<char *>("x-yz");
+  hdrs[0].value = const_cast<char *>("abc");
+  hdrs[1].key = const_cast<char *>("Content-Type");
+  hdrs[1].value = const_cast<char *>("application/x-www-form-urlencoded");
   memset(&req, 0, sizeof(req));
-  req.host = "example.com";
-  req.http.path = "/index.html";
+  req.host = const_cast<char *>("example.com");
+  req.http.path = const_cast<char *>("/index.html");
   req.http.hdr_count = 2;
   req.http.hdrs = hdrs;
 
diff --git a/test/core/http/httpcli_test.c b/test/core/http/httpcli_test.cc
similarity index 91%
rename from test/core/http/httpcli_test.c
rename to test/core/http/httpcli_test.cc
index cc1c16d..925f63d 100644
--- a/test/core/http/httpcli_test.c
+++ b/test/core/http/httpcli_test.cc
@@ -44,7 +44,7 @@
   const char *expect =
       "<html><head><title>Hello world!</title></head>"
       "<body><p>This is a test</p></body></html>";
-  grpc_http_response *response = arg;
+  grpc_http_response *response = static_cast<grpc_http_response *>(arg);
   GPR_ASSERT(response);
   GPR_ASSERT(response->status == 200);
   GPR_ASSERT(response->body_length == strlen(expect));
@@ -70,7 +70,7 @@
 
   memset(&req, 0, sizeof(req));
   req.host = host;
-  req.http.path = "/get";
+  req.http.path = const_cast<char *>("/get");
   req.handshaker = &grpc_httpcli_plaintext;
 
   grpc_http_response response;
@@ -110,7 +110,7 @@
 
   memset(&req, 0, sizeof(req));
   req.host = host;
-  req.http.path = "/post";
+  req.http.path = const_cast<char *>("/post");
   req.handshaker = &grpc_httpcli_plaintext;
 
   grpc_http_response response;
@@ -139,7 +139,8 @@
 }
 
 static void destroy_pops(grpc_exec_ctx *exec_ctx, void *p, grpc_error *error) {
-  grpc_pollset_destroy(exec_ctx, grpc_polling_entity_pollset(p));
+  grpc_pollset_destroy(exec_ctx, grpc_polling_entity_pollset(
+                                     static_cast<grpc_polling_entity *>(p)));
 }
 
 int main(int argc, char **argv) {
@@ -154,7 +155,7 @@
   /* figure out where we are */
   char *root;
   if (lslash) {
-    root = gpr_malloc((size_t)(lslash - me + 1));
+    root = static_cast<char *>(gpr_malloc((size_t)(lslash - me + 1)));
     memcpy(root, me, (size_t)(lslash - me));
     root[lslash - me] = 0;
   } else {
@@ -171,7 +172,7 @@
   }
 
   /* start the server */
-  args[1 + arg_shift] = "--port";
+  args[1 + arg_shift] = const_cast<char *>("--port");
   gpr_asprintf(&args[2 + arg_shift], "%d", port);
   server = gpr_subprocess_create(3 + arg_shift, (const char **)args);
   GPR_ASSERT(server);
@@ -186,7 +187,8 @@
   grpc_test_init(argc, argv);
   grpc_init();
   grpc_httpcli_context_init(&g_context);
-  grpc_pollset *pollset = gpr_zalloc(grpc_pollset_size());
+  grpc_pollset *pollset =
+      static_cast<grpc_pollset *>(gpr_zalloc(grpc_pollset_size()));
   grpc_pollset_init(pollset, &g_mu);
   g_pops = grpc_polling_entity_create_from_pollset(pollset);
 
diff --git a/test/core/http/httpscli_test.c b/test/core/http/httpscli_test.cc
similarity index 89%
rename from test/core/http/httpscli_test.c
rename to test/core/http/httpscli_test.cc
index f8a3cfd..179b3a7 100644
--- a/test/core/http/httpscli_test.c
+++ b/test/core/http/httpscli_test.cc
@@ -44,7 +44,7 @@
   const char *expect =
       "<html><head><title>Hello world!</title></head>"
       "<body><p>This is a test</p></body></html>";
-  grpc_http_response *response = arg;
+  grpc_http_response *response = static_cast<grpc_http_response *>(arg);
   GPR_ASSERT(response);
   GPR_ASSERT(response->status == 200);
   GPR_ASSERT(response->body_length == strlen(expect));
@@ -70,8 +70,8 @@
 
   memset(&req, 0, sizeof(req));
   req.host = host;
-  req.ssl_host_override = "foo.test.google.fr";
-  req.http.path = "/get";
+  req.ssl_host_override = const_cast<char *>("foo.test.google.fr");
+  req.http.path = const_cast<char *>("/get");
   req.handshaker = &grpc_httpcli_ssl;
 
   grpc_http_response response;
@@ -111,8 +111,8 @@
 
   memset(&req, 0, sizeof(req));
   req.host = host;
-  req.ssl_host_override = "foo.test.google.fr";
-  req.http.path = "/post";
+  req.ssl_host_override = const_cast<char *>("foo.test.google.fr");
+  req.http.path = const_cast<char *>("/post");
   req.handshaker = &grpc_httpcli_ssl;
 
   grpc_http_response response;
@@ -141,7 +141,8 @@
 }
 
 static void destroy_pops(grpc_exec_ctx *exec_ctx, void *p, grpc_error *error) {
-  grpc_pollset_destroy(exec_ctx, grpc_polling_entity_pollset(p));
+  grpc_pollset_destroy(exec_ctx, grpc_polling_entity_pollset(
+                                     static_cast<grpc_polling_entity *>(p)));
 }
 
 int main(int argc, char **argv) {
@@ -156,7 +157,7 @@
   /* figure out where we are */
   char *root;
   if (lslash) {
-    root = gpr_malloc((size_t)(lslash - me + 1));
+    root = static_cast<char *>(gpr_malloc((size_t)(lslash - me + 1)));
     memcpy(root, me, (size_t)(lslash - me));
     root[lslash - me] = 0;
   } else {
@@ -173,9 +174,9 @@
   }
 
   /* start the server */
-  args[1 + arg_shift] = "--port";
+  args[1 + arg_shift] = const_cast<char *>("--port");
   gpr_asprintf(&args[2 + arg_shift], "%d", port);
-  args[3 + arg_shift] = "--ssl";
+  args[3 + arg_shift] = const_cast<char *>("--ssl");
   server = gpr_subprocess_create(4 + arg_shift, (const char **)args);
   GPR_ASSERT(server);
   gpr_free(args[0]);
@@ -189,7 +190,8 @@
   grpc_test_init(argc, argv);
   grpc_init();
   grpc_httpcli_context_init(&g_context);
-  grpc_pollset *pollset = gpr_zalloc(grpc_pollset_size());
+  grpc_pollset *pollset =
+      static_cast<grpc_pollset *>(gpr_zalloc(grpc_pollset_size()));
   grpc_pollset_init(pollset, &g_mu);
   g_pops = grpc_polling_entity_create_from_pollset(pollset);
 
diff --git a/test/core/http/parser_test.c b/test/core/http/parser_test.cc
similarity index 92%
rename from test/core/http/parser_test.c
rename to test/core/http/parser_test.cc
index a7044c0..9eff491 100644
--- a/test/core/http/parser_test.c
+++ b/test/core/http/parser_test.cc
@@ -29,9 +29,11 @@
 #include "test/core/util/test_config.h"
 
 static void test_request_succeeds(grpc_slice_split_mode split_mode,
-                                  char *request_text, char *expect_method,
+                                  const char *request_text,
+                                  const char *expect_method,
                                   grpc_http_version expect_version,
-                                  char *expect_path, char *expect_body, ...) {
+                                  const char *expect_path,
+                                  const char *expect_body, ...) {
   grpc_http_parser parser;
   grpc_slice input_slice = grpc_slice_from_copied_string(request_text);
   size_t num_slices;
@@ -87,8 +89,9 @@
   gpr_free(slices);
 }
 
-static void test_succeeds(grpc_slice_split_mode split_mode, char *response_text,
-                          int expect_status, char *expect_body, ...) {
+static void test_succeeds(grpc_slice_split_mode split_mode,
+                          const char *response_text, int expect_status,
+                          const char *expect_body, ...) {
   grpc_http_parser parser;
   grpc_slice input_slice = grpc_slice_from_copied_string(response_text);
   size_t num_slices;
@@ -141,7 +144,8 @@
   gpr_free(slices);
 }
 
-static void test_fails(grpc_slice_split_mode split_mode, char *response_text) {
+static void test_fails(grpc_slice_split_mode split_mode,
+                       const char *response_text) {
   grpc_http_parser parser;
   grpc_slice input_slice = grpc_slice_from_copied_string(response_text);
   size_t num_slices;
@@ -174,7 +178,7 @@
 }
 
 static void test_request_fails(grpc_slice_split_mode split_mode,
-                               char *request_text) {
+                               const char *request_text) {
   grpc_http_parser parser;
   grpc_slice input_slice = grpc_slice_from_copied_string(request_text);
   size_t num_slices;
@@ -286,7 +290,8 @@
     test_request_fails(split_modes[i], "GET / HTTP/1.2\r\n");
     test_request_fails(split_modes[i], "GET / HTTP/1.0\n");
 
-    tmp1 = gpr_malloc(2 * GRPC_HTTP_PARSER_MAX_HEADER_LENGTH);
+    tmp1 =
+        static_cast<char *>(gpr_malloc(2 * GRPC_HTTP_PARSER_MAX_HEADER_LENGTH));
     memset(tmp1, 'a', 2 * GRPC_HTTP_PARSER_MAX_HEADER_LENGTH - 1);
     tmp1[2 * GRPC_HTTP_PARSER_MAX_HEADER_LENGTH - 1] = 0;
     gpr_asprintf(&tmp2, "HTTP/1.0 200 OK\r\nxyz: %s\r\n\r\n", tmp1);
diff --git a/test/core/http/request_fuzzer.c b/test/core/http/request_fuzzer.cc
similarity index 100%
rename from test/core/http/request_fuzzer.c
rename to test/core/http/request_fuzzer.cc
diff --git a/test/core/http/response_fuzzer.c b/test/core/http/response_fuzzer.cc
similarity index 100%
rename from test/core/http/response_fuzzer.c
rename to test/core/http/response_fuzzer.cc
diff --git a/test/core/iomgr/combiner_test.c b/test/core/iomgr/combiner_test.cc
similarity index 91%
rename from test/core/iomgr/combiner_test.c
rename to test/core/iomgr/combiner_test.cc
index 38f512d..7d2d098 100644
--- a/test/core/iomgr/combiner_test.c
+++ b/test/core/iomgr/combiner_test.cc
@@ -35,7 +35,7 @@
 
 static void set_event_to_true(grpc_exec_ctx *exec_ctx, void *value,
                               grpc_error *error) {
-  gpr_event_set(value, (void *)1);
+  gpr_event_set(static_cast<gpr_event *>(value), (void *)1);
 }
 
 static void test_execute_one(void) {
@@ -68,19 +68,19 @@
 } ex_args;
 
 static void check_one(grpc_exec_ctx *exec_ctx, void *a, grpc_error *error) {
-  ex_args *args = a;
+  ex_args *args = static_cast<ex_args *>(a);
   GPR_ASSERT(*args->ctr == args->value - 1);
   *args->ctr = args->value;
   gpr_free(a);
 }
 
 static void execute_many_loop(void *a) {
-  thd_args *args = a;
+  thd_args *args = static_cast<thd_args *>(a);
   grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT;
   size_t n = 1;
   for (size_t i = 0; i < 10; i++) {
     for (size_t j = 0; j < 10000; j++) {
-      ex_args *c = gpr_malloc(sizeof(*c));
+      ex_args *c = static_cast<ex_args *>(gpr_malloc(sizeof(*c)));
       c->ctr = &args->ctr;
       c->value = n++;
       GRPC_CLOSURE_SCHED(&exec_ctx,
@@ -131,10 +131,11 @@
 }
 
 static void add_finally(grpc_exec_ctx *exec_ctx, void *arg, grpc_error *error) {
-  GRPC_CLOSURE_SCHED(exec_ctx,
-                     GRPC_CLOSURE_CREATE(in_finally, arg,
-                                         grpc_combiner_finally_scheduler(arg)),
-                     GRPC_ERROR_NONE);
+  GRPC_CLOSURE_SCHED(
+      exec_ctx, GRPC_CLOSURE_CREATE(in_finally, arg,
+                                    grpc_combiner_finally_scheduler(
+                                        static_cast<grpc_combiner *>(arg))),
+      GRPC_ERROR_NONE);
 }
 
 static void test_execute_finally(void) {
diff --git a/test/core/iomgr/endpoint_pair_test.c b/test/core/iomgr/endpoint_pair_test.cc
similarity index 86%
rename from test/core/iomgr/endpoint_pair_test.c
rename to test/core/iomgr/endpoint_pair_test.cc
index f2ce3d0..c7ce6c0 100644
--- a/test/core/iomgr/endpoint_pair_test.c
+++ b/test/core/iomgr/endpoint_pair_test.cc
@@ -34,10 +34,11 @@
     size_t slice_size) {
   grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT;
   grpc_endpoint_test_fixture f;
-  grpc_arg a[] = {{.key = GRPC_ARG_TCP_READ_CHUNK_SIZE,
-                   .type = GRPC_ARG_INTEGER,
-                   .value.integer = (int)slice_size}};
-  grpc_channel_args args = {.num_args = GPR_ARRAY_SIZE(a), .args = a};
+  grpc_arg a[1];
+  a[0].key = const_cast<char *>(GRPC_ARG_TCP_READ_CHUNK_SIZE);
+  a[0].type = GRPC_ARG_INTEGER;
+  a[0].value.integer = (int)slice_size;
+  grpc_channel_args args = {GPR_ARRAY_SIZE(a), a};
   grpc_endpoint_pair p = grpc_iomgr_create_endpoint_pair("test", &args);
 
   f.client_ep = p.client;
@@ -55,7 +56,7 @@
 
 static void destroy_pollset(grpc_exec_ctx *exec_ctx, void *p,
                             grpc_error *error) {
-  grpc_pollset_destroy(exec_ctx, p);
+  grpc_pollset_destroy(exec_ctx, static_cast<grpc_pollset *>(p));
 }
 
 int main(int argc, char **argv) {
@@ -63,7 +64,7 @@
   grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT;
   grpc_test_init(argc, argv);
   grpc_init();
-  g_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_endpoint_tests(configs[0], g_pollset, g_mu);
   GRPC_CLOSURE_INIT(&destroyed, destroy_pollset, g_pollset,
diff --git a/test/core/iomgr/endpoint_tests.c b/test/core/iomgr/endpoint_tests.cc
similarity index 100%
rename from test/core/iomgr/endpoint_tests.c
rename to test/core/iomgr/endpoint_tests.cc
diff --git a/test/core/iomgr/error_test.c b/test/core/iomgr/error_test.cc
similarity index 100%
rename from test/core/iomgr/error_test.c
rename to test/core/iomgr/error_test.cc
diff --git a/test/core/iomgr/ev_epollsig_linux_test.c b/test/core/iomgr/ev_epollsig_linux_test.cc
similarity index 96%
rename from test/core/iomgr/ev_epollsig_linux_test.c
rename to test/core/iomgr/ev_epollsig_linux_test.cc
index 37aadac..23079c1 100644
--- a/test/core/iomgr/ev_epollsig_linux_test.c
+++ b/test/core/iomgr/ev_epollsig_linux_test.cc
@@ -92,14 +92,15 @@
 static void test_pollset_init(test_pollset *pollsets, int num_pollsets) {
   int i;
   for (i = 0; i < num_pollsets; i++) {
-    pollsets[i].pollset = gpr_zalloc(grpc_pollset_size());
+    pollsets[i].pollset =
+        static_cast<grpc_pollset *>(gpr_zalloc(grpc_pollset_size()));
     grpc_pollset_init(pollsets[i].pollset, &pollsets[i].mu);
   }
 }
 
 static void destroy_pollset(grpc_exec_ctx *exec_ctx, void *p,
                             grpc_error *error) {
-  grpc_pollset_destroy(exec_ctx, p);
+  grpc_pollset_destroy(exec_ctx, (grpc_pollset *)p);
 }
 
 static void test_pollset_cleanup(grpc_exec_ctx *exec_ctx,
@@ -232,7 +233,7 @@
 static __thread int thread_wakeups = 0;
 
 static void test_threading_loop(void *arg) {
-  threading_shared *shared = arg;
+  threading_shared *shared = static_cast<threading_shared *>(arg);
   while (thread_wakeups < 1000000) {
     grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT;
     grpc_pollset_worker *worker;
@@ -247,7 +248,7 @@
 
 static void test_threading_wakeup(grpc_exec_ctx *exec_ctx, void *arg,
                                   grpc_error *error) {
-  threading_shared *shared = arg;
+  threading_shared *shared = static_cast<threading_shared *>(arg);
   ++shared->wakeups;
   ++thread_wakeups;
   if (error == GRPC_ERROR_NONE) {
@@ -261,7 +262,7 @@
 
 static void test_threading(void) {
   threading_shared shared;
-  shared.pollset = gpr_zalloc(grpc_pollset_size());
+  shared.pollset = static_cast<grpc_pollset *>(gpr_zalloc(grpc_pollset_size()));
   grpc_pollset_init(shared.pollset, &shared.mu);
 
   gpr_thd_id thds[10];
diff --git a/test/core/iomgr/fd_conservation_posix_test.c b/test/core/iomgr/fd_conservation_posix_test.cc
similarity index 100%
rename from test/core/iomgr/fd_conservation_posix_test.c
rename to test/core/iomgr/fd_conservation_posix_test.cc
diff --git a/test/core/iomgr/fd_posix_test.c b/test/core/iomgr/fd_posix_test.cc
similarity index 96%
rename from test/core/iomgr/fd_posix_test.c
rename to test/core/iomgr/fd_posix_test.cc
index 1c62f34..63363a4 100644
--- a/test/core/iomgr/fd_posix_test.c
+++ b/test/core/iomgr/fd_posix_test.cc
@@ -113,7 +113,7 @@
    Close session FD and start to shutdown listen FD. */
 static void session_shutdown_cb(grpc_exec_ctx *exec_ctx, void *arg, /*session */
                                 bool success) {
-  session *se = arg;
+  session *se = static_cast<session *>(arg);
   server *sv = se->sv;
   grpc_fd_orphan(exec_ctx, se->em_fd, NULL, NULL, false /* already_closed */,
                  "a");
@@ -126,7 +126,7 @@
 /* Called when data become readable in a session. */
 static void session_read_cb(grpc_exec_ctx *exec_ctx, void *arg, /*session */
                             grpc_error *error) {
-  session *se = arg;
+  session *se = static_cast<session *>(arg);
   int fd = grpc_fd_wrapped_fd(se->em_fd);
 
   ssize_t read_once = 0;
@@ -171,7 +171,7 @@
    Close listen FD and signal that server can be shutdown. */
 static void listen_shutdown_cb(grpc_exec_ctx *exec_ctx, void *arg /*server */,
                                int success) {
-  server *sv = arg;
+  server *sv = static_cast<server *>(arg);
 
   grpc_fd_orphan(exec_ctx, sv->em_fd, NULL, NULL, false /* already_closed */,
                  "b");
@@ -186,7 +186,7 @@
 /* Called when a new TCP connection request arrives in the listening port. */
 static void listen_cb(grpc_exec_ctx *exec_ctx, void *arg, /*=sv_arg*/
                       grpc_error *error) {
-  server *sv = arg;
+  server *sv = static_cast<server *>(arg);
   int fd;
   int flags;
   session *se;
@@ -204,7 +204,7 @@
   GPR_ASSERT(fd < FD_SETSIZE);
   flags = fcntl(fd, F_GETFL, 0);
   fcntl(fd, F_SETFL, flags | O_NONBLOCK);
-  se = gpr_malloc(sizeof(*se));
+  se = static_cast<session *>(gpr_malloc(sizeof(*se)));
   se->sv = sv;
   se->em_fd = grpc_fd_create(fd, "listener");
   grpc_pollset_add_fd(exec_ctx, g_pollset, se->em_fd);
@@ -291,7 +291,7 @@
 /* Called when a client upload session is ready to shutdown. */
 static void client_session_shutdown_cb(grpc_exec_ctx *exec_ctx,
                                        void *arg /*client */, int success) {
-  client *cl = arg;
+  client *cl = static_cast<client *>(arg);
   grpc_fd_orphan(exec_ctx, cl->em_fd, NULL, NULL, false /* already_closed */,
                  "c");
   cl->done = 1;
@@ -302,7 +302,7 @@
 /* Write as much as possible, then register notify_on_write. */
 static void client_session_write(grpc_exec_ctx *exec_ctx, void *arg, /*client */
                                  grpc_error *error) {
-  client *cl = arg;
+  client *cl = static_cast<client *>(arg);
   int fd = grpc_fd_wrapped_fd(cl->em_fd);
   ssize_t write_once = 0;
 
@@ -409,7 +409,7 @@
 static void first_read_callback(grpc_exec_ctx *exec_ctx,
                                 void *arg /* fd_change_data */,
                                 grpc_error *error) {
-  fd_change_data *fdc = arg;
+  fd_change_data *fdc = static_cast<fd_change_data *>(arg);
 
   gpr_mu_lock(g_mu);
   fdc->cb_that_ran = first_read_callback;
@@ -421,7 +421,7 @@
 static void second_read_callback(grpc_exec_ctx *exec_ctx,
                                  void *arg /* fd_change_data */,
                                  grpc_error *error) {
-  fd_change_data *fdc = arg;
+  fd_change_data *fdc = static_cast<fd_change_data *>(arg);
 
   gpr_mu_lock(g_mu);
   fdc->cb_that_ran = second_read_callback;
@@ -516,7 +516,7 @@
 
 static void destroy_pollset(grpc_exec_ctx *exec_ctx, void *p,
                             grpc_error *error) {
-  grpc_pollset_destroy(exec_ctx, p);
+  grpc_pollset_destroy(exec_ctx, static_cast<grpc_pollset *>(p));
 }
 
 int main(int argc, char **argv) {
@@ -524,7 +524,7 @@
   grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT;
   grpc_test_init(argc, argv);
   grpc_init();
-  g_pollset = gpr_zalloc(grpc_pollset_size());
+  g_pollset = static_cast<grpc_pollset *>(gpr_zalloc(grpc_pollset_size()));
   grpc_pollset_init(g_pollset, &g_mu);
   test_grpc_fd();
   test_grpc_fd_change();
diff --git a/test/core/iomgr/load_file_test.c b/test/core/iomgr/load_file_test.cc
similarity index 97%
rename from test/core/iomgr/load_file_test.c
rename to test/core/iomgr/load_file_test.cc
index 537c343..5fb8266 100644
--- a/test/core/iomgr/load_file_test.c
+++ b/test/core/iomgr/load_file_test.cc
@@ -122,7 +122,7 @@
   grpc_error *error;
   char *tmp_name;
   static const size_t buffer_size = 124631;
-  unsigned char *buffer = gpr_malloc(buffer_size);
+  unsigned char *buffer = static_cast<unsigned char *>(gpr_malloc(buffer_size));
   unsigned char *current;
   size_t i;
 
diff --git a/test/core/iomgr/pollset_set_test.c b/test/core/iomgr/pollset_set_test.cc
similarity index 98%
rename from test/core/iomgr/pollset_set_test.c
rename to test/core/iomgr/pollset_set_test.cc
index cddc146..ae19c81 100644
--- a/test/core/iomgr/pollset_set_test.c
+++ b/test/core/iomgr/pollset_set_test.cc
@@ -65,14 +65,15 @@
 
 static void init_test_pollsets(test_pollset *pollsets, const int num_pollsets) {
   for (int i = 0; i < num_pollsets; i++) {
-    pollsets[i].ps = gpr_zalloc(grpc_pollset_size());
+    pollsets[i].ps =
+        static_cast<grpc_pollset *>(gpr_zalloc(grpc_pollset_size()));
     grpc_pollset_init(pollsets[i].ps, &pollsets[i].mu);
   }
 }
 
 static void destroy_pollset(grpc_exec_ctx *exec_ctx, void *p,
                             grpc_error *error) {
-  grpc_pollset_destroy(exec_ctx, p);
+  grpc_pollset_destroy(exec_ctx, static_cast<grpc_pollset *>(p));
 }
 
 static void cleanup_test_pollsets(grpc_exec_ctx *exec_ctx,
diff --git a/test/core/iomgr/resolve_address_posix_test.c b/test/core/iomgr/resolve_address_posix_test.cc
similarity index 93%
rename from test/core/iomgr/resolve_address_posix_test.c
rename to test/core/iomgr/resolve_address_posix_test.cc
index cb9d608..572b422 100644
--- a/test/core/iomgr/resolve_address_posix_test.c
+++ b/test/core/iomgr/resolve_address_posix_test.cc
@@ -50,7 +50,7 @@
 
 void args_init(grpc_exec_ctx *exec_ctx, args_struct *args) {
   gpr_event_init(&args->ev);
-  args->pollset = gpr_zalloc(grpc_pollset_size());
+  args->pollset = static_cast<grpc_pollset *>(gpr_zalloc(grpc_pollset_size()));
   grpc_pollset_init(args->pollset, &args->mu);
   args->pollset_set = grpc_pollset_set_create();
   grpc_pollset_set_add_pollset(exec_ctx, args->pollset_set, args->pollset);
@@ -78,7 +78,7 @@
 }
 
 static void actually_poll(void *argsp) {
-  args_struct *args = argsp;
+  args_struct *args = static_cast<args_struct *>(argsp);
   grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT;
   grpc_millis deadline = n_sec_deadline(10);
   while (true) {
@@ -109,7 +109,7 @@
 
 static void must_succeed(grpc_exec_ctx *exec_ctx, void *argsp,
                          grpc_error *err) {
-  args_struct *args = argsp;
+  args_struct *args = static_cast<args_struct *>(argsp);
   GPR_ASSERT(err == GRPC_ERROR_NONE);
   GPR_ASSERT(args->addrs != NULL);
   GPR_ASSERT(args->addrs->naddrs > 0);
@@ -117,7 +117,7 @@
 }
 
 static void must_fail(grpc_exec_ctx *exec_ctx, void *argsp, grpc_error *err) {
-  args_struct *args = argsp;
+  args_struct *args = static_cast<args_struct *>(argsp);
   GPR_ASSERT(err != GRPC_ERROR_NONE);
   gpr_atm_rel_store(&args->done_atm, 1);
 }
@@ -142,7 +142,8 @@
   const char prefix[] = "unix:/path/name";
   size_t path_name_length =
       GPR_ARRAY_SIZE(((struct sockaddr_un *)0)->sun_path) + 6;
-  char *path_name = gpr_malloc(sizeof(char) * path_name_length);
+  char *path_name =
+      static_cast<char *>(gpr_malloc(sizeof(char) * path_name_length));
   memset(path_name, 'a', path_name_length);
   memcpy(path_name, prefix, strlen(prefix) - 1);
   path_name[path_name_length - 1] = '\0';
diff --git a/test/core/iomgr/resolve_address_test.c b/test/core/iomgr/resolve_address_test.cc
similarity index 97%
rename from test/core/iomgr/resolve_address_test.c
rename to test/core/iomgr/resolve_address_test.cc
index 178bbbb..da6aab35 100644
--- a/test/core/iomgr/resolve_address_test.c
+++ b/test/core/iomgr/resolve_address_test.cc
@@ -43,7 +43,7 @@
 
 void args_init(grpc_exec_ctx *exec_ctx, args_struct *args) {
   gpr_event_init(&args->ev);
-  args->pollset = gpr_zalloc(grpc_pollset_size());
+  args->pollset = static_cast<grpc_pollset *>(gpr_zalloc(grpc_pollset_size()));
   grpc_pollset_init(args->pollset, &args->mu);
   args->pollset_set = grpc_pollset_set_create();
   grpc_pollset_set_add_pollset(exec_ctx, args->pollset_set, args->pollset);
@@ -98,7 +98,7 @@
 
 static void must_succeed(grpc_exec_ctx *exec_ctx, void *argsp,
                          grpc_error *err) {
-  args_struct *args = argsp;
+  args_struct *args = static_cast<args_struct *>(argsp);
   GPR_ASSERT(err == GRPC_ERROR_NONE);
   GPR_ASSERT(args->addrs != NULL);
   GPR_ASSERT(args->addrs->naddrs > 0);
@@ -110,7 +110,7 @@
 }
 
 static void must_fail(grpc_exec_ctx *exec_ctx, void *argsp, grpc_error *err) {
-  args_struct *args = argsp;
+  args_struct *args = static_cast<args_struct *>(argsp);
   GPR_ASSERT(err != GRPC_ERROR_NONE);
   gpr_atm_rel_store(&args->done_atm, 1);
   gpr_mu_lock(args->mu);
diff --git a/test/core/iomgr/resource_quota_test.c b/test/core/iomgr/resource_quota_test.cc
similarity index 98%
rename from test/core/iomgr/resource_quota_test.c
rename to test/core/iomgr/resource_quota_test.cc
index b588f3d..f0002e0 100644
--- a/test/core/iomgr/resource_quota_test.c
+++ b/test/core/iomgr/resource_quota_test.cc
@@ -58,7 +58,7 @@
 static void reclaimer_cb(grpc_exec_ctx *exec_ctx, void *args,
                          grpc_error *error) {
   GPR_ASSERT(error == GRPC_ERROR_NONE);
-  reclaimer_args *a = args;
+  reclaimer_args *a = static_cast<reclaimer_args *>(args);
   grpc_resource_user_free(exec_ctx, a->resource_user, a->size);
   grpc_resource_user_finish_reclamation(exec_ctx, a->resource_user);
   GRPC_CLOSURE_RUN(exec_ctx, a->then, GRPC_ERROR_NONE);
@@ -66,7 +66,7 @@
 }
 grpc_closure *make_reclaimer(grpc_resource_user *resource_user, size_t size,
                              grpc_closure *then) {
-  reclaimer_args *a = gpr_malloc(sizeof(*a));
+  reclaimer_args *a = static_cast<reclaimer_args *>(gpr_malloc(sizeof(*a)));
   a->size = size;
   a->resource_user = resource_user;
   a->then = then;
@@ -76,7 +76,7 @@
 static void unused_reclaimer_cb(grpc_exec_ctx *exec_ctx, void *arg,
                                 grpc_error *error) {
   GPR_ASSERT(error == GRPC_ERROR_CANCELLED);
-  GRPC_CLOSURE_RUN(exec_ctx, arg, GRPC_ERROR_NONE);
+  GRPC_CLOSURE_RUN(exec_ctx, static_cast<grpc_closure *>(arg), GRPC_ERROR_NONE);
 }
 grpc_closure *make_unused_reclaimer(grpc_closure *then) {
   return GRPC_CLOSURE_CREATE(unused_reclaimer_cb, then,
diff --git a/test/core/iomgr/sockaddr_utils_test.c b/test/core/iomgr/sockaddr_utils_test.cc
similarity index 100%
rename from test/core/iomgr/sockaddr_utils_test.c
rename to test/core/iomgr/sockaddr_utils_test.cc
diff --git a/test/core/iomgr/socket_utils_test.c b/test/core/iomgr/socket_utils_test.cc
similarity index 100%
rename from test/core/iomgr/socket_utils_test.c
rename to test/core/iomgr/socket_utils_test.cc
diff --git a/test/core/iomgr/tcp_client_posix_test.c b/test/core/iomgr/tcp_client_posix_test.cc
similarity index 97%
rename from test/core/iomgr/tcp_client_posix_test.c
rename to test/core/iomgr/tcp_client_posix_test.cc
index b8b76d1..b2dcb1d 100644
--- a/test/core/iomgr/tcp_client_posix_test.c
+++ b/test/core/iomgr/tcp_client_posix_test.cc
@@ -190,7 +190,7 @@
 
 static void destroy_pollset(grpc_exec_ctx *exec_ctx, void *p,
                             grpc_error *error) {
-  grpc_pollset_destroy(exec_ctx, p);
+  grpc_pollset_destroy(exec_ctx, static_cast<grpc_pollset *>(p));
 }
 
 int main(int argc, char **argv) {
@@ -199,7 +199,7 @@
   grpc_test_init(argc, argv);
   grpc_init();
   g_pollset_set = grpc_pollset_set_create();
-  g_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_set_add_pollset(&exec_ctx, g_pollset_set, g_pollset);
   grpc_exec_ctx_finish(&exec_ctx);
diff --git a/test/core/iomgr/tcp_client_uv_test.c b/test/core/iomgr/tcp_client_uv_test.cc
similarity index 100%
rename from test/core/iomgr/tcp_client_uv_test.c
rename to test/core/iomgr/tcp_client_uv_test.cc
diff --git a/test/core/iomgr/tcp_posix_test.c b/test/core/iomgr/tcp_posix_test.cc
similarity index 93%
rename from test/core/iomgr/tcp_posix_test.c
rename to test/core/iomgr/tcp_posix_test.cc
index 6501160..8a4433b 100644
--- a/test/core/iomgr/tcp_posix_test.c
+++ b/test/core/iomgr/tcp_posix_test.cc
@@ -171,10 +171,10 @@
 
   create_sockets(sv);
 
-  grpc_arg a[] = {{.key = GRPC_ARG_TCP_READ_CHUNK_SIZE,
-                   .type = GRPC_ARG_INTEGER,
-                   .value.integer = (int)slice_size}};
-  grpc_channel_args args = {.num_args = GPR_ARRAY_SIZE(a), .args = a};
+  grpc_arg a[1];
+  a[0].key = const_cast<char *>(GRPC_ARG_TCP_READ_CHUNK_SIZE);
+  a[0].type = GRPC_ARG_INTEGER, a[0].value.integer = (int)slice_size;
+  grpc_channel_args args = {GPR_ARRAY_SIZE(a), a};
   ep = grpc_tcp_create(&exec_ctx, grpc_fd_create(sv[1], "read_test"), &args,
                        "test");
   grpc_endpoint_add_to_pollset(&exec_ctx, ep, g_pollset);
@@ -223,10 +223,11 @@
 
   create_sockets(sv);
 
-  grpc_arg a[] = {{.key = GRPC_ARG_TCP_READ_CHUNK_SIZE,
-                   .type = GRPC_ARG_INTEGER,
-                   .value.integer = (int)slice_size}};
-  grpc_channel_args args = {.num_args = GPR_ARRAY_SIZE(a), .args = a};
+  grpc_arg a[1];
+  a[0].key = const_cast<char *>(GRPC_ARG_TCP_READ_CHUNK_SIZE);
+  a[0].type = GRPC_ARG_INTEGER;
+  a[0].value.integer = (int)slice_size;
+  grpc_channel_args args = {GPR_ARRAY_SIZE(a), a};
   ep = grpc_tcp_create(&exec_ctx, grpc_fd_create(sv[1], "large_read_test"),
                        &args, "test");
   grpc_endpoint_add_to_pollset(&exec_ctx, ep, g_pollset);
@@ -363,10 +364,10 @@
 
   create_sockets(sv);
 
-  grpc_arg a[] = {{.key = GRPC_ARG_TCP_READ_CHUNK_SIZE,
-                   .type = GRPC_ARG_INTEGER,
-                   .value.integer = (int)slice_size}};
-  grpc_channel_args args = {.num_args = GPR_ARRAY_SIZE(a), .args = a};
+  grpc_arg a[1];
+  a[0].key = const_cast<char *>(GRPC_ARG_TCP_READ_CHUNK_SIZE);
+  a[0].type = GRPC_ARG_INTEGER, a[0].value.integer = (int)slice_size;
+  grpc_channel_args args = {GPR_ARRAY_SIZE(a), a};
   ep = grpc_tcp_create(&exec_ctx, grpc_fd_create(sv[1], "write_test"), &args,
                        "test");
   grpc_endpoint_add_to_pollset(&exec_ctx, ep, g_pollset);
@@ -433,10 +434,11 @@
 
   create_sockets(sv);
 
-  grpc_arg a[] = {{.key = GRPC_ARG_TCP_READ_CHUNK_SIZE,
-                   .type = GRPC_ARG_INTEGER,
-                   .value.integer = (int)slice_size}};
-  grpc_channel_args args = {.num_args = GPR_ARRAY_SIZE(a), .args = a};
+  grpc_arg a[1];
+  a[0].key = const_cast<char *>(GRPC_ARG_TCP_READ_CHUNK_SIZE);
+  a[0].type = GRPC_ARG_INTEGER;
+  a[0].value.integer = (int)slice_size;
+  grpc_channel_args args = {GPR_ARRAY_SIZE(a), a};
   ep = grpc_tcp_create(&exec_ctx, grpc_fd_create(sv[1], "read_test"), &args,
                        "test");
   GPR_ASSERT(grpc_tcp_fd(ep) == sv[1] && sv[1] >= 0);
@@ -525,10 +527,11 @@
   create_sockets(sv);
   grpc_resource_quota *resource_quota =
       grpc_resource_quota_create("tcp_posix_test_socketpair");
-  grpc_arg a[] = {{.key = GRPC_ARG_TCP_READ_CHUNK_SIZE,
-                   .type = GRPC_ARG_INTEGER,
-                   .value.integer = (int)slice_size}};
-  grpc_channel_args args = {.num_args = GPR_ARRAY_SIZE(a), .args = a};
+  grpc_arg a[1];
+  a[0].key = const_cast<char *>(GRPC_ARG_TCP_READ_CHUNK_SIZE);
+  a[0].type = GRPC_ARG_INTEGER;
+  a[0].value.integer = (int)slice_size;
+  grpc_channel_args args = {GPR_ARRAY_SIZE(a), a};
   f.client_ep = grpc_tcp_create(
       &exec_ctx, grpc_fd_create(sv[0], "fixture:client"), &args, "test");
   f.server_ep = grpc_tcp_create(
diff --git a/test/core/iomgr/tcp_server_posix_test.c b/test/core/iomgr/tcp_server_posix_test.cc
similarity index 96%
rename from test/core/iomgr/tcp_server_posix_test.c
rename to test/core/iomgr/tcp_server_posix_test.cc
index 782dfb4..a44e395 100644
--- a/test/core/iomgr/tcp_server_posix_test.c
+++ b/test/core/iomgr/tcp_server_posix_test.cc
@@ -112,7 +112,7 @@
 
 static void server_weak_ref_shutdown(grpc_exec_ctx *exec_ctx, void *arg,
                                      grpc_error *error) {
-  server_weak_ref *weak_ref = arg;
+  server_weak_ref *weak_ref = static_cast<server_weak_ref *>(arg);
   weak_ref->server = NULL;
 }
 
@@ -429,22 +429,25 @@
 
 static void destroy_pollset(grpc_exec_ctx *exec_ctx, void *p,
                             grpc_error *error) {
-  grpc_pollset_destroy(exec_ctx, p);
+  grpc_pollset_destroy(exec_ctx, static_cast<grpc_pollset *>(p));
 }
 
 int main(int argc, char **argv) {
   grpc_closure destroyed;
   grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT;
-  grpc_arg chan_args[] = {
-      {GRPC_ARG_INTEGER, GRPC_ARG_EXPAND_WILDCARD_ADDRS, {.integer = 1}}};
+  grpc_arg chan_args[1];
+  chan_args[0].type = GRPC_ARG_INTEGER;
+  chan_args[0].key = const_cast<char *>(GRPC_ARG_EXPAND_WILDCARD_ADDRS);
+  chan_args[0].value.integer = 1;
   const grpc_channel_args channel_args = {1, chan_args};
   struct ifaddrs *ifa = NULL;
   struct ifaddrs *ifa_it;
   // Zalloc dst_addrs to avoid oversized frames.
-  test_addrs *dst_addrs = gpr_zalloc(sizeof(*dst_addrs));
+  test_addrs *dst_addrs =
+      static_cast<test_addrs *>(gpr_zalloc(sizeof(*dst_addrs)));
   grpc_test_init(argc, argv);
   grpc_init();
-  g_pollset = gpr_zalloc(grpc_pollset_size());
+  g_pollset = static_cast<grpc_pollset *>(gpr_zalloc(grpc_pollset_size()));
   grpc_pollset_init(g_pollset, &g_mu);
 
   test_no_op();
diff --git a/test/core/iomgr/tcp_server_uv_test.c b/test/core/iomgr/tcp_server_uv_test.cc
similarity index 100%
rename from test/core/iomgr/tcp_server_uv_test.c
rename to test/core/iomgr/tcp_server_uv_test.cc
diff --git a/test/core/iomgr/time_averaged_stats_test.c b/test/core/iomgr/time_averaged_stats_test.cc
similarity index 100%
rename from test/core/iomgr/time_averaged_stats_test.c
rename to test/core/iomgr/time_averaged_stats_test.cc
diff --git a/test/core/iomgr/timer_heap_test.c b/test/core/iomgr/timer_heap_test.cc
similarity index 95%
rename from test/core/iomgr/timer_heap_test.c
rename to test/core/iomgr/timer_heap_test.cc
index ee5a474..3eb25dd 100644
--- a/test/core/iomgr/timer_heap_test.c
+++ b/test/core/iomgr/timer_heap_test.cc
@@ -35,7 +35,8 @@
 static gpr_atm random_deadline(void) { return rand(); }
 
 static grpc_timer *create_test_elements(size_t num_elements) {
-  grpc_timer *elems = gpr_malloc(num_elements * sizeof(grpc_timer));
+  grpc_timer *elems =
+      static_cast<grpc_timer *>(gpr_malloc(num_elements * sizeof(grpc_timer)));
   size_t i;
   for (i = 0; i < num_elements; i++) {
     elems[i].deadline = random_deadline();
@@ -75,7 +76,7 @@
   const size_t num_test_operations = 10000;
   size_t i;
   grpc_timer *test_elements = create_test_elements(num_test_elements);
-  uint8_t *inpq = gpr_malloc(num_test_elements);
+  uint8_t *inpq = static_cast<uint8_t *>(gpr_malloc(num_test_elements));
 
   gpr_log(GPR_INFO, "test1");
 
@@ -135,7 +136,8 @@
 
 static elem_struct *search_elems(elem_struct *elems, size_t count,
                                  bool inserted) {
-  size_t *search_order = gpr_malloc(count * sizeof(*search_order));
+  size_t *search_order =
+      static_cast<size_t *>(gpr_malloc(count * sizeof(*search_order)));
   for (size_t i = 0; i < count; i++) {
     search_order[i] = i;
   }
@@ -160,7 +162,8 @@
   grpc_timer_heap pq;
 
   static const size_t elems_size = 1000;
-  elem_struct *elems = gpr_malloc(elems_size * sizeof(elem_struct));
+  elem_struct *elems =
+      static_cast<elem_struct *>(gpr_malloc(elems_size * sizeof(elem_struct)));
   size_t num_inserted = 0;
 
   grpc_timer_heap_init(&pq);
diff --git a/test/core/iomgr/timer_list_test.c b/test/core/iomgr/timer_list_test.cc
similarity index 100%
rename from test/core/iomgr/timer_list_test.c
rename to test/core/iomgr/timer_list_test.cc
diff --git a/test/core/iomgr/udp_server_test.c b/test/core/iomgr/udp_server_test.cc
similarity index 97%
rename from test/core/iomgr/udp_server_test.c
rename to test/core/iomgr/udp_server_test.cc
index 2e44d0a..51c7ab8 100644
--- a/test/core/iomgr/udp_server_test.c
+++ b/test/core/iomgr/udp_server_test.cc
@@ -118,7 +118,8 @@
     test_socket_factory_compare, test_socket_factory_destroy};
 
 static test_socket_factory *test_socket_factory_create(void) {
-  test_socket_factory *factory = gpr_malloc(sizeof(test_socket_factory));
+  test_socket_factory *factory = static_cast<test_socket_factory *>(
+      gpr_malloc(sizeof(test_socket_factory)));
   grpc_socket_factory_init(&factory->base, &test_socket_factory_vtable);
   factory->number_of_socket_calls = 0;
   factory->number_of_bind_calls = 0;
@@ -292,7 +293,7 @@
 
 static void destroy_pollset(grpc_exec_ctx *exec_ctx, void *p,
                             grpc_error *error) {
-  grpc_pollset_destroy(exec_ctx, p);
+  grpc_pollset_destroy(exec_ctx, static_cast<grpc_pollset *>(p));
 }
 
 int main(int argc, char **argv) {
@@ -300,7 +301,7 @@
   grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT;
   grpc_test_init(argc, argv);
   grpc_init();
-  g_pollset = gpr_zalloc(grpc_pollset_size());
+  g_pollset = static_cast<grpc_pollset *>(gpr_zalloc(grpc_pollset_size()));
   grpc_pollset_init(g_pollset, &g_mu);
 
   test_no_op();
diff --git a/test/core/iomgr/wakeup_fd_cv_test.c b/test/core/iomgr/wakeup_fd_cv_test.cc
similarity index 100%
rename from test/core/iomgr/wakeup_fd_cv_test.c
rename to test/core/iomgr/wakeup_fd_cv_test.cc
diff --git a/test/core/json/fuzzer.c b/test/core/json/fuzzer.cc
similarity index 96%
rename from test/core/json/fuzzer.c
rename to test/core/json/fuzzer.cc
index b825904..a8b75f7 100644
--- a/test/core/json/fuzzer.c
+++ b/test/core/json/fuzzer.cc
@@ -33,7 +33,7 @@
   char *s;
   struct grpc_memory_counters counters;
   grpc_memory_counters_init();
-  s = gpr_malloc(size);
+  s = static_cast<char *>(gpr_malloc(size));
   memcpy(s, data, size);
   grpc_json *x;
   if ((x = grpc_json_parse_string_with_len(s, size))) {
diff --git a/test/core/json/json_rewrite.c b/test/core/json/json_rewrite.cc
similarity index 82%
rename from test/core/json/json_rewrite.c
rename to test/core/json/json_rewrite.cc
index dfe32f5..27443e3 100644
--- a/test/core/json/json_rewrite.c
+++ b/test/core/json/json_rewrite.cc
@@ -45,18 +45,18 @@
 } json_reader_userdata;
 
 static void json_writer_output_char(void *userdata, char c) {
-  json_writer_userdata *state = userdata;
+  json_writer_userdata *state = static_cast<json_writer_userdata *>(userdata);
   fputc(c, state->out);
 }
 
 static void json_writer_output_string(void *userdata, const char *str) {
-  json_writer_userdata *state = userdata;
+  json_writer_userdata *state = static_cast<json_writer_userdata *>(userdata);
   fputs(str, state->out);
 }
 
 static void json_writer_output_string_with_len(void *userdata, const char *str,
                                                size_t len) {
-  json_writer_userdata *state = userdata;
+  json_writer_userdata *state = static_cast<json_writer_userdata *>(userdata);
   fwrite(str, len, 1, state->out);
 }
 
@@ -68,19 +68,20 @@
   if (state->free_space >= needed) return;
   needed -= state->free_space;
   needed = (needed + 0xffu) & ~0xffu;
-  state->scratchpad = gpr_realloc(state->scratchpad, state->allocated + needed);
+  state->scratchpad = static_cast<char *>(
+      gpr_realloc(state->scratchpad, state->allocated + needed));
   state->free_space += needed;
   state->allocated += needed;
 }
 
 static void json_reader_string_clear(void *userdata) {
-  json_reader_userdata *state = userdata;
+  json_reader_userdata *state = static_cast<json_reader_userdata *>(userdata);
   state->free_space = state->allocated;
   state->string_len = 0;
 }
 
 static void json_reader_string_add_char(void *userdata, uint32_t c) {
-  json_reader_userdata *state = userdata;
+  json_reader_userdata *state = static_cast<json_reader_userdata *>(userdata);
   check_string(state, 1);
   GPR_ASSERT(c < 256);
   state->scratchpad[state->string_len++] = (char)c;
@@ -115,7 +116,7 @@
 
 static uint32_t json_reader_read_char(void *userdata) {
   int r;
-  json_reader_userdata *state = userdata;
+  json_reader_userdata *state = static_cast<json_reader_userdata *>(userdata);
 
   r = fgetc(state->in);
   if (r == EOF) r = GRPC_JSON_READ_CHAR_EOF;
@@ -123,8 +124,9 @@
 }
 
 static void json_reader_container_begins(void *userdata, grpc_json_type type) {
-  json_reader_userdata *state = userdata;
-  stacked_container *container = gpr_malloc(sizeof(stacked_container));
+  json_reader_userdata *state = static_cast<json_reader_userdata *>(userdata);
+  stacked_container *container =
+      static_cast<stacked_container *>(gpr_malloc(sizeof(stacked_container)));
 
   container->type = type;
   container->next = state->top;
@@ -134,7 +136,7 @@
 }
 
 static grpc_json_type json_reader_container_ends(void *userdata) {
-  json_reader_userdata *state = userdata;
+  json_reader_userdata *state = static_cast<json_reader_userdata *>(userdata);
   stacked_container *container = state->top;
 
   grpc_json_writer_container_ends(state->writer, container->type);
@@ -144,21 +146,21 @@
 }
 
 static void json_reader_set_key(void *userdata) {
-  json_reader_userdata *state = userdata;
+  json_reader_userdata *state = static_cast<json_reader_userdata *>(userdata);
   json_reader_string_add_char(userdata, 0);
 
   grpc_json_writer_object_key(state->writer, state->scratchpad);
 }
 
 static void json_reader_set_string(void *userdata) {
-  json_reader_userdata *state = userdata;
+  json_reader_userdata *state = static_cast<json_reader_userdata *>(userdata);
   json_reader_string_add_char(userdata, 0);
 
   grpc_json_writer_value_string(state->writer, state->scratchpad);
 }
 
 static int json_reader_set_number(void *userdata) {
-  json_reader_userdata *state = userdata;
+  json_reader_userdata *state = static_cast<json_reader_userdata *>(userdata);
 
   grpc_json_writer_value_raw_with_len(state->writer, state->scratchpad,
                                       state->string_len);
@@ -167,19 +169,19 @@
 }
 
 static void json_reader_set_true(void *userdata) {
-  json_reader_userdata *state = userdata;
+  json_reader_userdata *state = static_cast<json_reader_userdata *>(userdata);
 
   grpc_json_writer_value_raw_with_len(state->writer, "true", 4);
 }
 
 static void json_reader_set_false(void *userdata) {
-  json_reader_userdata *state = userdata;
+  json_reader_userdata *state = static_cast<json_reader_userdata *>(userdata);
 
   grpc_json_writer_value_raw_with_len(state->writer, "false", 5);
 }
 
 static void json_reader_set_null(void *userdata) {
-  json_reader_userdata *state = userdata;
+  json_reader_userdata *state = static_cast<json_reader_userdata *>(userdata);
 
   grpc_json_writer_value_raw_with_len(state->writer, "null", 4);
 }
diff --git a/test/core/json/json_rewrite_test.c b/test/core/json/json_rewrite_test.cc
similarity index 86%
rename from test/core/json/json_rewrite_test.c
rename to test/core/json/json_rewrite_test.cc
index a654971..ba22709 100644
--- a/test/core/json/json_rewrite_test.c
+++ b/test/core/json/json_rewrite_test.cc
@@ -47,7 +47,7 @@
 } json_reader_userdata;
 
 static void json_writer_output_char(void *userdata, char c) {
-  json_writer_userdata *state = userdata;
+  json_writer_userdata *state = static_cast<json_writer_userdata *>(userdata);
   int cmp = fgetc(state->cmp);
 
   /* treat CRLF as LF */
@@ -79,19 +79,20 @@
   if (state->free_space >= needed) return;
   needed -= state->free_space;
   needed = (needed + 0xffu) & ~0xffu;
-  state->scratchpad = gpr_realloc(state->scratchpad, state->allocated + needed);
+  state->scratchpad = static_cast<char *>(
+      gpr_realloc(state->scratchpad, state->allocated + needed));
   state->free_space += needed;
   state->allocated += needed;
 }
 
 static void json_reader_string_clear(void *userdata) {
-  json_reader_userdata *state = userdata;
+  json_reader_userdata *state = static_cast<json_reader_userdata *>(userdata);
   state->free_space = state->allocated;
   state->string_len = 0;
 }
 
 static void json_reader_string_add_char(void *userdata, uint32_t c) {
-  json_reader_userdata *state = userdata;
+  json_reader_userdata *state = static_cast<json_reader_userdata *>(userdata);
   check_string(state, 1);
   GPR_ASSERT(c <= 256);
   state->scratchpad[state->string_len++] = (char)c;
@@ -126,7 +127,7 @@
 
 static uint32_t json_reader_read_char(void *userdata) {
   int r;
-  json_reader_userdata *state = userdata;
+  json_reader_userdata *state = static_cast<json_reader_userdata *>(userdata);
 
   if (!state->did_eagain) {
     state->did_eagain = 1;
@@ -141,8 +142,9 @@
 }
 
 static void json_reader_container_begins(void *userdata, grpc_json_type type) {
-  json_reader_userdata *state = userdata;
-  stacked_container *container = gpr_malloc(sizeof(stacked_container));
+  json_reader_userdata *state = static_cast<json_reader_userdata *>(userdata);
+  stacked_container *container =
+      static_cast<stacked_container *>(gpr_malloc(sizeof(stacked_container)));
 
   container->type = type;
   container->next = state->top;
@@ -152,7 +154,7 @@
 }
 
 static grpc_json_type json_reader_container_ends(void *userdata) {
-  json_reader_userdata *state = userdata;
+  json_reader_userdata *state = static_cast<json_reader_userdata *>(userdata);
   stacked_container *container = state->top;
 
   grpc_json_writer_container_ends(state->writer, container->type);
@@ -162,21 +164,21 @@
 }
 
 static void json_reader_set_key(void *userdata) {
-  json_reader_userdata *state = userdata;
+  json_reader_userdata *state = static_cast<json_reader_userdata *>(userdata);
   json_reader_string_add_char(userdata, 0);
 
   grpc_json_writer_object_key(state->writer, state->scratchpad);
 }
 
 static void json_reader_set_string(void *userdata) {
-  json_reader_userdata *state = userdata;
+  json_reader_userdata *state = static_cast<json_reader_userdata *>(userdata);
   json_reader_string_add_char(userdata, 0);
 
   grpc_json_writer_value_string(state->writer, state->scratchpad);
 }
 
 static int json_reader_set_number(void *userdata) {
-  json_reader_userdata *state = userdata;
+  json_reader_userdata *state = static_cast<json_reader_userdata *>(userdata);
 
   grpc_json_writer_value_raw_with_len(state->writer, state->scratchpad,
                                       state->string_len);
@@ -185,19 +187,19 @@
 }
 
 static void json_reader_set_true(void *userdata) {
-  json_reader_userdata *state = userdata;
+  json_reader_userdata *state = static_cast<json_reader_userdata *>(userdata);
 
   grpc_json_writer_value_raw_with_len(state->writer, "true", 4);
 }
 
 static void json_reader_set_false(void *userdata) {
-  json_reader_userdata *state = userdata;
+  json_reader_userdata *state = static_cast<json_reader_userdata *>(userdata);
 
   grpc_json_writer_value_raw_with_len(state->writer, "false", 5);
 }
 
 static void json_reader_set_null(void *userdata) {
-  json_reader_userdata *state = userdata;
+  json_reader_userdata *state = static_cast<json_reader_userdata *>(userdata);
 
   grpc_json_writer_value_raw_with_len(state->writer, "null", 4);
 }
diff --git a/test/core/json/json_stream_error_test.c b/test/core/json/json_stream_error_test.cc
similarity index 100%
rename from test/core/json/json_stream_error_test.c
rename to test/core/json/json_stream_error_test.cc
diff --git a/test/core/json/json_test.c b/test/core/json/json_test.cc
similarity index 100%
rename from test/core/json/json_test.c
rename to test/core/json/json_test.cc
diff --git a/test/core/memory_usage/client.c b/test/core/memory_usage/client.cc
similarity index 99%
rename from test/core/memory_usage/client.c
rename to test/core/memory_usage/client.cc
index 6392554..fbf907fe 100644
--- a/test/core/memory_usage/client.c
+++ b/test/core/memory_usage/client.cc
@@ -183,7 +183,7 @@
   grpc_slice slice = grpc_slice_from_copied_string("x");
   char *fake_argv[1];
 
-  char *target = "localhost:443";
+  const char *target = "localhost:443";
   gpr_cmdline *cl;
   grpc_event event;
 
diff --git a/test/core/memory_usage/memory_usage_test.c b/test/core/memory_usage/memory_usage_test.cc
similarity index 89%
rename from test/core/memory_usage/memory_usage_test.c
rename to test/core/memory_usage/memory_usage_test.cc
index f4ee6c6..7bf1657 100644
--- a/test/core/memory_usage/memory_usage_test.c
+++ b/test/core/memory_usage/memory_usage_test.cc
@@ -44,9 +44,9 @@
   /* start the server */
   gpr_asprintf(&args[0], "%s/memory_profile_server%s", root,
                gpr_subprocess_binary_extension());
-  args[1] = "--bind";
+  args[1] = const_cast<char *>("--bind");
   gpr_join_host_port(&args[2], "::", port);
-  args[3] = "--no-secure";
+  args[3] = const_cast<char *>("--no-secure");
   svr = gpr_subprocess_create(4, (const char **)args);
   gpr_free(args[0]);
   gpr_free(args[2]);
@@ -54,10 +54,10 @@
   /* start the client */
   gpr_asprintf(&args[0], "%s/memory_profile_client%s", root,
                gpr_subprocess_binary_extension());
-  args[1] = "--target";
+  args[1] = const_cast<char *>("--target");
   gpr_join_host_port(&args[2], "127.0.0.1", port);
-  args[3] = "--warmup=1000";
-  args[4] = "--benchmark=9000";
+  args[3] = const_cast<char *>("--warmup=1000");
+  args[4] = const_cast<char *>("--benchmark=9000");
   cli = gpr_subprocess_create(5, (const char **)args);
   gpr_free(args[0]);
   gpr_free(args[2]);
diff --git a/test/core/memory_usage/server.c b/test/core/memory_usage/server.cc
similarity index 98%
rename from test/core/memory_usage/server.c
rename to test/core/memory_usage/server.cc
index b25341e..8dee58e 100644
--- a/test/core/memory_usage/server.c
+++ b/test/core/memory_usage/server.cc
@@ -151,7 +151,7 @@
   int shutdown_finished = 0;
 
   int secure = 0;
-  char *addr = NULL;
+  const char *addr = NULL;
 
   char *fake_argv[1];
 
@@ -231,7 +231,7 @@
         cq, gpr_time_add(gpr_now(GPR_CLOCK_REALTIME),
                          gpr_time_from_micros(1000000, GPR_TIMESPAN)),
         NULL);
-    fling_call *s = ev.tag;
+    fling_call *s = static_cast<fling_call *>(ev.tag);
     switch (ev.type) {
       case GRPC_OP_COMPLETE:
         switch (s->state) {
diff --git a/test/core/nanopb/fuzzer_response.c b/test/core/nanopb/fuzzer_response.cc
similarity index 100%
rename from test/core/nanopb/fuzzer_response.c
rename to test/core/nanopb/fuzzer_response.cc
diff --git a/test/core/nanopb/fuzzer_serverlist.c b/test/core/nanopb/fuzzer_serverlist.cc
similarity index 100%
rename from test/core/nanopb/fuzzer_serverlist.c
rename to test/core/nanopb/fuzzer_serverlist.cc
diff --git a/test/core/network_benchmarks/low_level_ping_pong.c b/test/core/network_benchmarks/low_level_ping_pong.cc
similarity index 100%
rename from test/core/network_benchmarks/low_level_ping_pong.c
rename to test/core/network_benchmarks/low_level_ping_pong.cc
diff --git a/test/core/security/auth_context_test.c b/test/core/security/auth_context_test.cc
similarity index 100%
rename from test/core/security/auth_context_test.c
rename to test/core/security/auth_context_test.cc
diff --git a/test/core/security/create_jwt.c b/test/core/security/create_jwt.cc
similarity index 96%
rename from test/core/security/create_jwt.c
rename to test/core/security/create_jwt.cc
index 93ea27f..2444dbe 100644
--- a/test/core/security/create_jwt.c
+++ b/test/core/security/create_jwt.cc
@@ -54,9 +54,9 @@
 }
 
 int main(int argc, char **argv) {
-  char *scope = NULL;
-  char *json_key_file_path = NULL;
-  char *service_url = NULL;
+  const char *scope = NULL;
+  const char *json_key_file_path = NULL;
+  const char *service_url = NULL;
   grpc_init();
   gpr_cmdline *cl = gpr_cmdline_create("create_jwt");
   gpr_cmdline_add_string(cl, "json_key", "File path of the json key.",
diff --git a/test/core/security/credentials_test.c b/test/core/security/credentials_test.cc
similarity index 98%
rename from test/core/security/credentials_test.c
rename to test/core/security/credentials_test.cc
index 34f3101..dfc071b 100644
--- a/test/core/security/credentials_test.c
+++ b/test/core/security/credentials_test.cc
@@ -44,7 +44,8 @@
 
 static grpc_channel_credentials *grpc_mock_channel_credentials_create(
     const grpc_channel_credentials_vtable *vtable) {
-  grpc_channel_credentials *c = gpr_malloc(sizeof(*c));
+  grpc_channel_credentials *c =
+      static_cast<grpc_channel_credentials *>(gpr_malloc(sizeof(*c)));
   memset(c, 0, sizeof(*c));
   c->type = "mock";
   c->vtable = vtable;
@@ -122,7 +123,7 @@
   size_t result_len = strlen(test_json_key_str_part1) +
                       strlen(test_json_key_str_part2) +
                       strlen(test_json_key_str_part3);
-  char *result = gpr_malloc(result_len + 1);
+  char *result = static_cast<char *>(gpr_malloc(result_len + 1));
   char *current = result;
   strcpy(result, test_json_key_str_part1);
   current += strlen(test_json_key_str_part1);
@@ -363,7 +364,8 @@
 static request_metadata_state *make_request_metadata_state(
     grpc_error *expected_error, const expected_md *expected,
     size_t expected_size) {
-  request_metadata_state *state = gpr_zalloc(sizeof(*state));
+  request_metadata_state *state =
+      static_cast<request_metadata_state *>(gpr_zalloc(sizeof(*state)));
   state->expected_error = expected_error;
   state->expected = expected;
   state->expected_size = expected_size;
@@ -934,7 +936,8 @@
     grpc_millis deadline, grpc_closure *on_done,
     grpc_httpcli_response *response) {
   *response = http_response(200, "");
-  grpc_http_header *headers = gpr_malloc(sizeof(*headers) * 1);
+  grpc_http_header *headers =
+      static_cast<grpc_http_header *>(gpr_malloc(sizeof(*headers) * 1));
   headers[0].key = gpr_strdup("Metadata-Flavor");
   headers[0].value = gpr_strdup("Google");
   response->hdr_count = 1;
diff --git a/test/core/security/fetch_oauth2.c b/test/core/security/fetch_oauth2.cc
similarity index 98%
rename from test/core/security/fetch_oauth2.c
rename to test/core/security/fetch_oauth2.cc
index 3998cb5..1f1cf11 100644
--- a/test/core/security/fetch_oauth2.c
+++ b/test/core/security/fetch_oauth2.cc
@@ -44,7 +44,7 @@
 int main(int argc, char **argv) {
   grpc_call_credentials *creds = NULL;
   char *json_key_file_path = NULL;
-  char *json_refresh_token_file_path = NULL;
+  const char *json_refresh_token_file_path = NULL;
   char *token = NULL;
   int use_gce = 0;
   char *scope = NULL;
diff --git a/test/core/security/json_token_test.c b/test/core/security/json_token_test.cc
similarity index 98%
rename from test/core/security/json_token_test.c
rename to test/core/security/json_token_test.cc
index 6573f70..70661a1 100644
--- a/test/core/security/json_token_test.c
+++ b/test/core/security/json_token_test.cc
@@ -81,7 +81,7 @@
   const char *part3 = bad_part3 != NULL ? bad_part3 : test_json_key_str_part3;
   size_t result_len = strlen(test_json_key_str_part1) +
                       strlen(test_json_key_str_part2) + strlen(part3);
-  char *result = gpr_malloc(result_len + 1);
+  char *result = static_cast<char *>(gpr_malloc(result_len + 1));
   char *current = result;
   strcpy(result, test_json_key_str_part1);
   current += strlen(test_json_key_str_part1);
@@ -211,12 +211,12 @@
   char *decoded;
   grpc_json *json;
   grpc_slice slice;
-  b64 = gpr_malloc(len + 1);
+  b64 = static_cast<char *>(gpr_malloc(len + 1));
   strncpy(b64, str, len);
   b64[len] = '\0';
   slice = grpc_base64_decode(&exec_ctx, b64, 1);
   GPR_ASSERT(!GRPC_SLICE_IS_EMPTY(slice));
-  decoded = gpr_malloc(GRPC_SLICE_LENGTH(slice) + 1);
+  decoded = static_cast<char *>(gpr_malloc(GRPC_SLICE_LENGTH(slice) + 1));
   strncpy(decoded, (const char *)GRPC_SLICE_START_PTR(slice),
           GRPC_SLICE_LENGTH(slice));
   decoded[GRPC_SLICE_LENGTH(slice)] = '\0';
diff --git a/test/core/security/jwt_verifier_test.c b/test/core/security/jwt_verifier_test.cc
similarity index 99%
rename from test/core/security/jwt_verifier_test.c
rename to test/core/security/jwt_verifier_test.cc
index a4bfe01..b0b94ba 100644
--- a/test/core/security/jwt_verifier_test.c
+++ b/test/core/security/jwt_verifier_test.cc
@@ -292,7 +292,7 @@
 static char *json_key_str(const char *last_part) {
   size_t result_len = strlen(json_key_str_part1) + strlen(json_key_str_part2) +
                       strlen(last_part);
-  char *result = gpr_malloc(result_len + 1);
+  char *result = static_cast<char *>(gpr_malloc(result_len + 1));
   char *current = result;
   strcpy(result, json_key_str_part1);
   current += strlen(json_key_str_part1);
@@ -305,7 +305,7 @@
 static char *good_google_email_keys(void) {
   size_t result_len = strlen(good_google_email_keys_part1) +
                       strlen(good_google_email_keys_part2);
-  char *result = gpr_malloc(result_len + 1);
+  char *result = static_cast<char *>(gpr_malloc(result_len + 1));
   char *current = result;
   strcpy(result, good_google_email_keys_part1);
   current += strlen(good_google_email_keys_part1);
diff --git a/test/core/security/oauth2_utils.c b/test/core/security/oauth2_utils.cc
similarity index 100%
rename from test/core/security/oauth2_utils.c
rename to test/core/security/oauth2_utils.cc
diff --git a/test/core/security/print_google_default_creds_token.c b/test/core/security/print_google_default_creds_token.cc
similarity index 93%
rename from test/core/security/print_google_default_creds_token.c
rename to test/core/security/print_google_default_creds_token.cc
index 29c38df..81c992c 100644
--- a/test/core/security/print_google_default_creds_token.c
+++ b/test/core/security/print_google_default_creds_token.cc
@@ -43,7 +43,7 @@
 
 static void on_metadata_response(grpc_exec_ctx *exec_ctx, void *arg,
                                  grpc_error *error) {
-  synchronizer *sync = arg;
+  synchronizer *sync = static_cast<synchronizer *>(arg);
   if (error != GRPC_ERROR_NONE) {
     fprintf(stderr, "Fetching token failed: %s\n", grpc_error_string(error));
   } else {
@@ -67,9 +67,11 @@
   grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT;
   synchronizer sync;
   grpc_channel_credentials *creds = NULL;
-  char *service_url = "https://test.foo.google.com/Foo";
+  const char *service_url = "https://test.foo.google.com/Foo";
   grpc_auth_metadata_context context;
   gpr_cmdline *cl = gpr_cmdline_create("print_google_default_creds_token");
+  grpc_pollset *pollset = nullptr;
+  grpc_error *error = nullptr;
   gpr_cmdline_add_string(cl, "service_url",
                          "Service URL for the token request.", &service_url);
   gpr_cmdline_parse(cl, argc, argv);
@@ -86,14 +88,14 @@
   }
 
   memset(&sync, 0, sizeof(sync));
-  grpc_pollset *pollset = gpr_zalloc(grpc_pollset_size());
+  pollset = (grpc_pollset *)gpr_zalloc(grpc_pollset_size());
   grpc_pollset_init(pollset, &sync.mu);
   sync.pops = grpc_polling_entity_create_from_pollset(pollset);
   sync.is_done = false;
   GRPC_CLOSURE_INIT(&sync.on_request_metadata, on_metadata_response, &sync,
                     grpc_schedule_on_exec_ctx);
 
-  grpc_error *error = GRPC_ERROR_NONE;
+  error = GRPC_ERROR_NONE;
   if (grpc_call_credentials_get_request_metadata(
           &exec_ctx, ((grpc_composite_channel_credentials *)creds)->call_creds,
           &sync.pops, context, &sync.md_array, &sync.on_request_metadata,
diff --git a/test/core/security/secure_endpoint_test.c b/test/core/security/secure_endpoint_test.cc
similarity index 97%
rename from test/core/security/secure_endpoint_test.c
rename to test/core/security/secure_endpoint_test.cc
index 839a05f..fe7961d 100644
--- a/test/core/security/secure_endpoint_test.c
+++ b/test/core/security/secure_endpoint_test.cc
@@ -52,9 +52,10 @@
   grpc_endpoint_test_fixture f;
   grpc_endpoint_pair tcp;
 
-  grpc_arg a[] = {{.key = GRPC_ARG_TCP_READ_CHUNK_SIZE,
-                   .type = GRPC_ARG_INTEGER,
-                   .value.integer = (int)slice_size}};
+  grpc_arg a[1];
+  a[0].key = const_cast<char *>(GRPC_ARG_TCP_READ_CHUNK_SIZE);
+  a[0].type = GRPC_ARG_INTEGER;
+  a[0].value.integer = (int)slice_size;
   grpc_channel_args args = {.num_args = GPR_ARRAY_SIZE(a), .args = a};
   tcp = grpc_iomgr_create_endpoint_pair("fixture", &args);
   grpc_endpoint_add_to_pollset(&exec_ctx, tcp.client, g_pollset);
diff --git a/test/core/security/security_connector_test.c b/test/core/security/security_connector_test.cc
similarity index 100%
rename from test/core/security/security_connector_test.c
rename to test/core/security/security_connector_test.cc
diff --git a/test/core/security/ssl_server_fuzzer.c b/test/core/security/ssl_server_fuzzer.cc
similarity index 95%
rename from test/core/security/ssl_server_fuzzer.c
rename to test/core/security/ssl_server_fuzzer.cc
index f9b754b..9d43a41 100644
--- a/test/core/security/ssl_server_fuzzer.c
+++ b/test/core/security/ssl_server_fuzzer.cc
@@ -42,8 +42,9 @@
 
 static void on_handshake_done(grpc_exec_ctx *exec_ctx, void *arg,
                               grpc_error *error) {
-  grpc_handshaker_args *args = arg;
-  struct handshake_state *state = args->user_data;
+  grpc_handshaker_args *args = static_cast<grpc_handshaker_args *>(arg);
+  struct handshake_state *state =
+      static_cast<struct handshake_state *>(args->user_data);
   GPR_ASSERT(state->done_callback_called == false);
   state->done_callback_called = true;
   // The fuzzer should not pass the handshake.
diff --git a/test/core/security/verify_jwt.c b/test/core/security/verify_jwt.cc
similarity index 94%
rename from test/core/security/verify_jwt.c
rename to test/core/security/verify_jwt.cc
index cec6fb9..c6591cf 100644
--- a/test/core/security/verify_jwt.c
+++ b/test/core/security/verify_jwt.cc
@@ -47,7 +47,7 @@
 static void on_jwt_verification_done(grpc_exec_ctx *exec_ctx, void *user_data,
                                      grpc_jwt_verifier_status status,
                                      grpc_jwt_claims *claims) {
-  synchronizer *sync = user_data;
+  synchronizer *sync = static_cast<synchronizer *>(user_data);
 
   sync->success = (status == GRPC_JWT_VERIFIER_OK);
   if (sync->success) {
@@ -75,8 +75,8 @@
   synchronizer sync;
   grpc_jwt_verifier *verifier;
   gpr_cmdline *cl;
-  char *jwt = NULL;
-  char *aud = NULL;
+  const char *jwt = NULL;
+  const char *aud = NULL;
   grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT;
 
   grpc_init();
@@ -92,7 +92,7 @@
 
   grpc_init();
 
-  sync.pollset = gpr_zalloc(grpc_pollset_size());
+  sync.pollset = static_cast<grpc_pollset *>(gpr_zalloc(grpc_pollset_size()));
   grpc_pollset_init(sync.pollset, &sync.mu);
   sync.is_done = 0;
 
diff --git a/test/core/slice/b64_test.c b/test/core/slice/b64_test.cc
similarity index 100%
rename from test/core/slice/b64_test.c
rename to test/core/slice/b64_test.cc
diff --git a/test/core/slice/percent_decode_fuzzer.c b/test/core/slice/percent_decode_fuzzer.cc
similarity index 100%
rename from test/core/slice/percent_decode_fuzzer.c
rename to test/core/slice/percent_decode_fuzzer.cc
diff --git a/test/core/slice/percent_encode_fuzzer.c b/test/core/slice/percent_encode_fuzzer.cc
similarity index 100%
rename from test/core/slice/percent_encode_fuzzer.c
rename to test/core/slice/percent_encode_fuzzer.cc
diff --git a/test/core/slice/percent_encoding_test.c b/test/core/slice/percent_encoding_test.cc
similarity index 100%
rename from test/core/slice/percent_encoding_test.c
rename to test/core/slice/percent_encoding_test.cc
diff --git a/test/core/slice/slice_buffer_test.c b/test/core/slice/slice_buffer_test.cc
similarity index 100%
rename from test/core/slice/slice_buffer_test.c
rename to test/core/slice/slice_buffer_test.cc
diff --git a/test/core/slice/slice_hash_table_test.c b/test/core/slice/slice_hash_table_test.cc
similarity index 96%
rename from test/core/slice/slice_hash_table_test.c
rename to test/core/slice/slice_hash_table_test.cc
index f3689aa..a2006b3 100644
--- a/test/core/slice/slice_hash_table_test.c
+++ b/test/core/slice/slice_hash_table_test.cc
@@ -28,8 +28,8 @@
 #include "test/core/util/test_config.h"
 
 typedef struct {
-  char* key;
-  char* value;
+  const char* key;
+  const char* value;
 } test_entry;
 
 static void populate_entries(const test_entry* input, size_t num_entries,
@@ -44,7 +44,8 @@
                          grpc_slice_hash_table* table) {
   for (size_t i = 0; i < num_entries; ++i) {
     grpc_slice key = grpc_slice_from_static_string(input[i].key);
-    char* actual = grpc_slice_hash_table_get(table, key);
+    const char* actual =
+        static_cast<const char*>(grpc_slice_hash_table_get(table, key));
     GPR_ASSERT(actual != NULL);
     GPR_ASSERT(strcmp(actual, input[i].value) == 0);
     grpc_slice_unref(key);
@@ -67,7 +68,8 @@
     int (*value_cmp_fn)(void*, void*)) {
   // Construct table.
   grpc_slice_hash_table_entry* entries =
-      gpr_zalloc(sizeof(*entries) * num_test_entries);
+      static_cast<grpc_slice_hash_table_entry*>(
+          gpr_zalloc(sizeof(*entries) * num_test_entries));
   populate_entries(test_entries, num_test_entries, entries);
   grpc_slice_hash_table* table = grpc_slice_hash_table_create(
       num_test_entries, entries, destroy_string, value_cmp_fn);
@@ -125,8 +127,8 @@
 }
 
 static int value_cmp_fn(void* a, void* b) {
-  const char* a_str = a;
-  const char* b_str = b;
+  const char* a_str = static_cast<const char*>(a);
+  const char* b_str = static_cast<const char*>(b);
   return strcmp(a_str, b_str);
 }
 
diff --git a/test/core/slice/slice_string_helpers_test.c b/test/core/slice/slice_string_helpers_test.cc
similarity index 97%
rename from test/core/slice/slice_string_helpers_test.c
rename to test/core/slice/slice_string_helpers_test.cc
index 504acf8..8877da7 100644
--- a/test/core/slice/slice_string_helpers_test.c
+++ b/test/core/slice/slice_string_helpers_test.cc
@@ -67,7 +67,8 @@
 
   LOG_TEST_NAME("test_strsplit");
 
-  parts = gpr_malloc(sizeof(grpc_slice_buffer));
+  parts =
+      static_cast<grpc_slice_buffer *>(gpr_malloc(sizeof(grpc_slice_buffer)));
   grpc_slice_buffer_init(parts);
 
   str = grpc_slice_from_copied_string("one, two, three, four");
diff --git a/test/core/slice/slice_test.c b/test/core/slice/slice_test.cc
similarity index 100%
rename from test/core/slice/slice_test.c
rename to test/core/slice/slice_test.cc
diff --git a/test/core/statistics/census_log_tests.c b/test/core/statistics/census_log_tests.cc
similarity index 100%
rename from test/core/statistics/census_log_tests.c
rename to test/core/statistics/census_log_tests.cc
diff --git a/test/core/statistics/census_stub_test.c b/test/core/statistics/census_stub_test.cc
similarity index 100%
rename from test/core/statistics/census_stub_test.c
rename to test/core/statistics/census_stub_test.cc
diff --git a/test/core/statistics/hash_table_test.c b/test/core/statistics/hash_table_test.cc
similarity index 100%
rename from test/core/statistics/hash_table_test.c
rename to test/core/statistics/hash_table_test.cc
diff --git a/test/core/statistics/multiple_writers_circular_buffer_test.c b/test/core/statistics/multiple_writers_circular_buffer_test.cc
similarity index 100%
rename from test/core/statistics/multiple_writers_circular_buffer_test.c
rename to test/core/statistics/multiple_writers_circular_buffer_test.cc
diff --git a/test/core/statistics/multiple_writers_test.c b/test/core/statistics/multiple_writers_test.cc
similarity index 100%
rename from test/core/statistics/multiple_writers_test.c
rename to test/core/statistics/multiple_writers_test.cc
diff --git a/test/core/statistics/performance_test.c b/test/core/statistics/performance_test.cc
similarity index 100%
rename from test/core/statistics/performance_test.c
rename to test/core/statistics/performance_test.cc
diff --git a/test/core/statistics/quick_test.c b/test/core/statistics/quick_test.cc
similarity index 100%
rename from test/core/statistics/quick_test.c
rename to test/core/statistics/quick_test.cc
diff --git a/test/core/statistics/rpc_stats_test.c b/test/core/statistics/rpc_stats_test.cc
similarity index 100%
rename from test/core/statistics/rpc_stats_test.c
rename to test/core/statistics/rpc_stats_test.cc
diff --git a/test/core/statistics/small_log_test.c b/test/core/statistics/small_log_test.cc
similarity index 100%
rename from test/core/statistics/small_log_test.c
rename to test/core/statistics/small_log_test.cc
diff --git a/test/core/statistics/trace_test.c b/test/core/statistics/trace_test.cc
similarity index 100%
rename from test/core/statistics/trace_test.c
rename to test/core/statistics/trace_test.cc
diff --git a/test/core/statistics/window_stats_test.c b/test/core/statistics/window_stats_test.cc
similarity index 100%
rename from test/core/statistics/window_stats_test.c
rename to test/core/statistics/window_stats_test.cc
diff --git a/test/core/support/alloc_test.c b/test/core/support/alloc_test.cc
similarity index 90%
rename from test/core/support/alloc_test.c
rename to test/core/support/alloc_test.cc
index 088ae7d..ef9785a 100644
--- a/test/core/support/alloc_test.c
+++ b/test/core/support/alloc_test.cc
@@ -43,8 +43,9 @@
 
   /* Restore and check we don't get funky values and that we don't leak */
   gpr_set_allocation_functions(default_fns);
-  GPR_ASSERT((void *)sizeof(*i) != (i = gpr_malloc(sizeof(*i))));
-  GPR_ASSERT((void *)2 != (i = gpr_realloc(i, 2)));
+  GPR_ASSERT((void *)sizeof(*i) !=
+             (i = static_cast<char *>(gpr_malloc(sizeof(*i)))));
+  GPR_ASSERT((void *)2 != (i = static_cast<char *>(gpr_realloc(i, 2))));
   gpr_free(i);
 }
 
diff --git a/test/core/support/arena_test.c b/test/core/support/arena_test.cc
similarity index 95%
rename from test/core/support/arena_test.c
rename to test/core/support/arena_test.cc
index afb3092..021bd18 100644
--- a/test/core/support/arena_test.c
+++ b/test/core/support/arena_test.cc
@@ -50,7 +50,7 @@
   gpr_free(s);
 
   gpr_arena *a = gpr_arena_create(init_size);
-  void **ps = gpr_zalloc(sizeof(*ps) * nallocs);
+  void **ps = static_cast<void **>(gpr_zalloc(sizeof(*ps) * nallocs));
   for (size_t i = 0; i < nallocs; i++) {
     ps[i] = gpr_arena_alloc(a, allocs[i]);
     // ensure no duplicate results
@@ -81,7 +81,7 @@
 } concurrent_test_args;
 
 static void concurrent_test_body(void *arg) {
-  concurrent_test_args *a = arg;
+  concurrent_test_args *a = static_cast<concurrent_test_args *>(arg);
   gpr_event_wait(&a->ev_start, gpr_inf_future(GPR_CLOCK_REALTIME));
   for (size_t i = 0; i < concurrent_test_iterations(); i++) {
     *(char *)gpr_arena_alloc(a->arena, 1) = (char)i;
diff --git a/test/core/support/avl_test.c b/test/core/support/avl_test.cc
similarity index 99%
rename from test/core/support/avl_test.c
rename to test/core/support/avl_test.cc
index 37424d6..474e773 100644
--- a/test/core/support/avl_test.c
+++ b/test/core/support/avl_test.cc
@@ -28,7 +28,7 @@
 #include "test/core/util/test_config.h"
 
 static int *box(int x) {
-  int *b = gpr_malloc(sizeof(*b));
+  int *b = static_cast<int *>(gpr_malloc(sizeof(*b)));
   *b = x;
   return b;
 }
diff --git a/test/core/support/cmdline_test.c b/test/core/support/cmdline_test.cc
similarity index 81%
rename from test/core/support/cmdline_test.c
rename to test/core/support/cmdline_test.cc
index 72e7c7f..a3740d4 100644
--- a/test/core/support/cmdline_test.c
+++ b/test/core/support/cmdline_test.cc
@@ -30,7 +30,8 @@
 static void test_simple_int(void) {
   int x = 1;
   gpr_cmdline *cl;
-  char *args[] = {(char *)__FILE__, "-foo", "3"};
+  char *args[] = {(char *)__FILE__, const_cast<char *>("-foo"),
+                  const_cast<char *>("3")};
 
   LOG_TEST();
 
@@ -45,7 +46,7 @@
 static void test_eq_int(void) {
   int x = 1;
   gpr_cmdline *cl;
-  char *args[] = {(char *)__FILE__, "-foo=3"};
+  char *args[] = {(char *)__FILE__, const_cast<char *>("-foo=3")};
 
   LOG_TEST();
 
@@ -60,7 +61,8 @@
 static void test_2dash_int(void) {
   int x = 1;
   gpr_cmdline *cl;
-  char *args[] = {(char *)__FILE__, "--foo", "3"};
+  char *args[] = {(char *)__FILE__, const_cast<char *>("--foo"),
+                  const_cast<char *>("3")};
 
   LOG_TEST();
 
@@ -75,7 +77,7 @@
 static void test_2dash_eq_int(void) {
   int x = 1;
   gpr_cmdline *cl;
-  char *args[] = {(char *)__FILE__, "--foo=3"};
+  char *args[] = {(char *)__FILE__, const_cast<char *>("--foo=3")};
 
   LOG_TEST();
 
@@ -88,9 +90,10 @@
 }
 
 static void test_simple_string(void) {
-  char *x = NULL;
+  const char *x = NULL;
   gpr_cmdline *cl;
-  char *args[] = {(char *)__FILE__, "-foo", "3"};
+  char *args[] = {(char *)__FILE__, const_cast<char *>("-foo"),
+                  const_cast<char *>("3")};
 
   LOG_TEST();
 
@@ -103,9 +106,9 @@
 }
 
 static void test_eq_string(void) {
-  char *x = NULL;
+  const char *x = NULL;
   gpr_cmdline *cl;
-  char *args[] = {(char *)__FILE__, "-foo=3"};
+  char *args[] = {(char *)__FILE__, const_cast<char *>("-foo=3")};
 
   LOG_TEST();
 
@@ -118,9 +121,10 @@
 }
 
 static void test_2dash_string(void) {
-  char *x = NULL;
+  const char *x = NULL;
   gpr_cmdline *cl;
-  char *args[] = {(char *)__FILE__, "--foo", "3"};
+  char *args[] = {(char *)__FILE__, const_cast<char *>("--foo"),
+                  const_cast<char *>("3")};
 
   LOG_TEST();
 
@@ -133,9 +137,9 @@
 }
 
 static void test_2dash_eq_string(void) {
-  char *x = NULL;
+  const char *x = NULL;
   gpr_cmdline *cl;
-  char *args[] = {(char *)__FILE__, "--foo=3"};
+  char *args[] = {(char *)__FILE__, const_cast<char *>("--foo=3")};
 
   LOG_TEST();
 
@@ -150,7 +154,7 @@
 static void test_flag_on(void) {
   int x = 2;
   gpr_cmdline *cl;
-  char *args[] = {(char *)__FILE__, "--foo"};
+  char *args[] = {(char *)__FILE__, const_cast<char *>("--foo")};
 
   LOG_TEST();
 
@@ -165,7 +169,7 @@
 static void test_flag_no(void) {
   int x = 2;
   gpr_cmdline *cl;
-  char *args[] = {(char *)__FILE__, "--no-foo"};
+  char *args[] = {(char *)__FILE__, const_cast<char *>("--no-foo")};
 
   LOG_TEST();
 
@@ -180,7 +184,7 @@
 static void test_flag_val_1(void) {
   int x = 2;
   gpr_cmdline *cl;
-  char *args[] = {(char *)__FILE__, "--foo=1"};
+  char *args[] = {(char *)__FILE__, const_cast<char *>("--foo=1")};
 
   LOG_TEST();
 
@@ -195,7 +199,7 @@
 static void test_flag_val_0(void) {
   int x = 2;
   gpr_cmdline *cl;
-  char *args[] = {(char *)__FILE__, "--foo=0"};
+  char *args[] = {(char *)__FILE__, const_cast<char *>("--foo=0")};
 
   LOG_TEST();
 
@@ -210,7 +214,7 @@
 static void test_flag_val_true(void) {
   int x = 2;
   gpr_cmdline *cl;
-  char *args[] = {(char *)__FILE__, "--foo=true"};
+  char *args[] = {(char *)__FILE__, const_cast<char *>("--foo=true")};
 
   LOG_TEST();
 
@@ -225,7 +229,7 @@
 static void test_flag_val_false(void) {
   int x = 2;
   gpr_cmdline *cl;
-  char *args[] = {(char *)__FILE__, "--foo=false"};
+  char *args[] = {(char *)__FILE__, const_cast<char *>("--foo=false")};
 
   LOG_TEST();
 
@@ -238,12 +242,14 @@
 }
 
 static void test_many(void) {
-  char *str = NULL;
+  const char *str = NULL;
   int x = 0;
   int flag = 2;
   gpr_cmdline *cl;
 
-  char *args[] = {(char *)__FILE__, "--str", "hello", "-x=4", "-no-flag"};
+  char *args[] = {(char *)__FILE__, const_cast<char *>("--str"),
+                  const_cast<char *>("hello"), const_cast<char *>("-x=4"),
+                  const_cast<char *>("-no-flag")};
 
   LOG_TEST();
 
@@ -259,7 +265,7 @@
 }
 
 static void extra_arg_cb(void *user_data, const char *arg) {
-  int *count = user_data;
+  int *count = static_cast<int *>(user_data);
   GPR_ASSERT(arg != NULL);
   GPR_ASSERT(strlen(arg) == 1);
   GPR_ASSERT(arg[0] == 'a' + *count);
@@ -269,7 +275,8 @@
 static void test_extra(void) {
   gpr_cmdline *cl;
   int count = 0;
-  char *args[] = {(char *)__FILE__, "a", "b", "c"};
+  char *args[] = {(char *)__FILE__, const_cast<char *>("a"),
+                  const_cast<char *>("b"), const_cast<char *>("c")};
 
   LOG_TEST();
 
@@ -284,7 +291,9 @@
 static void test_extra_dashdash(void) {
   gpr_cmdline *cl;
   int count = 0;
-  char *args[] = {(char *)__FILE__, "--", "a", "b", "c"};
+  char *args[] = {(char *)__FILE__, const_cast<char *>("--"),
+                  const_cast<char *>("a"), const_cast<char *>("b"),
+                  const_cast<char *>("c")};
 
   LOG_TEST();
 
@@ -300,7 +309,7 @@
   gpr_cmdline *cl;
   char *usage;
 
-  char *str = NULL;
+  const char *str = NULL;
   int x = 0;
   int flag = 2;
 
@@ -331,11 +340,11 @@
 static void test_help(void) {
   gpr_cmdline *cl;
 
-  char *str = NULL;
+  const char *str = NULL;
   int x = 0;
   int flag = 2;
 
-  char *help[] = {(char *)__FILE__, "-h"};
+  char *help[] = {(char *)__FILE__, const_cast<char *>("-h")};
 
   LOG_TEST();
 
@@ -355,11 +364,11 @@
 static void test_badargs1(void) {
   gpr_cmdline *cl;
 
-  char *str = NULL;
+  const char *str = NULL;
   int x = 0;
   int flag = 2;
 
-  char *bad_arg_name[] = {(char *)__FILE__, "--y"};
+  char *bad_arg_name[] = {(char *)__FILE__, const_cast<char *>("--y")};
 
   LOG_TEST();
 
@@ -380,11 +389,12 @@
 static void test_badargs2(void) {
   gpr_cmdline *cl;
 
-  char *str = NULL;
+  const char *str = NULL;
   int x = 0;
   int flag = 2;
 
-  char *bad_int_value[] = {(char *)__FILE__, "--x", "henry"};
+  char *bad_int_value[] = {(char *)__FILE__, const_cast<char *>("--x"),
+                           const_cast<char *>("henry")};
 
   LOG_TEST();
 
@@ -405,11 +415,12 @@
 static void test_badargs3(void) {
   gpr_cmdline *cl;
 
-  char *str = NULL;
+  const char *str = NULL;
   int x = 0;
   int flag = 2;
 
-  char *bad_bool_value[] = {(char *)__FILE__, "--flag=henry"};
+  char *bad_bool_value[] = {(char *)__FILE__,
+                            const_cast<char *>("--flag=henry")};
 
   LOG_TEST();
 
@@ -430,11 +441,11 @@
 static void test_badargs4(void) {
   gpr_cmdline *cl;
 
-  char *str = NULL;
+  const char *str = NULL;
   int x = 0;
   int flag = 2;
 
-  char *bad_bool_value[] = {(char *)__FILE__, "--no-str"};
+  char *bad_bool_value[] = {(char *)__FILE__, const_cast<char *>("--no-str")};
 
   LOG_TEST();
 
diff --git a/test/core/support/cpu_test.c b/test/core/support/cpu_test.cc
similarity index 97%
rename from test/core/support/cpu_test.c
rename to test/core/support/cpu_test.cc
index 72db53f..7eaf65b 100644
--- a/test/core/support/cpu_test.c
+++ b/test/core/support/cpu_test.cc
@@ -104,7 +104,7 @@
   ct.ncores = gpr_cpu_num_cores();
   GPR_ASSERT(ct.ncores > 0);
   ct.nthreads = (int)ct.ncores * 3;
-  ct.used = gpr_malloc(ct.ncores * sizeof(int));
+  ct.used = static_cast<int *>(gpr_malloc(ct.ncores * sizeof(int)));
   memset(ct.used, 0, ct.ncores * sizeof(int));
   gpr_mu_init(&ct.mu);
   gpr_cv_init(&ct.done_cv);
diff --git a/test/core/support/env_test.c b/test/core/support/env_test.cc
similarity index 100%
rename from test/core/support/env_test.c
rename to test/core/support/env_test.cc
diff --git a/test/core/support/histogram_test.c b/test/core/support/histogram_test.cc
similarity index 100%
rename from test/core/support/histogram_test.c
rename to test/core/support/histogram_test.cc
diff --git a/test/core/support/host_port_test.c b/test/core/support/host_port_test.cc
similarity index 100%
rename from test/core/support/host_port_test.c
rename to test/core/support/host_port_test.cc
diff --git a/test/core/support/log_test.c b/test/core/support/log_test.cc
similarity index 100%
rename from test/core/support/log_test.c
rename to test/core/support/log_test.cc
diff --git a/test/core/support/mpscq_test.c b/test/core/support/mpscq_test.cc
similarity index 96%
rename from test/core/support/mpscq_test.c
rename to test/core/support/mpscq_test.cc
index 5e7dc9f..a4fa6a3 100644
--- a/test/core/support/mpscq_test.c
+++ b/test/core/support/mpscq_test.cc
@@ -34,7 +34,7 @@
 } test_node;
 
 static test_node *new_node(size_t i, size_t *ctr) {
-  test_node *n = gpr_malloc(sizeof(test_node));
+  test_node *n = static_cast<test_node *>(gpr_malloc(sizeof(test_node)));
   n->i = i;
   n->ctr = ctr;
   return n;
@@ -64,7 +64,7 @@
 #define THREAD_ITERATIONS 10000
 
 static void test_thread(void *args) {
-  thd_args *a = args;
+  thd_args *a = static_cast<thd_args *>(args);
   gpr_event_wait(a->start, gpr_inf_future(GPR_CLOCK_REALTIME));
   for (size_t i = 1; i <= THREAD_ITERATIONS; i++) {
     gpr_mpscq_push(a->q, &new_node(i, &a->ctr)->node);
@@ -119,7 +119,7 @@
 } pull_args;
 
 static void pull_thread(void *arg) {
-  pull_args *pa = arg;
+  pull_args *pa = static_cast<pull_args *>(arg);
   gpr_event_wait(pa->start, gpr_inf_future(GPR_CLOCK_REALTIME));
 
   for (;;) {
diff --git a/test/core/support/murmur_hash_test.c b/test/core/support/murmur_hash_test.cc
similarity index 100%
rename from test/core/support/murmur_hash_test.c
rename to test/core/support/murmur_hash_test.cc
diff --git a/test/core/support/spinlock_test.c b/test/core/support/spinlock_test.cc
similarity index 93%
rename from test/core/support/spinlock_test.c
rename to test/core/support/spinlock_test.cc
index b236a88..8c8c8ce 100644
--- a/test/core/support/spinlock_test.c
+++ b/test/core/support/spinlock_test.cc
@@ -43,9 +43,10 @@
 
 /* Return pointer to a new struct test. */
 static struct test *test_new(int threads, int64_t iterations, int incr_step) {
-  struct test *m = gpr_malloc(sizeof(*m));
+  struct test *m = static_cast<struct test *>(gpr_malloc(sizeof(*m)));
   m->thread_count = threads;
-  m->threads = gpr_malloc(sizeof(*m->threads) * (size_t)threads);
+  m->threads = static_cast<gpr_thd_id *>(
+      gpr_malloc(sizeof(*m->threads) * (size_t)threads));
   m->iterations = iterations;
   m->counter = 0;
   m->thread_count = 0;
@@ -113,7 +114,7 @@
 
 /* Increment m->counter on each iteration; then mark thread as done.  */
 static void inc(void *v /*=m*/) {
-  struct test *m = v;
+  struct test *m = static_cast<struct test *>(v);
   int64_t i;
   for (i = 0; i != m->iterations; i++) {
     gpr_spinlock_lock(&m->mu);
@@ -125,7 +126,7 @@
 /* Increment m->counter under lock acquired with trylock, m->iterations times;
    then mark thread as done.  */
 static void inctry(void *v /*=m*/) {
-  struct test *m = v;
+  struct test *m = static_cast<struct test *>(v);
   int64_t i;
   for (i = 0; i != m->iterations;) {
     if (gpr_spinlock_trylock(&m->mu)) {
diff --git a/test/core/support/stack_lockfree_test.c b/test/core/support/stack_lockfree_test.cc
similarity index 100%
rename from test/core/support/stack_lockfree_test.c
rename to test/core/support/stack_lockfree_test.cc
diff --git a/test/core/support/string_test.c b/test/core/support/string_test.cc
similarity index 100%
rename from test/core/support/string_test.c
rename to test/core/support/string_test.cc
diff --git a/test/core/support/sync_test.c b/test/core/support/sync_test.cc
similarity index 95%
rename from test/core/support/sync_test.c
rename to test/core/support/sync_test.cc
index 178d77e..c005a2b 100644
--- a/test/core/support/sync_test.c
+++ b/test/core/support/sync_test.cc
@@ -157,7 +157,7 @@
 
 /* Return pointer to a new struct test. */
 static struct test *test_new(int threads, int64_t iterations, int incr_step) {
-  struct test *m = gpr_malloc(sizeof(*m));
+  struct test *m = static_cast<struct test *>(gpr_malloc(sizeof(*m)));
   m->threads = threads;
   m->iterations = iterations;
   m->counter = 0;
@@ -263,7 +263,7 @@
 
 /* Increment m->counter on each iteration; then mark thread as done.  */
 static void inc(void *v /*=m*/) {
-  struct test *m = v;
+  struct test *m = static_cast<struct test *>(v);
   int64_t i;
   for (i = 0; i != m->iterations; i++) {
     gpr_mu_lock(&m->mu);
@@ -276,7 +276,7 @@
 /* Increment m->counter under lock acquired with trylock, m->iterations times;
    then mark thread as done.  */
 static void inctry(void *v /*=m*/) {
-  struct test *m = v;
+  struct test *m = static_cast<struct test *>(v);
   int64_t i;
   for (i = 0; i != m->iterations;) {
     if (gpr_mu_trylock(&m->mu)) {
@@ -291,7 +291,7 @@
 /* Increment counter only when (m->counter%m->threads)==m->thread_id; then mark
    thread as done.  */
 static void inc_by_turns(void *v /*=m*/) {
-  struct test *m = v;
+  struct test *m = static_cast<struct test *>(v);
   int64_t i;
   int id = thread_id(m);
   for (i = 0; i != m->iterations; i++) {
@@ -309,7 +309,7 @@
 /* Wait a millisecond and increment counter on each iteration;
    then mark thread as done. */
 static void inc_with_1ms_delay(void *v /*=m*/) {
-  struct test *m = v;
+  struct test *m = static_cast<struct test *>(v);
   int64_t i;
   for (i = 0; i != m->iterations; i++) {
     gpr_timespec deadline;
@@ -327,7 +327,7 @@
 /* Wait a millisecond and increment counter on each iteration, using an event
    for timing; then mark thread as done. */
 static void inc_with_1ms_delay_event(void *v /*=m*/) {
-  struct test *m = v;
+  struct test *m = static_cast<struct test *>(v);
   int64_t i;
   for (i = 0; i != m->iterations; i++) {
     gpr_timespec deadline;
@@ -345,7 +345,7 @@
    Even threads use queue_append(), and odd threads use queue_try_append()
    until it succeeds. */
 static void many_producers(void *v /*=m*/) {
-  struct test *m = v;
+  struct test *m = static_cast<struct test *>(v);
   int64_t i;
   int x = thread_id(m);
   if ((x & 1) == 0) {
@@ -365,7 +365,7 @@
    wait an extra second to confirm that no more elements are arriving,
    then mark thread as done. */
 static void consumer(void *v /*=m*/) {
-  struct test *m = v;
+  struct test *m = static_cast<struct test *>(v);
   int64_t n = m->iterations * m->threads;
   int64_t i;
   int value;
@@ -385,7 +385,7 @@
 /* Increment m->stats_counter m->iterations times, transfer counter value to
    m->counter, then mark thread as done.  */
 static void statsinc(void *v /*=m*/) {
-  struct test *m = v;
+  struct test *m = static_cast<struct test *>(v);
   int64_t i;
   for (i = 0; i != m->iterations; i++) {
     gpr_stats_inc(&m->stats_counter, 1);
@@ -400,7 +400,7 @@
    m->thread_refcount once, and if it reaches zero, set m->event to (void*)1;
    then mark thread as done.  */
 static void refinc(void *v /*=m*/) {
-  struct test *m = v;
+  struct test *m = static_cast<struct test *>(v);
   int64_t i;
   for (i = 0; i != m->iterations; i++) {
     if (m->incr_step == 1) {
@@ -419,7 +419,7 @@
    (m->threads * m->iterations * m->incr_step) times, and ensure that the last
    decrement caused the counter to reach zero, then mark thread as done.  */
 static void refcheck(void *v /*=m*/) {
-  struct test *m = v;
+  struct test *m = static_cast<struct test *>(v);
   int64_t n = m->iterations * m->threads * m->incr_step;
   int64_t i;
   GPR_ASSERT(gpr_event_wait(&m->event, gpr_inf_future(GPR_CLOCK_REALTIME)) ==
diff --git a/test/core/support/thd_test.c b/test/core/support/thd_test.cc
similarity index 97%
rename from test/core/support/thd_test.c
rename to test/core/support/thd_test.cc
index 2c578a2..e6b4ea4 100644
--- a/test/core/support/thd_test.c
+++ b/test/core/support/thd_test.cc
@@ -37,7 +37,7 @@
 
 /* A Thread body.   Decrement t->n, and if is becomes zero, set t->done. */
 static void thd_body(void *v) {
-  struct test *t = v;
+  struct test *t = static_cast<struct test *>(v);
   gpr_mu_lock(&t->mu);
   t->n--;
   if (t->n == 0) {
diff --git a/test/core/support/time_test.c b/test/core/support/time_test.cc
similarity index 100%
rename from test/core/support/time_test.c
rename to test/core/support/time_test.cc
diff --git a/test/core/support/tls_test.c b/test/core/support/tls_test.cc
similarity index 100%
rename from test/core/support/tls_test.c
rename to test/core/support/tls_test.cc
diff --git a/test/core/support/useful_test.c b/test/core/support/useful_test.cc
similarity index 100%
rename from test/core/support/useful_test.c
rename to test/core/support/useful_test.cc
diff --git a/test/core/surface/alarm_test.c b/test/core/surface/alarm_test.cc
similarity index 100%
rename from test/core/surface/alarm_test.c
rename to test/core/surface/alarm_test.cc
diff --git a/test/core/surface/byte_buffer_reader_test.c b/test/core/surface/byte_buffer_reader_test.cc
similarity index 100%
rename from test/core/surface/byte_buffer_reader_test.c
rename to test/core/surface/byte_buffer_reader_test.cc
diff --git a/test/core/surface/channel_create_test.c b/test/core/surface/channel_create_test.cc
similarity index 100%
rename from test/core/surface/channel_create_test.c
rename to test/core/surface/channel_create_test.cc
diff --git a/test/core/surface/completion_queue_test.c b/test/core/surface/completion_queue_test.cc
similarity index 100%
rename from test/core/surface/completion_queue_test.c
rename to test/core/surface/completion_queue_test.cc
diff --git a/test/core/surface/completion_queue_threading_test.c b/test/core/surface/completion_queue_threading_test.cc
similarity index 95%
rename from test/core/surface/completion_queue_threading_test.c
rename to test/core/surface/completion_queue_threading_test.cc
index 9996b6b..abe1197 100644
--- a/test/core/surface/completion_queue_threading_test.c
+++ b/test/core/surface/completion_queue_threading_test.cc
@@ -68,7 +68,7 @@
 };
 
 static void pluck_one(void *arg) {
-  struct thread_state *state = arg;
+  struct thread_state *state = static_cast<struct thread_state *>(arg);
   grpc_completion_queue_pluck(state->cc, state->tag,
                               gpr_inf_future(GPR_CLOCK_REALTIME), NULL);
 }
@@ -143,7 +143,7 @@
 }
 
 static void producer_thread(void *arg) {
-  test_thread_options *opt = arg;
+  test_thread_options *opt = static_cast<test_thread_options *>(arg);
   int i;
   grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT;
 
@@ -164,7 +164,8 @@
   for (i = 0; i < TEST_THREAD_EVENTS; i++) {
     grpc_cq_end_op(&exec_ctx, opt->cc, (void *)(intptr_t)1, GRPC_ERROR_NONE,
                    free_completion, NULL,
-                   gpr_malloc(sizeof(grpc_cq_completion)));
+                   static_cast<grpc_cq_completion *>(
+                       gpr_malloc(sizeof(grpc_cq_completion))));
     opt->events_triggered++;
     grpc_exec_ctx_finish(&exec_ctx);
   }
@@ -175,7 +176,7 @@
 }
 
 static void consumer_thread(void *arg) {
-  test_thread_options *opt = arg;
+  test_thread_options *opt = static_cast<test_thread_options *>(arg);
   grpc_event ev;
 
   gpr_log(GPR_INFO, "consumer %d started", opt->id);
@@ -209,8 +210,8 @@
 }
 
 static void test_threading(size_t producers, size_t consumers) {
-  test_thread_options *options =
-      gpr_malloc((producers + consumers) * sizeof(test_thread_options));
+  test_thread_options *options = static_cast<test_thread_options *>(
+      gpr_malloc((producers + consumers) * sizeof(test_thread_options)));
   gpr_event phase1 = GPR_EVENT_INIT;
   gpr_event phase2 = GPR_EVENT_INIT;
   grpc_completion_queue *cc = grpc_completion_queue_create_for_next(NULL);
diff --git a/test/core/surface/concurrent_connectivity_test.c b/test/core/surface/concurrent_connectivity_test.cc
similarity index 98%
rename from test/core/surface/concurrent_connectivity_test.c
rename to test/core/surface/concurrent_connectivity_test.cc
index 3595885..303180c 100644
--- a/test/core/surface/concurrent_connectivity_test.c
+++ b/test/core/surface/concurrent_connectivity_test.cc
@@ -158,7 +158,7 @@
 
 static void done_pollset_shutdown(grpc_exec_ctx *exec_ctx, void *pollset,
                                   grpc_error *error) {
-  grpc_pollset_destroy(exec_ctx, pollset);
+  grpc_pollset_destroy(exec_ctx, static_cast<grpc_pollset *>(pollset));
   gpr_free(pollset);
 }
 
@@ -211,7 +211,7 @@
 
   /* Third round, bogus tcp server */
   gpr_log(GPR_DEBUG, "Wave 3");
-  args.pollset = gpr_zalloc(grpc_pollset_size());
+  args.pollset = static_cast<grpc_pollset *>(gpr_zalloc(grpc_pollset_size()));
   grpc_pollset_init(args.pollset, &args.mu);
   gpr_event_init(&args.ready);
   gpr_thd_new(&server, bad_server_thread, &args, &options);
diff --git a/test/core/surface/init_test.c b/test/core/surface/init_test.cc
similarity index 100%
rename from test/core/surface/init_test.c
rename to test/core/surface/init_test.cc
diff --git a/test/core/surface/invalid_channel_args_test.c b/test/core/surface/invalid_channel_args_test.cc
similarity index 89%
rename from test/core/surface/invalid_channel_args_test.c
rename to test/core/surface/invalid_channel_args_test.cc
index 9c84c30..e6099d4 100644
--- a/test/core/surface/invalid_channel_args_test.c
+++ b/test/core/surface/invalid_channel_args_test.cc
@@ -75,7 +75,7 @@
   char *expected_error_message;
 
   client_arg.type = GRPC_ARG_INTEGER;
-  client_arg.key = GRPC_ARG_DEFAULT_AUTHORITY;
+  client_arg.key = const_cast<char *>(GRPC_ARG_DEFAULT_AUTHORITY);
   client_arg.value.integer = 0;
 
   client_args.num_args = 1;
@@ -91,7 +91,7 @@
   char *expected_error_message;
 
   client_arg.type = GRPC_ARG_INTEGER;
-  client_arg.key = GRPC_SSL_TARGET_NAME_OVERRIDE_ARG;
+  client_arg.key = const_cast<char *>(GRPC_SSL_TARGET_NAME_OVERRIDE_ARG);
   client_arg.value.integer = 0;
 
   client_args.num_args = 1;
@@ -107,11 +107,11 @@
   char *expected_error_message;
 
   client_arg[0].type = GRPC_ARG_STRING;
-  client_arg[0].key = GRPC_ARG_DEFAULT_AUTHORITY;
-  client_arg[0].value.string = "default";
+  client_arg[0].key = const_cast<char *>(GRPC_ARG_DEFAULT_AUTHORITY);
+  client_arg[0].value.string = const_cast<char *>("default");
   client_arg[1].type = GRPC_ARG_STRING;
-  client_arg[1].key = GRPC_SSL_TARGET_NAME_OVERRIDE_ARG;
-  client_arg[1].value.string = "ssl";
+  client_arg[1].key = const_cast<char *>(GRPC_SSL_TARGET_NAME_OVERRIDE_ARG);
+  client_arg[1].value.string = const_cast<char *>("ssl");
 
   client_args.num_args = 2;
   client_args.args = client_arg;
diff --git a/test/core/surface/lame_client_test.c b/test/core/surface/lame_client_test.cc
similarity index 97%
rename from test/core/surface/lame_client_test.c
rename to test/core/surface/lame_client_test.cc
index f623e1a..6d563d2 100644
--- a/test/core/surface/lame_client_test.c
+++ b/test/core/surface/lame_client_test.cc
@@ -34,7 +34,7 @@
 
 void verify_connectivity(grpc_exec_ctx *exec_ctx, void *arg,
                          grpc_error *error) {
-  grpc_connectivity_state *state = arg;
+  grpc_connectivity_state *state = static_cast<grpc_connectivity_state *>(arg);
   GPR_ASSERT(GRPC_CHANNEL_SHUTDOWN == *state);
   GPR_ASSERT(error == GRPC_ERROR_NONE);
 }
diff --git a/test/core/surface/num_external_connectivity_watchers_test.c b/test/core/surface/num_external_connectivity_watchers_test.cc
similarity index 97%
rename from test/core/surface/num_external_connectivity_watchers_test.c
rename to test/core/surface/num_external_connectivity_watchers_test.cc
index 16401bb..f5f09b3 100644
--- a/test/core/surface/num_external_connectivity_watchers_test.c
+++ b/test/core/surface/num_external_connectivity_watchers_test.cc
@@ -168,9 +168,10 @@
 static grpc_channel *secure_test_create_channel(const char *addr) {
   grpc_channel_credentials *ssl_creds =
       grpc_ssl_credentials_create(test_root_cert, NULL, NULL);
-  grpc_arg ssl_name_override = {GRPC_ARG_STRING,
-                                GRPC_SSL_TARGET_NAME_OVERRIDE_ARG,
-                                {"foo.test.google.fr"}};
+  grpc_arg ssl_name_override = {
+      GRPC_ARG_STRING,
+      const_cast<char *>(GRPC_SSL_TARGET_NAME_OVERRIDE_ARG),
+      {const_cast<char *>("foo.test.google.fr")}};
   grpc_channel_args *new_client_args =
       grpc_channel_args_copy_and_add(NULL, &ssl_name_override, 1);
   grpc_channel *channel =
diff --git a/test/core/surface/secure_channel_create_test.c b/test/core/surface/secure_channel_create_test.cc
similarity index 97%
rename from test/core/surface/secure_channel_create_test.c
rename to test/core/surface/secure_channel_create_test.cc
index 0c45135..ccb58ee 100644
--- a/test/core/surface/secure_channel_create_test.c
+++ b/test/core/surface/secure_channel_create_test.cc
@@ -47,7 +47,7 @@
   grpc_arg arg;
   arg.type = GRPC_ARG_POINTER;
   arg.value.pointer.p = NULL;
-  arg.key = GRPC_ARG_SECURITY_CONNECTOR;
+  arg.key = const_cast<char *>(GRPC_ARG_SECURITY_CONNECTOR);
   grpc_channel_args args;
   args.num_args = 1;
   args.args = &arg;
diff --git a/test/core/surface/sequential_connectivity_test.c b/test/core/surface/sequential_connectivity_test.cc
similarity index 95%
rename from test/core/surface/sequential_connectivity_test.c
rename to test/core/surface/sequential_connectivity_test.cc
index d5fd2db..6596a3a 100644
--- a/test/core/surface/sequential_connectivity_test.c
+++ b/test/core/surface/sequential_connectivity_test.cc
@@ -43,7 +43,7 @@
 } server_thread_args;
 
 static void server_thread_func(void *args) {
-  server_thread_args *a = args;
+  server_thread_args *a = static_cast<server_thread_args *>(args);
   grpc_event ev = grpc_completion_queue_next(
       a->cq, gpr_inf_future(GPR_CLOCK_REALTIME), NULL);
   GPR_ASSERT(ev.type == GRPC_OP_COMPLETE);
@@ -145,9 +145,10 @@
 static grpc_channel *secure_test_create_channel(const char *addr) {
   grpc_channel_credentials *ssl_creds =
       grpc_ssl_credentials_create(test_root_cert, NULL, NULL);
-  grpc_arg ssl_name_override = {GRPC_ARG_STRING,
-                                GRPC_SSL_TARGET_NAME_OVERRIDE_ARG,
-                                {"foo.test.google.fr"}};
+  grpc_arg ssl_name_override = {
+      GRPC_ARG_STRING,
+      const_cast<char *>(GRPC_SSL_TARGET_NAME_OVERRIDE_ARG),
+      {const_cast<char *>("foo.test.google.fr")}};
   grpc_channel_args *new_client_args =
       grpc_channel_args_copy_and_add(NULL, &ssl_name_override, 1);
   grpc_channel *channel =
diff --git a/test/core/surface/server_chttp2_test.c b/test/core/surface/server_chttp2_test.cc
similarity index 97%
rename from test/core/surface/server_chttp2_test.c
rename to test/core/surface/server_chttp2_test.cc
index cd8931e..ecd5314 100644
--- a/test/core/surface/server_chttp2_test.c
+++ b/test/core/surface/server_chttp2_test.cc
@@ -39,7 +39,7 @@
 void test_add_same_port_twice() {
   grpc_arg a;
   a.type = GRPC_ARG_INTEGER;
-  a.key = GRPC_ARG_ALLOW_REUSEPORT;
+  a.key = const_cast<char *>(GRPC_ARG_ALLOW_REUSEPORT);
   a.value.integer = 0;
   grpc_channel_args args = {1, &a};
 
diff --git a/test/core/surface/server_test.c b/test/core/surface/server_test.cc
similarity index 98%
rename from test/core/surface/server_test.c
rename to test/core/surface/server_test.cc
index 4c185cd..08b8dca 100644
--- a/test/core/surface/server_test.c
+++ b/test/core/surface/server_test.cc
@@ -69,7 +69,7 @@
 void test_bind_server_twice(void) {
   grpc_arg a;
   a.type = GRPC_ARG_INTEGER;
-  a.key = GRPC_ARG_ALLOW_REUSEPORT;
+  a.key = const_cast<char *>(GRPC_ARG_ALLOW_REUSEPORT);
   a.value.integer = 0;
   grpc_channel_args args = {1, &a};
 
diff --git a/test/core/transport/byte_stream_test.c b/test/core/transport/byte_stream_test.cc
similarity index 100%
rename from test/core/transport/byte_stream_test.c
rename to test/core/transport/byte_stream_test.cc
diff --git a/test/core/transport/chttp2/alpn_test.c b/test/core/transport/chttp2/alpn_test.cc
similarity index 100%
rename from test/core/transport/chttp2/alpn_test.c
rename to test/core/transport/chttp2/alpn_test.cc
diff --git a/test/core/transport/chttp2/bin_decoder_test.c b/test/core/transport/chttp2/bin_decoder_test.cc
similarity index 98%
rename from test/core/transport/chttp2/bin_decoder_test.c
rename to test/core/transport/chttp2/bin_decoder_test.cc
index 775161e..a09aadb 100644
--- a/test/core/transport/chttp2/bin_decoder_test.c
+++ b/test/core/transport/chttp2/bin_decoder_test.cc
@@ -30,7 +30,7 @@
 static int all_ok = 1;
 
 static void expect_slice_eq(grpc_exec_ctx *exec_ctx, grpc_slice expected,
-                            grpc_slice slice, char *debug, int line) {
+                            grpc_slice slice, const char *debug, int line) {
   if (!grpc_slice_eq(slice, expected)) {
     char *hs = grpc_dump_slice(slice, GPR_DUMP_HEX | GPR_DUMP_ASCII);
     char *he = grpc_dump_slice(expected, GPR_DUMP_HEX | GPR_DUMP_ASCII);
diff --git a/test/core/transport/chttp2/bin_encoder_test.c b/test/core/transport/chttp2/bin_encoder_test.cc
similarity index 98%
rename from test/core/transport/chttp2/bin_encoder_test.c
rename to test/core/transport/chttp2/bin_encoder_test.cc
index acadcf6..d073f74 100644
--- a/test/core/transport/chttp2/bin_encoder_test.c
+++ b/test/core/transport/chttp2/bin_encoder_test.cc
@@ -31,8 +31,8 @@
 
 static int all_ok = 1;
 
-static void expect_slice_eq(grpc_slice expected, grpc_slice slice, char *debug,
-                            int line) {
+static void expect_slice_eq(grpc_slice expected, grpc_slice slice,
+                            const char *debug, int line) {
   if (!grpc_slice_eq(slice, expected)) {
     char *hs = grpc_dump_slice(slice, GPR_DUMP_HEX | GPR_DUMP_ASCII);
     char *he = grpc_dump_slice(expected, GPR_DUMP_HEX | GPR_DUMP_ASCII);
diff --git a/test/core/transport/chttp2/hpack_encoder_test.c b/test/core/transport/chttp2/hpack_encoder_test.cc
similarity index 96%
rename from test/core/transport/chttp2/hpack_encoder_test.c
rename to test/core/transport/chttp2/hpack_encoder_test.cc
index a2af83b..b203df1 100644
--- a/test/core/transport/chttp2/hpack_encoder_test.c
+++ b/test/core/transport/chttp2/hpack_encoder_test.cc
@@ -58,7 +58,8 @@
   grpc_slice expect = parse_hexstring(expected);
   size_t i;
   va_list l;
-  grpc_linked_mdelem *e = gpr_malloc(sizeof(*e) * nheaders);
+  grpc_linked_mdelem *e =
+      static_cast<grpc_linked_mdelem *>(gpr_malloc(sizeof(*e) * nheaders));
   grpc_metadata_batch b;
 
   grpc_metadata_batch_init(&b);
@@ -89,7 +90,8 @@
 
   if (cap_to_delete == num_to_delete) {
     cap_to_delete = GPR_MAX(2 * cap_to_delete, 1000);
-    to_delete = gpr_realloc(to_delete, sizeof(*to_delete) * cap_to_delete);
+    to_delete = static_cast<void **>(
+        gpr_realloc(to_delete, sizeof(*to_delete) * cap_to_delete));
   }
   to_delete[num_to_delete++] = e;
 
@@ -209,7 +211,8 @@
       grpc_slice_intern(grpc_slice_from_static_string(value)));
   size_t elem_size = grpc_mdelem_get_size_in_hpack_table(elem, use_true_binary);
   size_t initial_table_size = g_compressor.table_size;
-  grpc_linked_mdelem *e = gpr_malloc(sizeof(*e));
+  grpc_linked_mdelem *e =
+      static_cast<grpc_linked_mdelem *>(gpr_malloc(sizeof(*e)));
   grpc_metadata_batch b;
   grpc_metadata_batch_init(&b);
   e[0].md = elem;
diff --git a/test/core/transport/chttp2/hpack_parser_fuzzer_test.c b/test/core/transport/chttp2/hpack_parser_fuzzer_test.cc
similarity index 100%
rename from test/core/transport/chttp2/hpack_parser_fuzzer_test.c
rename to test/core/transport/chttp2/hpack_parser_fuzzer_test.cc
diff --git a/test/core/transport/chttp2/hpack_parser_test.c b/test/core/transport/chttp2/hpack_parser_test.cc
similarity index 98%
rename from test/core/transport/chttp2/hpack_parser_test.c
rename to test/core/transport/chttp2/hpack_parser_test.cc
index 0946c05..27b4a1c 100644
--- a/test/core/transport/chttp2/hpack_parser_test.c
+++ b/test/core/transport/chttp2/hpack_parser_test.cc
@@ -32,7 +32,7 @@
 
 static void onhdr(grpc_exec_ctx *exec_ctx, void *ud, grpc_mdelem md) {
   const char *ekey, *evalue;
-  test_checker *chk = ud;
+  test_checker *chk = static_cast<test_checker *>(ud);
   ekey = va_arg(chk->args, char *);
   GPR_ASSERT(ekey);
   evalue = va_arg(chk->args, char *);
diff --git a/test/core/transport/chttp2/hpack_table_test.c b/test/core/transport/chttp2/hpack_table_test.cc
similarity index 100%
rename from test/core/transport/chttp2/hpack_table_test.c
rename to test/core/transport/chttp2/hpack_table_test.cc
diff --git a/test/core/transport/chttp2/stream_map_test.c b/test/core/transport/chttp2/stream_map_test.cc
similarity index 98%
rename from test/core/transport/chttp2/stream_map_test.c
rename to test/core/transport/chttp2/stream_map_test.cc
index ae2583a..7df7b1b 100644
--- a/test/core/transport/chttp2/stream_map_test.c
+++ b/test/core/transport/chttp2/stream_map_test.cc
@@ -92,7 +92,7 @@
 
 /* verify that for_each gets the right values during test_delete_evens_XXX */
 static void verify_for_each(void *user_data, uint32_t stream_id, void *ptr) {
-  uint32_t *for_each_check = user_data;
+  uint32_t *for_each_check = static_cast<uint32_t *>(user_data);
   GPR_ASSERT(ptr);
   GPR_ASSERT(*for_each_check == stream_id);
   *for_each_check += 2;
diff --git a/test/core/transport/chttp2/varint_test.c b/test/core/transport/chttp2/varint_test.cc
similarity index 100%
rename from test/core/transport/chttp2/varint_test.c
rename to test/core/transport/chttp2/varint_test.cc
diff --git a/test/core/transport/connectivity_state_test.c b/test/core/transport/connectivity_state_test.cc
similarity index 100%
rename from test/core/transport/connectivity_state_test.c
rename to test/core/transport/connectivity_state_test.cc
diff --git a/test/core/transport/metadata_test.c b/test/core/transport/metadata_test.cc
similarity index 96%
rename from test/core/transport/metadata_test.c
rename to test/core/transport/metadata_test.cc
index f7124d2..e043078 100644
--- a/test/core/transport/metadata_test.c
+++ b/test/core/transport/metadata_test.cc
@@ -114,7 +114,8 @@
 static void test_create_many_persistant_metadata(void) {
   char buffer[GPR_LTOA_MIN_BUFSIZE];
   long i;
-  grpc_mdelem *created = gpr_malloc(sizeof(grpc_mdelem) * MANY);
+  grpc_mdelem *created =
+      static_cast<grpc_mdelem *>(gpr_malloc(sizeof(grpc_mdelem) * MANY));
   grpc_mdelem md;
 
   gpr_log(GPR_INFO, "test_create_many_persistant_metadata");
@@ -226,8 +227,9 @@
   size_t i, j;
   char *buffer;
   size_t nstrs = 1000;
-  grpc_slice *strs = gpr_malloc(sizeof(grpc_slice) * nstrs);
-  size_t *shuf = gpr_malloc(sizeof(size_t) * nstrs);
+  grpc_slice *strs =
+      static_cast<grpc_slice *>(gpr_malloc(sizeof(grpc_slice) * nstrs));
+  size_t *shuf = static_cast<size_t *>(gpr_malloc(sizeof(size_t) * nstrs));
   grpc_slice test;
 
   gpr_log(GPR_INFO, "test_things_stick_around");
@@ -281,9 +283,9 @@
 
   grpc_init();
   grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT;
-  ud1 = gpr_malloc(sizeof(int));
+  ud1 = static_cast<int *>(gpr_malloc(sizeof(int)));
   *ud1 = 1;
-  ud2 = gpr_malloc(sizeof(int));
+  ud2 = static_cast<int *>(gpr_malloc(sizeof(int)));
   *ud2 = 2;
   md = grpc_mdelem_from_slices(
       &exec_ctx, grpc_slice_intern(grpc_slice_from_static_string("abc")),
diff --git a/test/core/transport/status_conversion_test.c b/test/core/transport/status_conversion_test.cc
similarity index 100%
rename from test/core/transport/status_conversion_test.c
rename to test/core/transport/status_conversion_test.cc
diff --git a/test/core/transport/stream_owned_slice_test.c b/test/core/transport/stream_owned_slice_test.cc
similarity index 100%
rename from test/core/transport/stream_owned_slice_test.c
rename to test/core/transport/stream_owned_slice_test.cc
diff --git a/test/core/transport/timeout_encoding_test.c b/test/core/transport/timeout_encoding_test.cc
similarity index 100%
rename from test/core/transport/timeout_encoding_test.c
rename to test/core/transport/timeout_encoding_test.cc
diff --git a/test/core/tsi/fake_transport_security_test.c b/test/core/tsi/fake_transport_security_test.cc
similarity index 96%
rename from test/core/tsi/fake_transport_security_test.c
rename to test/core/tsi/fake_transport_security_test.cc
index 11be880..6561028 100644
--- a/test/core/tsi/fake_transport_security_test.c
+++ b/test/core/tsi/fake_transport_security_test.cc
@@ -64,7 +64,8 @@
     fake_test_destruct};
 
 static tsi_test_fixture *fake_tsi_test_fixture_create() {
-  fake_tsi_test_fixture *fake_fixture = gpr_zalloc(sizeof(*fake_fixture));
+  fake_tsi_test_fixture *fake_fixture =
+      static_cast<fake_tsi_test_fixture *>(gpr_zalloc(sizeof(*fake_fixture)));
   tsi_test_fixture_init(&fake_fixture->base);
   fake_fixture->base.vtable = &vtable;
   return &fake_fixture->base;
@@ -91,8 +92,8 @@
 }
 
 void fake_tsi_test_do_round_trip_for_all_configs() {
-  unsigned int *bit_array =
-      gpr_zalloc(sizeof(unsigned int) * TSI_TEST_NUM_OF_ARGUMENTS);
+  unsigned int *bit_array = static_cast<unsigned int *>(
+      gpr_zalloc(sizeof(unsigned int) * TSI_TEST_NUM_OF_ARGUMENTS));
   const unsigned int mask = 1U << (TSI_TEST_NUM_OF_ARGUMENTS - 1);
   for (unsigned int val = 0; val < TSI_TEST_NUM_OF_COMBINATIONS; val++) {
     unsigned int v = val;
diff --git a/test/core/tsi/ssl_transport_security_test.c b/test/core/tsi/ssl_transport_security_test.cc
similarity index 95%
rename from test/core/tsi/ssl_transport_security_test.c
rename to test/core/tsi/ssl_transport_security_test.cc
index 2399b05..27b2049 100644
--- a/test/core/tsi/ssl_transport_security_test.c
+++ b/test/core/tsi/ssl_transport_security_test.cc
@@ -326,8 +326,8 @@
     ssl_test_destruct};
 
 static char *load_file(const char *dir_path, const char *file_name) {
-  char *file_path =
-      gpr_zalloc(sizeof(char) * (strlen(dir_path) + strlen(file_name) + 1));
+  char *file_path = static_cast<char *>(
+      gpr_zalloc(sizeof(char) * (strlen(dir_path) + strlen(file_name) + 1)));
   memcpy(file_path, dir_path, strlen(dir_path));
   memcpy(file_path + strlen(dir_path), file_name, strlen(file_name));
   grpc_slice slice;
@@ -339,12 +339,14 @@
 }
 
 static tsi_test_fixture *ssl_tsi_test_fixture_create() {
-  ssl_tsi_test_fixture *ssl_fixture = gpr_zalloc(sizeof(*ssl_fixture));
+  ssl_tsi_test_fixture *ssl_fixture =
+      static_cast<ssl_tsi_test_fixture *>(gpr_zalloc(sizeof(*ssl_fixture)));
   tsi_test_fixture_init(&ssl_fixture->base);
   ssl_fixture->base.test_unused_bytes = false;
   ssl_fixture->base.vtable = &vtable;
   /* Create ssl_key_cert_lib. */
-  ssl_key_cert_lib *key_cert_lib = gpr_zalloc(sizeof(*key_cert_lib));
+  ssl_key_cert_lib *key_cert_lib =
+      static_cast<ssl_key_cert_lib *>(gpr_zalloc(sizeof(*key_cert_lib)));
   key_cert_lib->use_bad_server_cert = false;
   key_cert_lib->use_bad_client_cert = false;
   key_cert_lib->server_num_key_cert_pairs =
@@ -352,11 +354,13 @@
   key_cert_lib->bad_server_num_key_cert_pairs =
       SSL_TSI_TEST_BAD_SERVER_KEY_CERT_PAIRS_NUM;
   key_cert_lib->server_pem_key_cert_pairs =
-      gpr_malloc(sizeof(tsi_ssl_pem_key_cert_pair) *
-                 key_cert_lib->server_num_key_cert_pairs);
+      static_cast<tsi_ssl_pem_key_cert_pair *>(
+          gpr_malloc(sizeof(tsi_ssl_pem_key_cert_pair) *
+                     key_cert_lib->server_num_key_cert_pairs));
   key_cert_lib->bad_server_pem_key_cert_pairs =
-      gpr_malloc(sizeof(tsi_ssl_pem_key_cert_pair) *
-                 key_cert_lib->bad_server_num_key_cert_pairs);
+      static_cast<tsi_ssl_pem_key_cert_pair *>(
+          gpr_malloc(sizeof(tsi_ssl_pem_key_cert_pair) *
+                     key_cert_lib->bad_server_num_key_cert_pairs));
   key_cert_lib->server_pem_key_cert_pairs[0].private_key =
       load_file(SSL_TSI_TEST_CREDENTIALS_DIR, "server0.key");
   key_cert_lib->server_pem_key_cert_pairs[0].cert_chain =
@@ -380,11 +384,12 @@
   key_cert_lib->root_cert = load_file(SSL_TSI_TEST_CREDENTIALS_DIR, "ca.pem");
   ssl_fixture->key_cert_lib = key_cert_lib;
   /* Create ssl_alpn_lib. */
-  ssl_alpn_lib *alpn_lib = gpr_zalloc(sizeof(*alpn_lib));
+  ssl_alpn_lib *alpn_lib =
+      static_cast<ssl_alpn_lib *>(gpr_zalloc(sizeof(*alpn_lib)));
   alpn_lib->server_alpn_protocols =
-      gpr_zalloc(sizeof(char *) * SSL_TSI_TEST_ALPN_NUM);
+      static_cast<char **>(gpr_zalloc(sizeof(char *) * SSL_TSI_TEST_ALPN_NUM));
   alpn_lib->client_alpn_protocols =
-      gpr_zalloc(sizeof(char *) * SSL_TSI_TEST_ALPN_NUM);
+      static_cast<char **>(gpr_zalloc(sizeof(char *) * SSL_TSI_TEST_ALPN_NUM));
   alpn_lib->server_alpn_protocols[0] = gpr_strdup(SSL_TSI_TEST_ALPN1);
   alpn_lib->server_alpn_protocols[1] = gpr_strdup(SSL_TSI_TEST_ALPN3);
   alpn_lib->client_alpn_protocols[0] = gpr_strdup(SSL_TSI_TEST_ALPN2);
@@ -431,7 +436,8 @@
   /* server1 cert contains "waterzooi.test.google.be" in SAN. */
   tsi_test_fixture *fixture = ssl_tsi_test_fixture_create();
   ssl_tsi_test_fixture *ssl_fixture = (ssl_tsi_test_fixture *)fixture;
-  ssl_fixture->server_name_indication = "waterzooi.test.google.be";
+  ssl_fixture->server_name_indication =
+      const_cast<char *>("waterzooi.test.google.be");
   tsi_test_do_handshake(fixture);
   tsi_test_fixture_destroy(fixture);
 }
@@ -440,7 +446,8 @@
   /* server1 cert contains "*.test.google.fr" in SAN. */
   tsi_test_fixture *fixture = ssl_tsi_test_fixture_create();
   ssl_tsi_test_fixture *ssl_fixture = (ssl_tsi_test_fixture *)fixture;
-  ssl_fixture->server_name_indication = "juju.test.google.fr";
+  ssl_fixture->server_name_indication =
+      const_cast<char *>("juju.test.google.fr");
   tsi_test_do_handshake(fixture);
   tsi_test_fixture_destroy(fixture);
 }
@@ -495,8 +502,8 @@
 }
 
 void ssl_tsi_test_do_round_trip_for_all_configs() {
-  unsigned int *bit_array =
-      gpr_zalloc(sizeof(unsigned int) * TSI_TEST_NUM_OF_ARGUMENTS);
+  unsigned int *bit_array = static_cast<unsigned int *>(
+      gpr_zalloc(sizeof(unsigned int) * TSI_TEST_NUM_OF_ARGUMENTS));
   const unsigned int mask = 1U << (TSI_TEST_NUM_OF_ARGUMENTS - 1);
   for (unsigned int val = 0; val < TSI_TEST_NUM_OF_COMBINATIONS; val++) {
     unsigned int v = val;
diff --git a/test/core/tsi/transport_security_test.c b/test/core/tsi/transport_security_test.cc
similarity index 98%
rename from test/core/tsi/transport_security_test.c
rename to test/core/tsi/transport_security_test.cc
index 27932a8..c1be1e9 100644
--- a/test/core/tsi/transport_security_test.c
+++ b/test/core/tsi/transport_security_test.cc
@@ -200,7 +200,7 @@
 } parsed_names;
 
 name_list *name_list_add(const char *n) {
-  name_list *result = gpr_malloc(sizeof(name_list));
+  name_list *result = static_cast<name_list *>(gpr_malloc(sizeof(name_list)));
   result->name = n;
   result->next = NULL;
   return result;
diff --git a/test/core/tsi/transport_security_test_lib.c b/test/core/tsi/transport_security_test_lib.cc
similarity index 94%
rename from test/core/tsi/transport_security_test_lib.c
rename to test/core/tsi/transport_security_test_lib.cc
index 329b237..454b79c 100644
--- a/test/core/tsi/transport_security_test_lib.c
+++ b/test/core/tsi/transport_security_test_lib.cc
@@ -57,10 +57,12 @@
                                                bool is_client) {
   GPR_ASSERT(fixture != NULL);
   GPR_ASSERT(fixture->config != NULL);
-  handshaker_args *args = gpr_zalloc(sizeof(*args));
+  handshaker_args *args =
+      static_cast<handshaker_args *>(gpr_zalloc(sizeof(*args)));
   args->fixture = fixture;
   args->handshake_buffer_size = fixture->handshake_buffer_size;
-  args->handshake_buffer = gpr_zalloc(args->handshake_buffer_size);
+  args->handshake_buffer =
+      static_cast<unsigned char *>(gpr_zalloc(args->handshake_buffer_size));
   args->is_client = is_client;
   args->error = GRPC_ERROR_NONE;
   return args;
@@ -181,7 +183,8 @@
   GPR_ASSERT(fixture->config != NULL);
   GPR_ASSERT(protector != NULL);
   tsi_test_frame_protector_config *config = fixture->config;
-  unsigned char *protected_buffer = gpr_zalloc(config->protected_buffer_size);
+  unsigned char *protected_buffer =
+      static_cast<unsigned char *>(gpr_zalloc(config->protected_buffer_size));
   size_t message_size =
       is_client ? config->client_message_size : config->server_message_size;
   uint8_t *message =
@@ -238,9 +241,10 @@
   size_t read_from_peer_size = 0;
   tsi_result result = TSI_OK;
   bool done = false;
-  unsigned char *read_buffer = gpr_zalloc(config->read_buffer_allocated_size);
-  unsigned char *message_buffer =
-      gpr_zalloc(config->message_buffer_allocated_size);
+  unsigned char *read_buffer = static_cast<unsigned char *>(
+      gpr_zalloc(config->read_buffer_allocated_size));
+  unsigned char *message_buffer = static_cast<unsigned char *>(
+      gpr_zalloc(config->message_buffer_allocated_size));
   /* Do unprotect on data received from peer. */
   while (!done && result == TSI_OK) {
     /* Receive data from peer. */
@@ -429,7 +433,7 @@
   /* Client sends a message to server. */
   send_message_to_peer(fixture, client_frame_protector, true /* is_client */);
   unsigned char *server_received_message =
-      gpr_zalloc(TSI_TEST_DEFAULT_CHANNEL_SIZE);
+      static_cast<unsigned char *>(gpr_zalloc(TSI_TEST_DEFAULT_CHANNEL_SIZE));
   size_t server_received_message_size = 0;
   receive_message_from_peer(
       fixture, server_frame_protector, server_received_message,
@@ -440,7 +444,7 @@
   /* Server sends a message to client. */
   send_message_to_peer(fixture, server_frame_protector, false /* is_client */);
   unsigned char *client_received_message =
-      gpr_zalloc(TSI_TEST_DEFAULT_CHANNEL_SIZE);
+      static_cast<unsigned char *>(gpr_zalloc(TSI_TEST_DEFAULT_CHANNEL_SIZE));
   size_t client_received_message_size = 0;
   receive_message_from_peer(
       fixture, client_frame_protector, client_received_message,
@@ -458,7 +462,8 @@
 static unsigned char *generate_random_message(size_t size) {
   size_t i;
   unsigned char chars[] = "abcdefghijklmnopqrstuvwxyz1234567890";
-  unsigned char *output = gpr_zalloc(sizeof(unsigned char) * size);
+  unsigned char *output =
+      static_cast<unsigned char *>(gpr_zalloc(sizeof(unsigned char) * size));
   for (i = 0; i < size - 1; ++i) {
     output[i] = chars[rand() % (int)(sizeof(chars) - 1)];
   }
@@ -473,7 +478,9 @@
     bool use_default_client_max_output_protected_frame_size,
     bool use_default_server_max_output_protected_frame_size,
     bool use_default_handshake_buffer_size) {
-  tsi_test_frame_protector_config *config = gpr_zalloc(sizeof(*config));
+  tsi_test_frame_protector_config *config =
+      static_cast<tsi_test_frame_protector_config *>(
+          gpr_zalloc(sizeof(*config)));
   /* Set the value for read_buffer_allocated_size. */
   config->read_buffer_allocated_size =
       use_default_read_buffer_allocated_size
@@ -548,8 +555,10 @@
   fixture->config = tsi_test_frame_protector_config_create(
       true, true, true, true, true, true, true, true);
   fixture->handshake_buffer_size = TSI_TEST_DEFAULT_BUFFER_SIZE;
-  fixture->client_channel = gpr_zalloc(TSI_TEST_DEFAULT_CHANNEL_SIZE);
-  fixture->server_channel = gpr_zalloc(TSI_TEST_DEFAULT_CHANNEL_SIZE);
+  fixture->client_channel =
+      static_cast<uint8_t *>(gpr_zalloc(TSI_TEST_DEFAULT_CHANNEL_SIZE));
+  fixture->server_channel =
+      static_cast<uint8_t *>(gpr_zalloc(TSI_TEST_DEFAULT_CHANNEL_SIZE));
   fixture->bytes_written_to_client_channel = 0;
   fixture->bytes_written_to_server_channel = 0;
   fixture->bytes_read_from_client_channel = 0;
diff --git a/test/core/util/grpc_profiler.c b/test/core/util/grpc_profiler.cc
similarity index 100%
rename from test/core/util/grpc_profiler.c
rename to test/core/util/grpc_profiler.cc
diff --git a/test/core/util/memory_counters.c b/test/core/util/memory_counters.cc
similarity index 100%
rename from test/core/util/memory_counters.c
rename to test/core/util/memory_counters.cc
diff --git a/test/core/util/mock_endpoint.c b/test/core/util/mock_endpoint.cc
similarity index 100%
rename from test/core/util/mock_endpoint.c
rename to test/core/util/mock_endpoint.cc
diff --git a/test/core/util/one_corpus_entry_fuzzer.c b/test/core/util/one_corpus_entry_fuzzer.cc
similarity index 100%
rename from test/core/util/one_corpus_entry_fuzzer.c
rename to test/core/util/one_corpus_entry_fuzzer.cc
diff --git a/test/core/util/parse_hexstring.c b/test/core/util/parse_hexstring.cc
similarity index 100%
rename from test/core/util/parse_hexstring.c
rename to test/core/util/parse_hexstring.cc
diff --git a/test/core/util/passthru_endpoint.c b/test/core/util/passthru_endpoint.cc
similarity index 100%
rename from test/core/util/passthru_endpoint.c
rename to test/core/util/passthru_endpoint.cc
diff --git a/test/core/util/port.c b/test/core/util/port.cc
similarity index 100%
rename from test/core/util/port.c
rename to test/core/util/port.cc
diff --git a/test/core/util/port_server_client.c b/test/core/util/port_server_client.cc
similarity index 96%
rename from test/core/util/port_server_client.c
rename to test/core/util/port_server_client.cc
index 7b94ac4..2c7301d 100644
--- a/test/core/util/port_server_client.c
+++ b/test/core/util/port_server_client.cc
@@ -80,7 +80,7 @@
   shutdown_closure = GRPC_CLOSURE_CREATE(destroy_pops_and_shutdown, &pr.pops,
                                          grpc_schedule_on_exec_ctx);
 
-  req.host = GRPC_PORT_SERVER_ADDRESS;
+  req.host = const_cast<char *>(GRPC_PORT_SERVER_ADDRESS);
   gpr_asprintf(&path, "/drop/%d", port);
   req.http.path = path;
 
@@ -167,7 +167,7 @@
             GPR_TIMESPAN)));
     pr->retries++;
     req.host = pr->server;
-    req.http.path = "/get";
+    req.http.path = const_cast<char *>("/get");
     grpc_http_response_destroy(&pr->response);
     memset(&pr->response, 0, sizeof(pr->response));
     grpc_resource_quota *resource_quota =
@@ -213,11 +213,11 @@
   shutdown_closure = GRPC_CLOSURE_CREATE(destroy_pops_and_shutdown, &pr.pops,
                                          grpc_schedule_on_exec_ctx);
   pr.port = -1;
-  pr.server = GRPC_PORT_SERVER_ADDRESS;
+  pr.server = const_cast<char *>(GRPC_PORT_SERVER_ADDRESS);
   pr.ctx = &context;
 
-  req.host = GRPC_PORT_SERVER_ADDRESS;
-  req.http.path = "/get";
+  req.host = const_cast<char *>(GRPC_PORT_SERVER_ADDRESS);
+  req.http.path = const_cast<char *>("/get");
 
   grpc_httpcli_context_init(&context);
   grpc_resource_quota *resource_quota =
diff --git a/test/core/util/reconnect_server.c b/test/core/util/reconnect_server.cc
similarity index 97%
rename from test/core/util/reconnect_server.c
rename to test/core/util/reconnect_server.cc
index 9c56e02..883c02e 100644
--- a/test/core/util/reconnect_server.c
+++ b/test/core/util/reconnect_server.cc
@@ -82,7 +82,7 @@
       gpr_free(peer);
     }
   }
-  new_tail = gpr_malloc(sizeof(timestamp_list));
+  new_tail = static_cast<timestamp_list *>(gpr_malloc(sizeof(timestamp_list)));
   new_tail->timestamp = now;
   new_tail->next = NULL;
   if (server->tail == NULL) {
diff --git a/test/core/util/slice_splitter.c b/test/core/util/slice_splitter.cc
similarity index 100%
rename from test/core/util/slice_splitter.c
rename to test/core/util/slice_splitter.cc
diff --git a/test/core/util/test_config.c b/test/core/util/test_config.cc
similarity index 100%
rename from test/core/util/test_config.c
rename to test/core/util/test_config.cc
diff --git a/test/core/util/test_tcp_server.c b/test/core/util/test_tcp_server.cc
similarity index 94%
rename from test/core/util/test_tcp_server.c
rename to test/core/util/test_tcp_server.cc
index 611ecb3..e2d1562 100644
--- a/test/core/util/test_tcp_server.c
+++ b/test/core/util/test_tcp_server.cc
@@ -35,7 +35,7 @@
 
 static void on_server_destroyed(grpc_exec_ctx *exec_ctx, void *data,
                                 grpc_error *error) {
-  test_tcp_server *server = data;
+  test_tcp_server *server = static_cast<test_tcp_server *>(data);
   server->shutdown = 1;
 }
 
@@ -46,7 +46,8 @@
   GRPC_CLOSURE_INIT(&server->shutdown_complete, on_server_destroyed, server,
                     grpc_schedule_on_exec_ctx);
   server->shutdown = 0;
-  server->pollset = gpr_zalloc(grpc_pollset_size());
+  server->pollset =
+      static_cast<grpc_pollset *>(gpr_zalloc(grpc_pollset_size()));
   grpc_pollset_init(server->pollset, &server->mu);
   server->on_connect = on_connect;
   server->cb_data = user_data;
@@ -93,7 +94,7 @@
 static void do_nothing(grpc_exec_ctx *exec_ctx, void *arg, grpc_error *error) {}
 static void finish_pollset(grpc_exec_ctx *exec_ctx, void *arg,
                            grpc_error *error) {
-  grpc_pollset_destroy(exec_ctx, arg);
+  grpc_pollset_destroy(exec_ctx, static_cast<grpc_pollset *>(arg));
 }
 
 void test_tcp_server_destroy(test_tcp_server *server) {
diff --git a/test/core/util/trickle_endpoint.c b/test/core/util/trickle_endpoint.cc
similarity index 100%
rename from test/core/util/trickle_endpoint.c
rename to test/core/util/trickle_endpoint.cc
diff --git a/tools/dockerfile/grpc_clang_format/clang_format_all_the_things.sh b/tools/dockerfile/grpc_clang_format/clang_format_all_the_things.sh
index c471344..5e26dd8 100755
--- a/tools/dockerfile/grpc_clang_format/clang_format_all_the_things.sh
+++ b/tools/dockerfile/grpc_clang_format/clang_format_all_the_things.sh
@@ -29,7 +29,7 @@
 do
   for glob in $GLOB
   do
-    files="$files `find ${CLANG_FORMAT_ROOT}/$dir -name $glob -and -not -name *.generated.* -and -not -name *.pb.h -and -not -name *.pb.c -and -not -name *.pb.cc -and -not -name end2end_tests.c -and -not -name end2end_nosec_tests.c`"
+    files="$files `find ${CLANG_FORMAT_ROOT}/$dir -name $glob -and -not -name *.generated.* -and -not -name *.pb.h -and -not -name *.pb.c -and -not -name *.pb.cc -and -not -name end2end_tests.cc -and -not -name end2end_nosec_tests.cc`"
   done
 done
 
diff --git a/tools/run_tests/generated/sources_and_headers.json b/tools/run_tests/generated/sources_and_headers.json
index 7fa3d28..31908d2 100644
--- a/tools/run_tests/generated/sources_and_headers.json
+++ b/tools/run_tests/generated/sources_and_headers.json
@@ -13,7 +13,7 @@
     "language": "c", 
     "name": "alarm_test", 
     "src": [
-      "test/core/surface/alarm_test.c"
+      "test/core/surface/alarm_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -30,7 +30,7 @@
     "language": "c", 
     "name": "algorithm_test", 
     "src": [
-      "test/core/compression/algorithm_test.c"
+      "test/core/compression/algorithm_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -45,7 +45,7 @@
     "language": "c", 
     "name": "alloc_test", 
     "src": [
-      "test/core/support/alloc_test.c"
+      "test/core/support/alloc_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -62,7 +62,7 @@
     "language": "c", 
     "name": "alpn_test", 
     "src": [
-      "test/core/transport/chttp2/alpn_test.c"
+      "test/core/transport/chttp2/alpn_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -79,7 +79,7 @@
     "language": "c", 
     "name": "api_fuzzer", 
     "src": [
-      "test/core/end2end/fuzzers/api_fuzzer.c"
+      "test/core/end2end/fuzzers/api_fuzzer.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -94,7 +94,7 @@
     "language": "c", 
     "name": "arena_test", 
     "src": [
-      "test/core/support/arena_test.c"
+      "test/core/support/arena_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -111,7 +111,7 @@
     "language": "c", 
     "name": "backoff_test", 
     "src": [
-      "test/core/backoff/backoff_test.c"
+      "test/core/backoff/backoff_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -129,7 +129,7 @@
     "language": "c", 
     "name": "bad_server_response_test", 
     "src": [
-      "test/core/end2end/bad_server_response_test.c"
+      "test/core/end2end/bad_server_response_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -144,7 +144,7 @@
     "language": "c", 
     "name": "bin_decoder_test", 
     "src": [
-      "test/core/transport/chttp2/bin_decoder_test.c"
+      "test/core/transport/chttp2/bin_decoder_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -159,7 +159,7 @@
     "language": "c", 
     "name": "bin_encoder_test", 
     "src": [
-      "test/core/transport/chttp2/bin_encoder_test.c"
+      "test/core/transport/chttp2/bin_encoder_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -176,7 +176,7 @@
     "language": "c", 
     "name": "byte_stream_test", 
     "src": [
-      "test/core/transport/byte_stream_test.c"
+      "test/core/transport/byte_stream_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -193,7 +193,7 @@
     "language": "c", 
     "name": "census_context_test", 
     "src": [
-      "test/core/census/context_test.c"
+      "test/core/census/context_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -210,7 +210,7 @@
     "language": "c", 
     "name": "census_intrusive_hash_map_test", 
     "src": [
-      "test/core/census/intrusive_hash_map_test.c"
+      "test/core/census/intrusive_hash_map_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -227,7 +227,7 @@
     "language": "c", 
     "name": "census_resource_test", 
     "src": [
-      "test/core/census/resource_test.c"
+      "test/core/census/resource_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -244,7 +244,7 @@
     "language": "c", 
     "name": "census_trace_context_test", 
     "src": [
-      "test/core/census/trace_context_test.c"
+      "test/core/census/trace_context_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -261,7 +261,7 @@
     "language": "c", 
     "name": "channel_create_test", 
     "src": [
-      "test/core/surface/channel_create_test.c"
+      "test/core/surface/channel_create_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -276,7 +276,7 @@
     "language": "c", 
     "name": "check_epollexclusive", 
     "src": [
-      "test/build/check_epollexclusive.c"
+      "test/build/check_epollexclusive.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -293,7 +293,7 @@
     "language": "c", 
     "name": "chttp2_hpack_encoder_test", 
     "src": [
-      "test/core/transport/chttp2/hpack_encoder_test.c"
+      "test/core/transport/chttp2/hpack_encoder_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -310,7 +310,7 @@
     "language": "c", 
     "name": "chttp2_stream_map_test", 
     "src": [
-      "test/core/transport/chttp2/stream_map_test.c"
+      "test/core/transport/chttp2/stream_map_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -327,7 +327,7 @@
     "language": "c", 
     "name": "chttp2_varint_test", 
     "src": [
-      "test/core/transport/chttp2/varint_test.c"
+      "test/core/transport/chttp2/varint_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -344,7 +344,7 @@
     "language": "c", 
     "name": "client_fuzzer", 
     "src": [
-      "test/core/end2end/fuzzers/client_fuzzer.c"
+      "test/core/end2end/fuzzers/client_fuzzer.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -361,7 +361,7 @@
     "language": "c", 
     "name": "combiner_test", 
     "src": [
-      "test/core/iomgr/combiner_test.c"
+      "test/core/iomgr/combiner_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -378,7 +378,7 @@
     "language": "c", 
     "name": "compression_test", 
     "src": [
-      "test/core/compression/compression_test.c"
+      "test/core/compression/compression_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -395,7 +395,7 @@
     "language": "c", 
     "name": "concurrent_connectivity_test", 
     "src": [
-      "test/core/surface/concurrent_connectivity_test.c"
+      "test/core/surface/concurrent_connectivity_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -412,7 +412,7 @@
     "language": "c", 
     "name": "connection_refused_test", 
     "src": [
-      "test/core/end2end/connection_refused_test.c"
+      "test/core/end2end/connection_refused_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -429,7 +429,7 @@
     "language": "c", 
     "name": "dns_resolver_connectivity_test", 
     "src": [
-      "test/core/client_channel/resolvers/dns_resolver_connectivity_test.c"
+      "test/core/client_channel/resolvers/dns_resolver_connectivity_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -446,7 +446,7 @@
     "language": "c", 
     "name": "dns_resolver_test", 
     "src": [
-      "test/core/client_channel/resolvers/dns_resolver_test.c"
+      "test/core/client_channel/resolvers/dns_resolver_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -463,7 +463,7 @@
     "language": "c", 
     "name": "dualstack_socket_test", 
     "src": [
-      "test/core/end2end/dualstack_socket_test.c"
+      "test/core/end2end/dualstack_socket_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -480,7 +480,7 @@
     "language": "c", 
     "name": "endpoint_pair_test", 
     "src": [
-      "test/core/iomgr/endpoint_pair_test.c"
+      "test/core/iomgr/endpoint_pair_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -497,7 +497,7 @@
     "language": "c", 
     "name": "error_test", 
     "src": [
-      "test/core/iomgr/error_test.c"
+      "test/core/iomgr/error_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -514,7 +514,7 @@
     "language": "c", 
     "name": "ev_epollsig_linux_test", 
     "src": [
-      "test/core/iomgr/ev_epollsig_linux_test.c"
+      "test/core/iomgr/ev_epollsig_linux_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -531,7 +531,7 @@
     "language": "c", 
     "name": "fake_resolver_test", 
     "src": [
-      "test/core/client_channel/resolvers/fake_resolver_test.c"
+      "test/core/client_channel/resolvers/fake_resolver_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -548,7 +548,7 @@
     "language": "c", 
     "name": "fake_transport_security_test", 
     "src": [
-      "test/core/tsi/fake_transport_security_test.c"
+      "test/core/tsi/fake_transport_security_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -565,7 +565,7 @@
     "language": "c", 
     "name": "fd_conservation_posix_test", 
     "src": [
-      "test/core/iomgr/fd_conservation_posix_test.c"
+      "test/core/iomgr/fd_conservation_posix_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -582,7 +582,7 @@
     "language": "c", 
     "name": "fd_posix_test", 
     "src": [
-      "test/core/iomgr/fd_posix_test.c"
+      "test/core/iomgr/fd_posix_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -599,7 +599,7 @@
     "language": "c", 
     "name": "fling_client", 
     "src": [
-      "test/core/fling/client.c"
+      "test/core/fling/client.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -616,7 +616,7 @@
     "language": "c", 
     "name": "fling_server", 
     "src": [
-      "test/core/fling/server.c"
+      "test/core/fling/server.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -633,7 +633,7 @@
     "language": "c", 
     "name": "fling_stream_test", 
     "src": [
-      "test/core/fling/fling_stream_test.c"
+      "test/core/fling/fling_stream_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -650,7 +650,7 @@
     "language": "c", 
     "name": "fling_test", 
     "src": [
-      "test/core/fling/fling_test.c"
+      "test/core/fling/fling_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -706,7 +706,7 @@
     "language": "c", 
     "name": "goaway_server_test", 
     "src": [
-      "test/core/end2end/goaway_server_test.c"
+      "test/core/end2end/goaway_server_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -721,7 +721,7 @@
     "language": "c", 
     "name": "gpr_avl_test", 
     "src": [
-      "test/core/support/avl_test.c"
+      "test/core/support/avl_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -736,7 +736,7 @@
     "language": "c", 
     "name": "gpr_cmdline_test", 
     "src": [
-      "test/core/support/cmdline_test.c"
+      "test/core/support/cmdline_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -751,7 +751,7 @@
     "language": "c", 
     "name": "gpr_cpu_test", 
     "src": [
-      "test/core/support/cpu_test.c"
+      "test/core/support/cpu_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -766,7 +766,7 @@
     "language": "c", 
     "name": "gpr_env_test", 
     "src": [
-      "test/core/support/env_test.c"
+      "test/core/support/env_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -781,7 +781,7 @@
     "language": "c", 
     "name": "gpr_histogram_test", 
     "src": [
-      "test/core/support/histogram_test.c"
+      "test/core/support/histogram_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -796,7 +796,7 @@
     "language": "c", 
     "name": "gpr_host_port_test", 
     "src": [
-      "test/core/support/host_port_test.c"
+      "test/core/support/host_port_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -811,7 +811,7 @@
     "language": "c", 
     "name": "gpr_log_test", 
     "src": [
-      "test/core/support/log_test.c"
+      "test/core/support/log_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -826,7 +826,7 @@
     "language": "c", 
     "name": "gpr_mpscq_test", 
     "src": [
-      "test/core/support/mpscq_test.c"
+      "test/core/support/mpscq_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -841,7 +841,7 @@
     "language": "c", 
     "name": "gpr_spinlock_test", 
     "src": [
-      "test/core/support/spinlock_test.c"
+      "test/core/support/spinlock_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -856,7 +856,7 @@
     "language": "c", 
     "name": "gpr_stack_lockfree_test", 
     "src": [
-      "test/core/support/stack_lockfree_test.c"
+      "test/core/support/stack_lockfree_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -871,7 +871,7 @@
     "language": "c", 
     "name": "gpr_string_test", 
     "src": [
-      "test/core/support/string_test.c"
+      "test/core/support/string_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -886,7 +886,7 @@
     "language": "c", 
     "name": "gpr_sync_test", 
     "src": [
-      "test/core/support/sync_test.c"
+      "test/core/support/sync_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -901,7 +901,7 @@
     "language": "c", 
     "name": "gpr_thd_test", 
     "src": [
-      "test/core/support/thd_test.c"
+      "test/core/support/thd_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -916,7 +916,7 @@
     "language": "c", 
     "name": "gpr_time_test", 
     "src": [
-      "test/core/support/time_test.c"
+      "test/core/support/time_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -931,7 +931,7 @@
     "language": "c", 
     "name": "gpr_tls_test", 
     "src": [
-      "test/core/support/tls_test.c"
+      "test/core/support/tls_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -946,7 +946,7 @@
     "language": "c", 
     "name": "gpr_useful_test", 
     "src": [
-      "test/core/support/useful_test.c"
+      "test/core/support/useful_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -963,7 +963,7 @@
     "language": "c", 
     "name": "grpc_auth_context_test", 
     "src": [
-      "test/core/security/auth_context_test.c"
+      "test/core/security/auth_context_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -980,7 +980,7 @@
     "language": "c", 
     "name": "grpc_b64_test", 
     "src": [
-      "test/core/slice/b64_test.c"
+      "test/core/slice/b64_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -997,7 +997,7 @@
     "language": "c", 
     "name": "grpc_byte_buffer_reader_test", 
     "src": [
-      "test/core/surface/byte_buffer_reader_test.c"
+      "test/core/surface/byte_buffer_reader_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -1014,7 +1014,7 @@
     "language": "c", 
     "name": "grpc_channel_args_test", 
     "src": [
-      "test/core/channel/channel_args_test.c"
+      "test/core/channel/channel_args_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -1031,7 +1031,7 @@
     "language": "c", 
     "name": "grpc_channel_stack_builder_test", 
     "src": [
-      "test/core/channel/channel_stack_builder_test.c"
+      "test/core/channel/channel_stack_builder_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -1048,7 +1048,7 @@
     "language": "c", 
     "name": "grpc_channel_stack_test", 
     "src": [
-      "test/core/channel/channel_stack_test.c"
+      "test/core/channel/channel_stack_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -1065,7 +1065,7 @@
     "language": "c", 
     "name": "grpc_completion_queue_test", 
     "src": [
-      "test/core/surface/completion_queue_test.c"
+      "test/core/surface/completion_queue_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -1082,7 +1082,7 @@
     "language": "c", 
     "name": "grpc_completion_queue_threading_test", 
     "src": [
-      "test/core/surface/completion_queue_threading_test.c"
+      "test/core/surface/completion_queue_threading_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -1097,7 +1097,7 @@
     "language": "c", 
     "name": "grpc_create_jwt", 
     "src": [
-      "test/core/security/create_jwt.c"
+      "test/core/security/create_jwt.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -1114,7 +1114,7 @@
     "language": "c", 
     "name": "grpc_credentials_test", 
     "src": [
-      "test/core/security/credentials_test.c"
+      "test/core/security/credentials_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -1131,7 +1131,7 @@
     "language": "c", 
     "name": "grpc_fetch_oauth2", 
     "src": [
-      "test/core/security/fetch_oauth2.c"
+      "test/core/security/fetch_oauth2.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -1148,7 +1148,7 @@
     "language": "c", 
     "name": "grpc_invalid_channel_args_test", 
     "src": [
-      "test/core/surface/invalid_channel_args_test.c"
+      "test/core/surface/invalid_channel_args_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -1165,7 +1165,7 @@
     "language": "c", 
     "name": "grpc_json_token_test", 
     "src": [
-      "test/core/security/json_token_test.c"
+      "test/core/security/json_token_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -1182,7 +1182,7 @@
     "language": "c", 
     "name": "grpc_jwt_verifier_test", 
     "src": [
-      "test/core/security/jwt_verifier_test.c"
+      "test/core/security/jwt_verifier_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -1197,7 +1197,7 @@
     "language": "c", 
     "name": "grpc_print_google_default_creds_token", 
     "src": [
-      "test/core/security/print_google_default_creds_token.c"
+      "test/core/security/print_google_default_creds_token.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -1214,7 +1214,7 @@
     "language": "c", 
     "name": "grpc_security_connector_test", 
     "src": [
-      "test/core/security/security_connector_test.c"
+      "test/core/security/security_connector_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -1229,7 +1229,7 @@
     "language": "c", 
     "name": "grpc_verify_jwt", 
     "src": [
-      "test/core/security/verify_jwt.c"
+      "test/core/security/verify_jwt.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -1246,7 +1246,7 @@
     "language": "c", 
     "name": "handshake_client", 
     "src": [
-      "test/core/handshake/client_ssl.c"
+      "test/core/handshake/client_ssl.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -1263,7 +1263,7 @@
     "language": "c", 
     "name": "handshake_server", 
     "src": [
-      "test/core/handshake/server_ssl.c"
+      "test/core/handshake/server_ssl.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -1280,7 +1280,7 @@
     "language": "c", 
     "name": "hpack_parser_fuzzer_test", 
     "src": [
-      "test/core/transport/chttp2/hpack_parser_fuzzer_test.c"
+      "test/core/transport/chttp2/hpack_parser_fuzzer_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -1297,7 +1297,7 @@
     "language": "c", 
     "name": "hpack_parser_test", 
     "src": [
-      "test/core/transport/chttp2/hpack_parser_test.c"
+      "test/core/transport/chttp2/hpack_parser_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -1314,7 +1314,7 @@
     "language": "c", 
     "name": "hpack_table_test", 
     "src": [
-      "test/core/transport/chttp2/hpack_table_test.c"
+      "test/core/transport/chttp2/hpack_table_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -1331,7 +1331,7 @@
     "language": "c", 
     "name": "http_parser_test", 
     "src": [
-      "test/core/http/parser_test.c"
+      "test/core/http/parser_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -1348,7 +1348,7 @@
     "language": "c", 
     "name": "http_request_fuzzer_test", 
     "src": [
-      "test/core/http/request_fuzzer.c"
+      "test/core/http/request_fuzzer.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -1365,7 +1365,7 @@
     "language": "c", 
     "name": "http_response_fuzzer_test", 
     "src": [
-      "test/core/http/response_fuzzer.c"
+      "test/core/http/response_fuzzer.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -1382,7 +1382,7 @@
     "language": "c", 
     "name": "httpcli_format_request_test", 
     "src": [
-      "test/core/http/format_request_test.c"
+      "test/core/http/format_request_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -1399,7 +1399,7 @@
     "language": "c", 
     "name": "httpcli_test", 
     "src": [
-      "test/core/http/httpcli_test.c"
+      "test/core/http/httpcli_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -1416,7 +1416,7 @@
     "language": "c", 
     "name": "httpscli_test", 
     "src": [
-      "test/core/http/httpscli_test.c"
+      "test/core/http/httpscli_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -1433,7 +1433,7 @@
     "language": "c", 
     "name": "init_test", 
     "src": [
-      "test/core/surface/init_test.c"
+      "test/core/surface/init_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -1450,7 +1450,7 @@
     "language": "c", 
     "name": "invalid_call_argument_test", 
     "src": [
-      "test/core/end2end/invalid_call_argument_test.c"
+      "test/core/end2end/invalid_call_argument_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -1467,7 +1467,7 @@
     "language": "c", 
     "name": "json_fuzzer_test", 
     "src": [
-      "test/core/json/fuzzer.c"
+      "test/core/json/fuzzer.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -1482,7 +1482,7 @@
     "language": "c", 
     "name": "json_rewrite", 
     "src": [
-      "test/core/json/json_rewrite.c"
+      "test/core/json/json_rewrite.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -1499,7 +1499,7 @@
     "language": "c", 
     "name": "json_rewrite_test", 
     "src": [
-      "test/core/json/json_rewrite_test.c"
+      "test/core/json/json_rewrite_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -1516,7 +1516,7 @@
     "language": "c", 
     "name": "json_stream_error_test", 
     "src": [
-      "test/core/json/json_stream_error_test.c"
+      "test/core/json/json_stream_error_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -1533,7 +1533,7 @@
     "language": "c", 
     "name": "json_test", 
     "src": [
-      "test/core/json/json_test.c"
+      "test/core/json/json_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -1550,7 +1550,7 @@
     "language": "c", 
     "name": "lame_client_test", 
     "src": [
-      "test/core/surface/lame_client_test.c"
+      "test/core/surface/lame_client_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -1567,7 +1567,7 @@
     "language": "c", 
     "name": "lb_policies_test", 
     "src": [
-      "test/core/client_channel/lb_policies_test.c"
+      "test/core/client_channel/lb_policies_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -1584,7 +1584,7 @@
     "language": "c", 
     "name": "load_file_test", 
     "src": [
-      "test/core/iomgr/load_file_test.c"
+      "test/core/iomgr/load_file_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -1601,7 +1601,7 @@
     "language": "c", 
     "name": "low_level_ping_pong_benchmark", 
     "src": [
-      "test/core/network_benchmarks/low_level_ping_pong.c"
+      "test/core/network_benchmarks/low_level_ping_pong.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -1618,7 +1618,7 @@
     "language": "c", 
     "name": "memory_profile_client", 
     "src": [
-      "test/core/memory_usage/client.c"
+      "test/core/memory_usage/client.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -1635,7 +1635,7 @@
     "language": "c", 
     "name": "memory_profile_server", 
     "src": [
-      "test/core/memory_usage/server.c"
+      "test/core/memory_usage/server.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -1652,7 +1652,7 @@
     "language": "c", 
     "name": "memory_profile_test", 
     "src": [
-      "test/core/memory_usage/memory_usage_test.c"
+      "test/core/memory_usage/memory_usage_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -1669,7 +1669,7 @@
     "language": "c", 
     "name": "message_compress_test", 
     "src": [
-      "test/core/compression/message_compress_test.c"
+      "test/core/compression/message_compress_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -1686,7 +1686,7 @@
     "language": "c", 
     "name": "minimal_stack_is_minimal_test", 
     "src": [
-      "test/core/channel/minimal_stack_is_minimal_test.c"
+      "test/core/channel/minimal_stack_is_minimal_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -1703,7 +1703,7 @@
     "language": "c", 
     "name": "mlog_test", 
     "src": [
-      "test/core/census/mlog_test.c"
+      "test/core/census/mlog_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -1720,7 +1720,7 @@
     "language": "c", 
     "name": "multiple_server_queues_test", 
     "src": [
-      "test/core/end2end/multiple_server_queues_test.c"
+      "test/core/end2end/multiple_server_queues_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -1735,7 +1735,7 @@
     "language": "c", 
     "name": "murmur_hash_test", 
     "src": [
-      "test/core/support/murmur_hash_test.c"
+      "test/core/support/murmur_hash_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -1752,7 +1752,7 @@
     "language": "c", 
     "name": "nanopb_fuzzer_response_test", 
     "src": [
-      "test/core/nanopb/fuzzer_response.c"
+      "test/core/nanopb/fuzzer_response.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -1769,7 +1769,7 @@
     "language": "c", 
     "name": "nanopb_fuzzer_serverlist_test", 
     "src": [
-      "test/core/nanopb/fuzzer_serverlist.c"
+      "test/core/nanopb/fuzzer_serverlist.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -1786,7 +1786,7 @@
     "language": "c", 
     "name": "no_server_test", 
     "src": [
-      "test/core/end2end/no_server_test.c"
+      "test/core/end2end/no_server_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -1803,7 +1803,7 @@
     "language": "c", 
     "name": "num_external_connectivity_watchers_test", 
     "src": [
-      "test/core/surface/num_external_connectivity_watchers_test.c"
+      "test/core/surface/num_external_connectivity_watchers_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -1820,7 +1820,7 @@
     "language": "c", 
     "name": "parse_address_test", 
     "src": [
-      "test/core/client_channel/parse_address_test.c"
+      "test/core/client_channel/parse_address_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -1837,7 +1837,7 @@
     "language": "c", 
     "name": "percent_decode_fuzzer", 
     "src": [
-      "test/core/slice/percent_decode_fuzzer.c"
+      "test/core/slice/percent_decode_fuzzer.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -1854,7 +1854,7 @@
     "language": "c", 
     "name": "percent_encode_fuzzer", 
     "src": [
-      "test/core/slice/percent_encode_fuzzer.c"
+      "test/core/slice/percent_encode_fuzzer.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -1871,7 +1871,7 @@
     "language": "c", 
     "name": "percent_encoding_test", 
     "src": [
-      "test/core/slice/percent_encoding_test.c"
+      "test/core/slice/percent_encoding_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -1888,7 +1888,7 @@
     "language": "c", 
     "name": "pollset_set_test", 
     "src": [
-      "test/core/iomgr/pollset_set_test.c"
+      "test/core/iomgr/pollset_set_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -1905,7 +1905,7 @@
     "language": "c", 
     "name": "resolve_address_posix_test", 
     "src": [
-      "test/core/iomgr/resolve_address_posix_test.c"
+      "test/core/iomgr/resolve_address_posix_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -1922,7 +1922,7 @@
     "language": "c", 
     "name": "resolve_address_test", 
     "src": [
-      "test/core/iomgr/resolve_address_test.c"
+      "test/core/iomgr/resolve_address_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -1939,7 +1939,7 @@
     "language": "c", 
     "name": "resource_quota_test", 
     "src": [
-      "test/core/iomgr/resource_quota_test.c"
+      "test/core/iomgr/resource_quota_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -1956,7 +1956,7 @@
     "language": "c", 
     "name": "secure_channel_create_test", 
     "src": [
-      "test/core/surface/secure_channel_create_test.c"
+      "test/core/surface/secure_channel_create_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -1973,7 +1973,7 @@
     "language": "c", 
     "name": "secure_endpoint_test", 
     "src": [
-      "test/core/security/secure_endpoint_test.c"
+      "test/core/security/secure_endpoint_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -1990,7 +1990,7 @@
     "language": "c", 
     "name": "sequential_connectivity_test", 
     "src": [
-      "test/core/surface/sequential_connectivity_test.c"
+      "test/core/surface/sequential_connectivity_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -2007,7 +2007,7 @@
     "language": "c", 
     "name": "server_chttp2_test", 
     "src": [
-      "test/core/surface/server_chttp2_test.c"
+      "test/core/surface/server_chttp2_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -2024,7 +2024,7 @@
     "language": "c", 
     "name": "server_fuzzer", 
     "src": [
-      "test/core/end2end/fuzzers/server_fuzzer.c"
+      "test/core/end2end/fuzzers/server_fuzzer.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -2041,7 +2041,7 @@
     "language": "c", 
     "name": "server_test", 
     "src": [
-      "test/core/surface/server_test.c"
+      "test/core/surface/server_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -2058,7 +2058,7 @@
     "language": "c", 
     "name": "slice_buffer_test", 
     "src": [
-      "test/core/slice/slice_buffer_test.c"
+      "test/core/slice/slice_buffer_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -2075,7 +2075,7 @@
     "language": "c", 
     "name": "slice_hash_table_test", 
     "src": [
-      "test/core/slice/slice_hash_table_test.c"
+      "test/core/slice/slice_hash_table_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -2092,7 +2092,7 @@
     "language": "c", 
     "name": "slice_string_helpers_test", 
     "src": [
-      "test/core/slice/slice_string_helpers_test.c"
+      "test/core/slice/slice_string_helpers_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -2109,7 +2109,7 @@
     "language": "c", 
     "name": "slice_test", 
     "src": [
-      "test/core/slice/slice_test.c"
+      "test/core/slice/slice_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -2126,7 +2126,7 @@
     "language": "c", 
     "name": "sockaddr_resolver_test", 
     "src": [
-      "test/core/client_channel/resolvers/sockaddr_resolver_test.c"
+      "test/core/client_channel/resolvers/sockaddr_resolver_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -2143,7 +2143,7 @@
     "language": "c", 
     "name": "sockaddr_utils_test", 
     "src": [
-      "test/core/iomgr/sockaddr_utils_test.c"
+      "test/core/iomgr/sockaddr_utils_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -2160,7 +2160,7 @@
     "language": "c", 
     "name": "socket_utils_test", 
     "src": [
-      "test/core/iomgr/socket_utils_test.c"
+      "test/core/iomgr/socket_utils_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -2177,7 +2177,7 @@
     "language": "c", 
     "name": "ssl_server_fuzzer", 
     "src": [
-      "test/core/security/ssl_server_fuzzer.c"
+      "test/core/security/ssl_server_fuzzer.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -2194,7 +2194,7 @@
     "language": "c", 
     "name": "ssl_transport_security_test", 
     "src": [
-      "test/core/tsi/ssl_transport_security_test.c"
+      "test/core/tsi/ssl_transport_security_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -2211,7 +2211,7 @@
     "language": "c", 
     "name": "status_conversion_test", 
     "src": [
-      "test/core/transport/status_conversion_test.c"
+      "test/core/transport/status_conversion_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -2228,7 +2228,7 @@
     "language": "c", 
     "name": "stream_compression_test", 
     "src": [
-      "test/core/compression/stream_compression_test.c"
+      "test/core/compression/stream_compression_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -2245,7 +2245,7 @@
     "language": "c", 
     "name": "stream_owned_slice_test", 
     "src": [
-      "test/core/transport/stream_owned_slice_test.c"
+      "test/core/transport/stream_owned_slice_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -2262,7 +2262,7 @@
     "language": "c", 
     "name": "tcp_client_posix_test", 
     "src": [
-      "test/core/iomgr/tcp_client_posix_test.c"
+      "test/core/iomgr/tcp_client_posix_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -2279,7 +2279,7 @@
     "language": "c", 
     "name": "tcp_client_uv_test", 
     "src": [
-      "test/core/iomgr/tcp_client_uv_test.c"
+      "test/core/iomgr/tcp_client_uv_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -2296,7 +2296,7 @@
     "language": "c", 
     "name": "tcp_posix_test", 
     "src": [
-      "test/core/iomgr/tcp_posix_test.c"
+      "test/core/iomgr/tcp_posix_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -2313,7 +2313,7 @@
     "language": "c", 
     "name": "tcp_server_posix_test", 
     "src": [
-      "test/core/iomgr/tcp_server_posix_test.c"
+      "test/core/iomgr/tcp_server_posix_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -2330,7 +2330,7 @@
     "language": "c", 
     "name": "tcp_server_uv_test", 
     "src": [
-      "test/core/iomgr/tcp_server_uv_test.c"
+      "test/core/iomgr/tcp_server_uv_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -2347,7 +2347,7 @@
     "language": "c", 
     "name": "time_averaged_stats_test", 
     "src": [
-      "test/core/iomgr/time_averaged_stats_test.c"
+      "test/core/iomgr/time_averaged_stats_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -2364,7 +2364,7 @@
     "language": "c", 
     "name": "timeout_encoding_test", 
     "src": [
-      "test/core/transport/timeout_encoding_test.c"
+      "test/core/transport/timeout_encoding_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -2381,7 +2381,7 @@
     "language": "c", 
     "name": "timer_heap_test", 
     "src": [
-      "test/core/iomgr/timer_heap_test.c"
+      "test/core/iomgr/timer_heap_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -2398,7 +2398,7 @@
     "language": "c", 
     "name": "timer_list_test", 
     "src": [
-      "test/core/iomgr/timer_list_test.c"
+      "test/core/iomgr/timer_list_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -2415,7 +2415,7 @@
     "language": "c", 
     "name": "transport_connectivity_state_test", 
     "src": [
-      "test/core/transport/connectivity_state_test.c"
+      "test/core/transport/connectivity_state_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -2432,7 +2432,7 @@
     "language": "c", 
     "name": "transport_metadata_test", 
     "src": [
-      "test/core/transport/metadata_test.c"
+      "test/core/transport/metadata_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -2449,7 +2449,7 @@
     "language": "c", 
     "name": "transport_security_test", 
     "src": [
-      "test/core/tsi/transport_security_test.c"
+      "test/core/tsi/transport_security_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -2466,7 +2466,7 @@
     "language": "c", 
     "name": "udp_server_test", 
     "src": [
-      "test/core/iomgr/udp_server_test.c"
+      "test/core/iomgr/udp_server_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -2483,7 +2483,7 @@
     "language": "c", 
     "name": "uri_fuzzer_test", 
     "src": [
-      "test/core/client_channel/uri_fuzzer_test.c"
+      "test/core/client_channel/uri_fuzzer_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -2500,7 +2500,7 @@
     "language": "c", 
     "name": "uri_parser_test", 
     "src": [
-      "test/core/client_channel/uri_parser_test.c"
+      "test/core/client_channel/uri_parser_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -2517,7 +2517,7 @@
     "language": "c", 
     "name": "wakeup_fd_cv_test", 
     "src": [
-      "test/core/iomgr/wakeup_fd_cv_test.c"
+      "test/core/iomgr/wakeup_fd_cv_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -4864,7 +4864,7 @@
     "language": "c", 
     "name": "badreq_bad_client_test", 
     "src": [
-      "test/core/bad_client/tests/badreq.c"
+      "test/core/bad_client/tests/badreq.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -4882,7 +4882,7 @@
     "language": "c", 
     "name": "connection_prefix_bad_client_test", 
     "src": [
-      "test/core/bad_client/tests/connection_prefix.c"
+      "test/core/bad_client/tests/connection_prefix.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -4900,7 +4900,7 @@
     "language": "c", 
     "name": "head_of_line_blocking_bad_client_test", 
     "src": [
-      "test/core/bad_client/tests/head_of_line_blocking.c"
+      "test/core/bad_client/tests/head_of_line_blocking.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -4918,7 +4918,7 @@
     "language": "c", 
     "name": "headers_bad_client_test", 
     "src": [
-      "test/core/bad_client/tests/headers.c"
+      "test/core/bad_client/tests/headers.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -4936,7 +4936,7 @@
     "language": "c", 
     "name": "initial_settings_frame_bad_client_test", 
     "src": [
-      "test/core/bad_client/tests/initial_settings_frame.c"
+      "test/core/bad_client/tests/initial_settings_frame.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -4954,7 +4954,7 @@
     "language": "c", 
     "name": "server_registered_method_bad_client_test", 
     "src": [
-      "test/core/bad_client/tests/server_registered_method.c"
+      "test/core/bad_client/tests/server_registered_method.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -4972,7 +4972,7 @@
     "language": "c", 
     "name": "simple_request_bad_client_test", 
     "src": [
-      "test/core/bad_client/tests/simple_request.c"
+      "test/core/bad_client/tests/simple_request.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -4990,7 +4990,7 @@
     "language": "c", 
     "name": "unknown_frame_bad_client_test", 
     "src": [
-      "test/core/bad_client/tests/unknown_frame.c"
+      "test/core/bad_client/tests/unknown_frame.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -5008,7 +5008,7 @@
     "language": "c", 
     "name": "window_overflow_bad_client_test", 
     "src": [
-      "test/core/bad_client/tests/window_overflow.c"
+      "test/core/bad_client/tests/window_overflow.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -5026,7 +5026,7 @@
     "language": "c", 
     "name": "bad_ssl_cert_server", 
     "src": [
-      "test/core/bad_ssl/servers/cert.c"
+      "test/core/bad_ssl/servers/cert.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -5043,7 +5043,7 @@
     "language": "c", 
     "name": "bad_ssl_cert_test", 
     "src": [
-      "test/core/bad_ssl/bad_ssl_test.c"
+      "test/core/bad_ssl/bad_ssl_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -5061,7 +5061,7 @@
     "language": "c", 
     "name": "h2_census_test", 
     "src": [
-      "test/core/end2end/fixtures/h2_census.c"
+      "test/core/end2end/fixtures/h2_census.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -5079,7 +5079,7 @@
     "language": "c", 
     "name": "h2_compress_test", 
     "src": [
-      "test/core/end2end/fixtures/h2_compress.c"
+      "test/core/end2end/fixtures/h2_compress.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -5097,7 +5097,7 @@
     "language": "c", 
     "name": "h2_fakesec_test", 
     "src": [
-      "test/core/end2end/fixtures/h2_fakesec.c"
+      "test/core/end2end/fixtures/h2_fakesec.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -5115,7 +5115,7 @@
     "language": "c", 
     "name": "h2_fd_test", 
     "src": [
-      "test/core/end2end/fixtures/h2_fd.c"
+      "test/core/end2end/fixtures/h2_fd.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -5133,7 +5133,7 @@
     "language": "c", 
     "name": "h2_full_test", 
     "src": [
-      "test/core/end2end/fixtures/h2_full.c"
+      "test/core/end2end/fixtures/h2_full.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -5151,7 +5151,7 @@
     "language": "c", 
     "name": "h2_full+pipe_test", 
     "src": [
-      "test/core/end2end/fixtures/h2_full+pipe.c"
+      "test/core/end2end/fixtures/h2_full+pipe.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -5169,7 +5169,7 @@
     "language": "c", 
     "name": "h2_full+trace_test", 
     "src": [
-      "test/core/end2end/fixtures/h2_full+trace.c"
+      "test/core/end2end/fixtures/h2_full+trace.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -5187,7 +5187,7 @@
     "language": "c", 
     "name": "h2_full+workarounds_test", 
     "src": [
-      "test/core/end2end/fixtures/h2_full+workarounds.c"
+      "test/core/end2end/fixtures/h2_full+workarounds.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -5205,7 +5205,7 @@
     "language": "c", 
     "name": "h2_http_proxy_test", 
     "src": [
-      "test/core/end2end/fixtures/h2_http_proxy.c"
+      "test/core/end2end/fixtures/h2_http_proxy.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -5223,7 +5223,7 @@
     "language": "c", 
     "name": "h2_load_reporting_test", 
     "src": [
-      "test/core/end2end/fixtures/h2_load_reporting.c"
+      "test/core/end2end/fixtures/h2_load_reporting.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -5241,7 +5241,7 @@
     "language": "c", 
     "name": "h2_oauth2_test", 
     "src": [
-      "test/core/end2end/fixtures/h2_oauth2.c"
+      "test/core/end2end/fixtures/h2_oauth2.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -5259,7 +5259,7 @@
     "language": "c", 
     "name": "h2_proxy_test", 
     "src": [
-      "test/core/end2end/fixtures/h2_proxy.c"
+      "test/core/end2end/fixtures/h2_proxy.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -5277,7 +5277,7 @@
     "language": "c", 
     "name": "h2_sockpair_test", 
     "src": [
-      "test/core/end2end/fixtures/h2_sockpair.c"
+      "test/core/end2end/fixtures/h2_sockpair.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -5295,7 +5295,7 @@
     "language": "c", 
     "name": "h2_sockpair+trace_test", 
     "src": [
-      "test/core/end2end/fixtures/h2_sockpair+trace.c"
+      "test/core/end2end/fixtures/h2_sockpair+trace.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -5313,7 +5313,7 @@
     "language": "c", 
     "name": "h2_sockpair_1byte_test", 
     "src": [
-      "test/core/end2end/fixtures/h2_sockpair_1byte.c"
+      "test/core/end2end/fixtures/h2_sockpair_1byte.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -5331,7 +5331,7 @@
     "language": "c", 
     "name": "h2_ssl_test", 
     "src": [
-      "test/core/end2end/fixtures/h2_ssl.c"
+      "test/core/end2end/fixtures/h2_ssl.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -5349,7 +5349,7 @@
     "language": "c", 
     "name": "h2_ssl_proxy_test", 
     "src": [
-      "test/core/end2end/fixtures/h2_ssl_proxy.c"
+      "test/core/end2end/fixtures/h2_ssl_proxy.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -5367,7 +5367,7 @@
     "language": "c", 
     "name": "h2_uds_test", 
     "src": [
-      "test/core/end2end/fixtures/h2_uds.c"
+      "test/core/end2end/fixtures/h2_uds.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -5385,7 +5385,7 @@
     "language": "c", 
     "name": "inproc_test", 
     "src": [
-      "test/core/end2end/fixtures/inproc.c"
+      "test/core/end2end/fixtures/inproc.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -5403,7 +5403,7 @@
     "language": "c", 
     "name": "h2_census_nosec_test", 
     "src": [
-      "test/core/end2end/fixtures/h2_census.c"
+      "test/core/end2end/fixtures/h2_census.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -5421,7 +5421,7 @@
     "language": "c", 
     "name": "h2_compress_nosec_test", 
     "src": [
-      "test/core/end2end/fixtures/h2_compress.c"
+      "test/core/end2end/fixtures/h2_compress.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -5439,7 +5439,7 @@
     "language": "c", 
     "name": "h2_fd_nosec_test", 
     "src": [
-      "test/core/end2end/fixtures/h2_fd.c"
+      "test/core/end2end/fixtures/h2_fd.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -5457,7 +5457,7 @@
     "language": "c", 
     "name": "h2_full_nosec_test", 
     "src": [
-      "test/core/end2end/fixtures/h2_full.c"
+      "test/core/end2end/fixtures/h2_full.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -5475,7 +5475,7 @@
     "language": "c", 
     "name": "h2_full+pipe_nosec_test", 
     "src": [
-      "test/core/end2end/fixtures/h2_full+pipe.c"
+      "test/core/end2end/fixtures/h2_full+pipe.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -5493,7 +5493,7 @@
     "language": "c", 
     "name": "h2_full+trace_nosec_test", 
     "src": [
-      "test/core/end2end/fixtures/h2_full+trace.c"
+      "test/core/end2end/fixtures/h2_full+trace.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -5511,7 +5511,7 @@
     "language": "c", 
     "name": "h2_full+workarounds_nosec_test", 
     "src": [
-      "test/core/end2end/fixtures/h2_full+workarounds.c"
+      "test/core/end2end/fixtures/h2_full+workarounds.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -5529,7 +5529,7 @@
     "language": "c", 
     "name": "h2_http_proxy_nosec_test", 
     "src": [
-      "test/core/end2end/fixtures/h2_http_proxy.c"
+      "test/core/end2end/fixtures/h2_http_proxy.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -5547,7 +5547,7 @@
     "language": "c", 
     "name": "h2_load_reporting_nosec_test", 
     "src": [
-      "test/core/end2end/fixtures/h2_load_reporting.c"
+      "test/core/end2end/fixtures/h2_load_reporting.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -5565,7 +5565,7 @@
     "language": "c", 
     "name": "h2_proxy_nosec_test", 
     "src": [
-      "test/core/end2end/fixtures/h2_proxy.c"
+      "test/core/end2end/fixtures/h2_proxy.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -5583,7 +5583,7 @@
     "language": "c", 
     "name": "h2_sockpair_nosec_test", 
     "src": [
-      "test/core/end2end/fixtures/h2_sockpair.c"
+      "test/core/end2end/fixtures/h2_sockpair.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -5601,7 +5601,7 @@
     "language": "c", 
     "name": "h2_sockpair+trace_nosec_test", 
     "src": [
-      "test/core/end2end/fixtures/h2_sockpair+trace.c"
+      "test/core/end2end/fixtures/h2_sockpair+trace.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -5619,7 +5619,7 @@
     "language": "c", 
     "name": "h2_sockpair_1byte_nosec_test", 
     "src": [
-      "test/core/end2end/fixtures/h2_sockpair_1byte.c"
+      "test/core/end2end/fixtures/h2_sockpair_1byte.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -5637,7 +5637,7 @@
     "language": "c", 
     "name": "h2_uds_nosec_test", 
     "src": [
-      "test/core/end2end/fixtures/h2_uds.c"
+      "test/core/end2end/fixtures/h2_uds.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -5655,7 +5655,7 @@
     "language": "c", 
     "name": "inproc_nosec_test", 
     "src": [
-      "test/core/end2end/fixtures/inproc.c"
+      "test/core/end2end/fixtures/inproc.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -5752,7 +5752,7 @@
     "language": "c", 
     "name": "api_fuzzer_one_entry", 
     "src": [
-      "test/core/end2end/fuzzers/api_fuzzer.c", 
+      "test/core/end2end/fuzzers/api_fuzzer.cc", 
       "test/core/util/one_corpus_entry_fuzzer.c"
     ], 
     "third_party": false, 
@@ -5770,7 +5770,7 @@
     "language": "c", 
     "name": "client_fuzzer_one_entry", 
     "src": [
-      "test/core/end2end/fuzzers/client_fuzzer.c", 
+      "test/core/end2end/fuzzers/client_fuzzer.cc", 
       "test/core/util/one_corpus_entry_fuzzer.c"
     ], 
     "third_party": false, 
@@ -5788,7 +5788,7 @@
     "language": "c", 
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "src": [
-      "test/core/transport/chttp2/hpack_parser_fuzzer_test.c", 
+      "test/core/transport/chttp2/hpack_parser_fuzzer_test.cc", 
       "test/core/util/one_corpus_entry_fuzzer.c"
     ], 
     "third_party": false, 
@@ -5806,7 +5806,7 @@
     "language": "c", 
     "name": "http_request_fuzzer_test_one_entry", 
     "src": [
-      "test/core/http/request_fuzzer.c", 
+      "test/core/http/request_fuzzer.cc", 
       "test/core/util/one_corpus_entry_fuzzer.c"
     ], 
     "third_party": false, 
@@ -5824,7 +5824,7 @@
     "language": "c", 
     "name": "http_response_fuzzer_test_one_entry", 
     "src": [
-      "test/core/http/response_fuzzer.c", 
+      "test/core/http/response_fuzzer.cc", 
       "test/core/util/one_corpus_entry_fuzzer.c"
     ], 
     "third_party": false, 
@@ -5842,7 +5842,7 @@
     "language": "c", 
     "name": "json_fuzzer_test_one_entry", 
     "src": [
-      "test/core/json/fuzzer.c", 
+      "test/core/json/fuzzer.cc", 
       "test/core/util/one_corpus_entry_fuzzer.c"
     ], 
     "third_party": false, 
@@ -5860,7 +5860,7 @@
     "language": "c", 
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "src": [
-      "test/core/nanopb/fuzzer_response.c", 
+      "test/core/nanopb/fuzzer_response.cc", 
       "test/core/util/one_corpus_entry_fuzzer.c"
     ], 
     "third_party": false, 
@@ -5878,7 +5878,7 @@
     "language": "c", 
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "src": [
-      "test/core/nanopb/fuzzer_serverlist.c", 
+      "test/core/nanopb/fuzzer_serverlist.cc", 
       "test/core/util/one_corpus_entry_fuzzer.c"
     ], 
     "third_party": false, 
@@ -5896,7 +5896,7 @@
     "language": "c", 
     "name": "percent_decode_fuzzer_one_entry", 
     "src": [
-      "test/core/slice/percent_decode_fuzzer.c", 
+      "test/core/slice/percent_decode_fuzzer.cc", 
       "test/core/util/one_corpus_entry_fuzzer.c"
     ], 
     "third_party": false, 
@@ -5914,7 +5914,7 @@
     "language": "c", 
     "name": "percent_encode_fuzzer_one_entry", 
     "src": [
-      "test/core/slice/percent_encode_fuzzer.c", 
+      "test/core/slice/percent_encode_fuzzer.cc", 
       "test/core/util/one_corpus_entry_fuzzer.c"
     ], 
     "third_party": false, 
@@ -5932,7 +5932,7 @@
     "language": "c", 
     "name": "server_fuzzer_one_entry", 
     "src": [
-      "test/core/end2end/fuzzers/server_fuzzer.c", 
+      "test/core/end2end/fuzzers/server_fuzzer.cc", 
       "test/core/util/one_corpus_entry_fuzzer.c"
     ], 
     "third_party": false, 
@@ -5950,7 +5950,7 @@
     "language": "c", 
     "name": "ssl_server_fuzzer_one_entry", 
     "src": [
-      "test/core/security/ssl_server_fuzzer.c", 
+      "test/core/security/ssl_server_fuzzer.cc", 
       "test/core/util/one_corpus_entry_fuzzer.c"
     ], 
     "third_party": false, 
@@ -5968,7 +5968,7 @@
     "language": "c", 
     "name": "uri_fuzzer_test_one_entry", 
     "src": [
-      "test/core/client_channel/uri_fuzzer_test.c", 
+      "test/core/client_channel/uri_fuzzer_test.cc", 
       "test/core/util/one_corpus_entry_fuzzer.c"
     ], 
     "third_party": false, 
@@ -5997,7 +5997,7 @@
     "language": "c", 
     "name": "gpr_test_util", 
     "src": [
-      "test/core/util/test_config.c", 
+      "test/core/util/test_config.cc", 
       "test/core/util/test_config.h"
     ], 
     "third_party": false, 
@@ -6084,12 +6084,12 @@
     "language": "c", 
     "name": "grpc_test_util", 
     "src": [
-      "test/core/end2end/data/client_certs.c", 
-      "test/core/end2end/data/server1_cert.c", 
-      "test/core/end2end/data/server1_key.c", 
+      "test/core/end2end/data/client_certs.cc", 
+      "test/core/end2end/data/server1_cert.cc", 
+      "test/core/end2end/data/server1_key.cc", 
       "test/core/end2end/data/ssl_test_data.h", 
-      "test/core/end2end/data/test_root_cert.c", 
-      "test/core/security/oauth2_utils.c", 
+      "test/core/end2end/data/test_root_cert.cc", 
+      "test/core/security/oauth2_utils.cc", 
       "test/core/security/oauth2_utils.h"
     ], 
     "third_party": false, 
@@ -6158,7 +6158,7 @@
     "language": "c", 
     "name": "reconnect_server", 
     "src": [
-      "test/core/util/reconnect_server.c", 
+      "test/core/util/reconnect_server.cc", 
       "test/core/util/reconnect_server.h"
     ], 
     "third_party": false, 
@@ -6178,7 +6178,7 @@
     "language": "c", 
     "name": "test_tcp_server", 
     "src": [
-      "test/core/util/test_tcp_server.c", 
+      "test/core/util/test_tcp_server.cc", 
       "test/core/util/test_tcp_server.h"
     ], 
     "third_party": false, 
@@ -7535,7 +7535,7 @@
     "language": "c", 
     "name": "bad_client_test", 
     "src": [
-      "test/core/bad_client/bad_client.c", 
+      "test/core/bad_client/bad_client.cc", 
       "test/core/bad_client/bad_client.h"
     ], 
     "third_party": false, 
@@ -7555,7 +7555,7 @@
     "language": "c", 
     "name": "bad_ssl_test_server", 
     "src": [
-      "test/core/bad_ssl/server_common.c", 
+      "test/core/bad_ssl/server_common.cc", 
       "test/core/bad_ssl/server_common.h"
     ], 
     "third_party": false, 
@@ -7576,69 +7576,69 @@
     "language": "c", 
     "name": "end2end_tests", 
     "src": [
-      "test/core/end2end/end2end_test_utils.c", 
-      "test/core/end2end/end2end_tests.c", 
+      "test/core/end2end/end2end_test_utils.cc", 
+      "test/core/end2end/end2end_tests.cc", 
       "test/core/end2end/end2end_tests.h", 
-      "test/core/end2end/tests/authority_not_supported.c", 
-      "test/core/end2end/tests/bad_hostname.c", 
-      "test/core/end2end/tests/bad_ping.c", 
-      "test/core/end2end/tests/binary_metadata.c", 
-      "test/core/end2end/tests/call_creds.c", 
-      "test/core/end2end/tests/cancel_after_accept.c", 
-      "test/core/end2end/tests/cancel_after_client_done.c", 
-      "test/core/end2end/tests/cancel_after_invoke.c", 
-      "test/core/end2end/tests/cancel_after_round_trip.c", 
-      "test/core/end2end/tests/cancel_before_invoke.c", 
-      "test/core/end2end/tests/cancel_in_a_vacuum.c", 
+      "test/core/end2end/tests/authority_not_supported.cc", 
+      "test/core/end2end/tests/bad_hostname.cc", 
+      "test/core/end2end/tests/bad_ping.cc", 
+      "test/core/end2end/tests/binary_metadata.cc", 
+      "test/core/end2end/tests/call_creds.cc", 
+      "test/core/end2end/tests/cancel_after_accept.cc", 
+      "test/core/end2end/tests/cancel_after_client_done.cc", 
+      "test/core/end2end/tests/cancel_after_invoke.cc", 
+      "test/core/end2end/tests/cancel_after_round_trip.cc", 
+      "test/core/end2end/tests/cancel_before_invoke.cc", 
+      "test/core/end2end/tests/cancel_in_a_vacuum.cc", 
       "test/core/end2end/tests/cancel_test_helpers.h", 
-      "test/core/end2end/tests/cancel_with_status.c", 
-      "test/core/end2end/tests/compressed_payload.c", 
-      "test/core/end2end/tests/connectivity.c", 
-      "test/core/end2end/tests/default_host.c", 
-      "test/core/end2end/tests/disappearing_server.c", 
-      "test/core/end2end/tests/empty_batch.c", 
-      "test/core/end2end/tests/filter_call_init_fails.c", 
-      "test/core/end2end/tests/filter_causes_close.c", 
-      "test/core/end2end/tests/filter_latency.c", 
-      "test/core/end2end/tests/graceful_server_shutdown.c", 
-      "test/core/end2end/tests/high_initial_seqno.c", 
-      "test/core/end2end/tests/hpack_size.c", 
-      "test/core/end2end/tests/idempotent_request.c", 
-      "test/core/end2end/tests/invoke_large_request.c", 
-      "test/core/end2end/tests/keepalive_timeout.c", 
-      "test/core/end2end/tests/large_metadata.c", 
-      "test/core/end2end/tests/load_reporting_hook.c", 
-      "test/core/end2end/tests/max_concurrent_streams.c", 
-      "test/core/end2end/tests/max_connection_age.c", 
-      "test/core/end2end/tests/max_connection_idle.c", 
-      "test/core/end2end/tests/max_message_length.c", 
-      "test/core/end2end/tests/negative_deadline.c", 
-      "test/core/end2end/tests/network_status_change.c", 
-      "test/core/end2end/tests/no_logging.c", 
-      "test/core/end2end/tests/no_op.c", 
-      "test/core/end2end/tests/payload.c", 
-      "test/core/end2end/tests/ping.c", 
-      "test/core/end2end/tests/ping_pong_streaming.c", 
-      "test/core/end2end/tests/proxy_auth.c", 
-      "test/core/end2end/tests/registered_call.c", 
-      "test/core/end2end/tests/request_with_flags.c", 
-      "test/core/end2end/tests/request_with_payload.c", 
-      "test/core/end2end/tests/resource_quota_server.c", 
-      "test/core/end2end/tests/server_finishes_request.c", 
-      "test/core/end2end/tests/shutdown_finishes_calls.c", 
-      "test/core/end2end/tests/shutdown_finishes_tags.c", 
-      "test/core/end2end/tests/simple_cacheable_request.c", 
-      "test/core/end2end/tests/simple_delayed_request.c", 
-      "test/core/end2end/tests/simple_metadata.c", 
-      "test/core/end2end/tests/simple_request.c", 
-      "test/core/end2end/tests/stream_compression_compressed_payload.c", 
-      "test/core/end2end/tests/stream_compression_payload.c", 
-      "test/core/end2end/tests/stream_compression_ping_pong_streaming.c", 
-      "test/core/end2end/tests/streaming_error_response.c", 
-      "test/core/end2end/tests/trailing_metadata.c", 
-      "test/core/end2end/tests/workaround_cronet_compression.c", 
-      "test/core/end2end/tests/write_buffering.c", 
-      "test/core/end2end/tests/write_buffering_at_end.c"
+      "test/core/end2end/tests/cancel_with_status.cc", 
+      "test/core/end2end/tests/compressed_payload.cc", 
+      "test/core/end2end/tests/connectivity.cc", 
+      "test/core/end2end/tests/default_host.cc", 
+      "test/core/end2end/tests/disappearing_server.cc", 
+      "test/core/end2end/tests/empty_batch.cc", 
+      "test/core/end2end/tests/filter_call_init_fails.cc", 
+      "test/core/end2end/tests/filter_causes_close.cc", 
+      "test/core/end2end/tests/filter_latency.cc", 
+      "test/core/end2end/tests/graceful_server_shutdown.cc", 
+      "test/core/end2end/tests/high_initial_seqno.cc", 
+      "test/core/end2end/tests/hpack_size.cc", 
+      "test/core/end2end/tests/idempotent_request.cc", 
+      "test/core/end2end/tests/invoke_large_request.cc", 
+      "test/core/end2end/tests/keepalive_timeout.cc", 
+      "test/core/end2end/tests/large_metadata.cc", 
+      "test/core/end2end/tests/load_reporting_hook.cc", 
+      "test/core/end2end/tests/max_concurrent_streams.cc", 
+      "test/core/end2end/tests/max_connection_age.cc", 
+      "test/core/end2end/tests/max_connection_idle.cc", 
+      "test/core/end2end/tests/max_message_length.cc", 
+      "test/core/end2end/tests/negative_deadline.cc", 
+      "test/core/end2end/tests/network_status_change.cc", 
+      "test/core/end2end/tests/no_logging.cc", 
+      "test/core/end2end/tests/no_op.cc", 
+      "test/core/end2end/tests/payload.cc", 
+      "test/core/end2end/tests/ping.cc", 
+      "test/core/end2end/tests/ping_pong_streaming.cc", 
+      "test/core/end2end/tests/proxy_auth.cc", 
+      "test/core/end2end/tests/registered_call.cc", 
+      "test/core/end2end/tests/request_with_flags.cc", 
+      "test/core/end2end/tests/request_with_payload.cc", 
+      "test/core/end2end/tests/resource_quota_server.cc", 
+      "test/core/end2end/tests/server_finishes_request.cc", 
+      "test/core/end2end/tests/shutdown_finishes_calls.cc", 
+      "test/core/end2end/tests/shutdown_finishes_tags.cc", 
+      "test/core/end2end/tests/simple_cacheable_request.cc", 
+      "test/core/end2end/tests/simple_delayed_request.cc", 
+      "test/core/end2end/tests/simple_metadata.cc", 
+      "test/core/end2end/tests/simple_request.cc", 
+      "test/core/end2end/tests/stream_compression_compressed_payload.cc", 
+      "test/core/end2end/tests/stream_compression_payload.cc", 
+      "test/core/end2end/tests/stream_compression_ping_pong_streaming.cc", 
+      "test/core/end2end/tests/streaming_error_response.cc", 
+      "test/core/end2end/tests/trailing_metadata.cc", 
+      "test/core/end2end/tests/workaround_cronet_compression.cc", 
+      "test/core/end2end/tests/write_buffering.cc", 
+      "test/core/end2end/tests/write_buffering_at_end.cc"
     ], 
     "third_party": false, 
     "type": "lib"
@@ -7658,68 +7658,68 @@
     "language": "c", 
     "name": "end2end_nosec_tests", 
     "src": [
-      "test/core/end2end/end2end_nosec_tests.c", 
-      "test/core/end2end/end2end_test_utils.c", 
+      "test/core/end2end/end2end_nosec_tests.cc", 
+      "test/core/end2end/end2end_test_utils.cc", 
       "test/core/end2end/end2end_tests.h", 
-      "test/core/end2end/tests/authority_not_supported.c", 
-      "test/core/end2end/tests/bad_hostname.c", 
-      "test/core/end2end/tests/bad_ping.c", 
-      "test/core/end2end/tests/binary_metadata.c", 
-      "test/core/end2end/tests/cancel_after_accept.c", 
-      "test/core/end2end/tests/cancel_after_client_done.c", 
-      "test/core/end2end/tests/cancel_after_invoke.c", 
-      "test/core/end2end/tests/cancel_after_round_trip.c", 
-      "test/core/end2end/tests/cancel_before_invoke.c", 
-      "test/core/end2end/tests/cancel_in_a_vacuum.c", 
+      "test/core/end2end/tests/authority_not_supported.cc", 
+      "test/core/end2end/tests/bad_hostname.cc", 
+      "test/core/end2end/tests/bad_ping.cc", 
+      "test/core/end2end/tests/binary_metadata.cc", 
+      "test/core/end2end/tests/cancel_after_accept.cc", 
+      "test/core/end2end/tests/cancel_after_client_done.cc", 
+      "test/core/end2end/tests/cancel_after_invoke.cc", 
+      "test/core/end2end/tests/cancel_after_round_trip.cc", 
+      "test/core/end2end/tests/cancel_before_invoke.cc", 
+      "test/core/end2end/tests/cancel_in_a_vacuum.cc", 
       "test/core/end2end/tests/cancel_test_helpers.h", 
-      "test/core/end2end/tests/cancel_with_status.c", 
-      "test/core/end2end/tests/compressed_payload.c", 
-      "test/core/end2end/tests/connectivity.c", 
-      "test/core/end2end/tests/default_host.c", 
-      "test/core/end2end/tests/disappearing_server.c", 
-      "test/core/end2end/tests/empty_batch.c", 
-      "test/core/end2end/tests/filter_call_init_fails.c", 
-      "test/core/end2end/tests/filter_causes_close.c", 
-      "test/core/end2end/tests/filter_latency.c", 
-      "test/core/end2end/tests/graceful_server_shutdown.c", 
-      "test/core/end2end/tests/high_initial_seqno.c", 
-      "test/core/end2end/tests/hpack_size.c", 
-      "test/core/end2end/tests/idempotent_request.c", 
-      "test/core/end2end/tests/invoke_large_request.c", 
-      "test/core/end2end/tests/keepalive_timeout.c", 
-      "test/core/end2end/tests/large_metadata.c", 
-      "test/core/end2end/tests/load_reporting_hook.c", 
-      "test/core/end2end/tests/max_concurrent_streams.c", 
-      "test/core/end2end/tests/max_connection_age.c", 
-      "test/core/end2end/tests/max_connection_idle.c", 
-      "test/core/end2end/tests/max_message_length.c", 
-      "test/core/end2end/tests/negative_deadline.c", 
-      "test/core/end2end/tests/network_status_change.c", 
-      "test/core/end2end/tests/no_logging.c", 
-      "test/core/end2end/tests/no_op.c", 
-      "test/core/end2end/tests/payload.c", 
-      "test/core/end2end/tests/ping.c", 
-      "test/core/end2end/tests/ping_pong_streaming.c", 
-      "test/core/end2end/tests/proxy_auth.c", 
-      "test/core/end2end/tests/registered_call.c", 
-      "test/core/end2end/tests/request_with_flags.c", 
-      "test/core/end2end/tests/request_with_payload.c", 
-      "test/core/end2end/tests/resource_quota_server.c", 
-      "test/core/end2end/tests/server_finishes_request.c", 
-      "test/core/end2end/tests/shutdown_finishes_calls.c", 
-      "test/core/end2end/tests/shutdown_finishes_tags.c", 
-      "test/core/end2end/tests/simple_cacheable_request.c", 
-      "test/core/end2end/tests/simple_delayed_request.c", 
-      "test/core/end2end/tests/simple_metadata.c", 
-      "test/core/end2end/tests/simple_request.c", 
-      "test/core/end2end/tests/stream_compression_compressed_payload.c", 
-      "test/core/end2end/tests/stream_compression_payload.c", 
-      "test/core/end2end/tests/stream_compression_ping_pong_streaming.c", 
-      "test/core/end2end/tests/streaming_error_response.c", 
-      "test/core/end2end/tests/trailing_metadata.c", 
-      "test/core/end2end/tests/workaround_cronet_compression.c", 
-      "test/core/end2end/tests/write_buffering.c", 
-      "test/core/end2end/tests/write_buffering_at_end.c"
+      "test/core/end2end/tests/cancel_with_status.cc", 
+      "test/core/end2end/tests/compressed_payload.cc", 
+      "test/core/end2end/tests/connectivity.cc", 
+      "test/core/end2end/tests/default_host.cc", 
+      "test/core/end2end/tests/disappearing_server.cc", 
+      "test/core/end2end/tests/empty_batch.cc", 
+      "test/core/end2end/tests/filter_call_init_fails.cc", 
+      "test/core/end2end/tests/filter_causes_close.cc", 
+      "test/core/end2end/tests/filter_latency.cc", 
+      "test/core/end2end/tests/graceful_server_shutdown.cc", 
+      "test/core/end2end/tests/high_initial_seqno.cc", 
+      "test/core/end2end/tests/hpack_size.cc", 
+      "test/core/end2end/tests/idempotent_request.cc", 
+      "test/core/end2end/tests/invoke_large_request.cc", 
+      "test/core/end2end/tests/keepalive_timeout.cc", 
+      "test/core/end2end/tests/large_metadata.cc", 
+      "test/core/end2end/tests/load_reporting_hook.cc", 
+      "test/core/end2end/tests/max_concurrent_streams.cc", 
+      "test/core/end2end/tests/max_connection_age.cc", 
+      "test/core/end2end/tests/max_connection_idle.cc", 
+      "test/core/end2end/tests/max_message_length.cc", 
+      "test/core/end2end/tests/negative_deadline.cc", 
+      "test/core/end2end/tests/network_status_change.cc", 
+      "test/core/end2end/tests/no_logging.cc", 
+      "test/core/end2end/tests/no_op.cc", 
+      "test/core/end2end/tests/payload.cc", 
+      "test/core/end2end/tests/ping.cc", 
+      "test/core/end2end/tests/ping_pong_streaming.cc", 
+      "test/core/end2end/tests/proxy_auth.cc", 
+      "test/core/end2end/tests/registered_call.cc", 
+      "test/core/end2end/tests/request_with_flags.cc", 
+      "test/core/end2end/tests/request_with_payload.cc", 
+      "test/core/end2end/tests/resource_quota_server.cc", 
+      "test/core/end2end/tests/server_finishes_request.cc", 
+      "test/core/end2end/tests/shutdown_finishes_calls.cc", 
+      "test/core/end2end/tests/shutdown_finishes_tags.cc", 
+      "test/core/end2end/tests/simple_cacheable_request.cc", 
+      "test/core/end2end/tests/simple_delayed_request.cc", 
+      "test/core/end2end/tests/simple_metadata.cc", 
+      "test/core/end2end/tests/simple_request.cc", 
+      "test/core/end2end/tests/stream_compression_compressed_payload.cc", 
+      "test/core/end2end/tests/stream_compression_payload.cc", 
+      "test/core/end2end/tests/stream_compression_ping_pong_streaming.cc", 
+      "test/core/end2end/tests/streaming_error_response.cc", 
+      "test/core/end2end/tests/trailing_metadata.cc", 
+      "test/core/end2end/tests/workaround_cronet_compression.cc", 
+      "test/core/end2end/tests/write_buffering.cc", 
+      "test/core/end2end/tests/write_buffering_at_end.cc"
     ], 
     "third_party": false, 
     "type": "lib"
@@ -8957,33 +8957,33 @@
     "src": [
       "src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc", 
       "src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h", 
-      "test/core/end2end/cq_verifier.c", 
+      "test/core/end2end/cq_verifier.cc", 
       "test/core/end2end/cq_verifier.h", 
-      "test/core/end2end/fixtures/http_proxy_fixture.c", 
+      "test/core/end2end/fixtures/http_proxy_fixture.cc", 
       "test/core/end2end/fixtures/http_proxy_fixture.h", 
-      "test/core/end2end/fixtures/proxy.c", 
+      "test/core/end2end/fixtures/proxy.cc", 
       "test/core/end2end/fixtures/proxy.h", 
-      "test/core/iomgr/endpoint_tests.c", 
+      "test/core/iomgr/endpoint_tests.cc", 
       "test/core/iomgr/endpoint_tests.h", 
       "test/core/util/debugger_macros.cc", 
       "test/core/util/debugger_macros.h", 
-      "test/core/util/grpc_profiler.c", 
+      "test/core/util/grpc_profiler.cc", 
       "test/core/util/grpc_profiler.h", 
-      "test/core/util/memory_counters.c", 
+      "test/core/util/memory_counters.cc", 
       "test/core/util/memory_counters.h", 
-      "test/core/util/mock_endpoint.c", 
+      "test/core/util/mock_endpoint.cc", 
       "test/core/util/mock_endpoint.h", 
-      "test/core/util/parse_hexstring.c", 
+      "test/core/util/parse_hexstring.cc", 
       "test/core/util/parse_hexstring.h", 
-      "test/core/util/passthru_endpoint.c", 
+      "test/core/util/passthru_endpoint.cc", 
       "test/core/util/passthru_endpoint.h", 
-      "test/core/util/port.c", 
+      "test/core/util/port.cc", 
       "test/core/util/port.h", 
-      "test/core/util/port_server_client.c", 
+      "test/core/util/port_server_client.cc", 
       "test/core/util/port_server_client.h", 
-      "test/core/util/slice_splitter.c", 
+      "test/core/util/slice_splitter.cc", 
       "test/core/util/slice_splitter.h", 
-      "test/core/util/trickle_endpoint.c", 
+      "test/core/util/trickle_endpoint.cc", 
       "test/core/util/trickle_endpoint.h"
     ], 
     "third_party": false, 
@@ -9349,7 +9349,7 @@
     "language": "c", 
     "name": "transport_security_test_lib", 
     "src": [
-      "test/core/tsi/transport_security_test_lib.c", 
+      "test/core/tsi/transport_security_test_lib.cc", 
       "test/core/tsi/transport_security_test_lib.h"
     ], 
     "third_party": false,