Fix some memory leaks
diff --git a/test/core/end2end/no_server_test.c b/test/core/end2end/no_server_test.c
index f080fef..b292620 100644
--- a/test/core/end2end/no_server_test.c
+++ b/test/core/end2end/no_server_test.c
@@ -32,6 +32,7 @@
  */
 
 #include <grpc/grpc.h>
+#include <grpc/support/alloc.h>
 #include <grpc/support/log.h>
 #include "test/core/end2end/cq_verifier.h"
 #include "test/core/util/test_config.h"
@@ -94,6 +95,9 @@
   grpc_channel_destroy(chan);
   cq_verifier_destroy(cqv);
 
+  gpr_free(details);
+  grpc_metadata_array_destroy(&trailing_metadata_recv);
+
   grpc_shutdown();
 
   return 0;
diff --git a/test/core/end2end/tests/invoke_large_request.c b/test/core/end2end/tests/invoke_large_request.c
index 5932c57..d9d9e93 100644
--- a/test/core/end2end/tests/invoke_large_request.c
+++ b/test/core/end2end/tests/invoke_large_request.c
@@ -220,6 +220,8 @@
   grpc_byte_buffer_destroy(response_payload);
   grpc_byte_buffer_destroy(request_payload_recv);
   grpc_byte_buffer_destroy(response_payload_recv);
+  gpr_slice_unref(request_payload_slice);
+  gpr_slice_unref(response_payload_slice);
 
   end_test(&f);
   config.tear_down_data(&f);
diff --git a/test/core/end2end/tests/max_concurrent_streams.c b/test/core/end2end/tests/max_concurrent_streams.c
index 7fe36a8..6e95a6c 100644
--- a/test/core/end2end/tests/max_concurrent_streams.c
+++ b/test/core/end2end/tests/max_concurrent_streams.c
@@ -378,6 +378,15 @@
   grpc_call_destroy(c2);
   grpc_call_destroy(s2);
 
+  gpr_free(details1);
+  gpr_free(details2);
+  grpc_metadata_array_destroy(&initial_metadata_recv1);
+  grpc_metadata_array_destroy(&trailing_metadata_recv1);
+  grpc_metadata_array_destroy(&initial_metadata_recv2);
+  grpc_metadata_array_destroy(&trailing_metadata_recv2);
+  grpc_metadata_array_destroy(&request_metadata_recv);
+  grpc_call_details_destroy(&call_details);
+
   end_test(&f);
   config.tear_down_data(&f);
 }
diff --git a/test/core/end2end/tests/ping_pong_streaming.c b/test/core/end2end/tests/ping_pong_streaming.c
index a40e9ec..fe02f25 100644
--- a/test/core/end2end/tests/ping_pong_streaming.c
+++ b/test/core/end2end/tests/ping_pong_streaming.c
@@ -239,6 +239,12 @@
   cq_verifier_destroy(v_client);
   cq_verifier_destroy(v_server);
 
+  grpc_metadata_array_destroy(&initial_metadata_recv);
+  grpc_metadata_array_destroy(&trailing_metadata_recv);
+  grpc_metadata_array_destroy(&request_metadata_recv);
+  grpc_call_details_destroy(&call_details);
+  gpr_free(details);
+
   end_test(&f);
   config.tear_down_data(&f);
 }
diff --git a/test/core/surface/lame_client_test.c b/test/core/surface/lame_client_test.c
index a0dda9b..05e8f95 100644
--- a/test/core/surface/lame_client_test.c
+++ b/test/core/surface/lame_client_test.c
@@ -35,6 +35,7 @@
 
 #include "test/core/end2end/cq_verifier.h"
 #include "test/core/util/test_config.h"
+#include <grpc/support/alloc.h>
 #include <grpc/support/log.h>
 
 static void *tag(gpr_intptr x) { return (void *)x; }
@@ -86,6 +87,9 @@
   cq_verifier_destroy(cqv);
   grpc_completion_queue_destroy(cq);
 
+  grpc_metadata_array_destroy(&trailing_metadata_recv);
+  gpr_free(details);
+
   grpc_shutdown();
 
   return 0;