Add a test of bad settings frame (and fix a bug!)
diff --git a/test/core/bad_client/bad_client.c b/test/core/bad_client/bad_client.c
index 4cc1ad4..f2436be 100644
--- a/test/core/bad_client/bad_client.c
+++ b/test/core/bad_client/bad_client.c
@@ -38,6 +38,7 @@
#include "src/core/iomgr/endpoint_pair.h"
#include "src/core/surface/completion_queue.h"
#include "src/core/surface/server.h"
+#include "src/core/support/string.h"
#include "src/core/transport/chttp2_transport.h"
#include <grpc/support/sync.h>
@@ -72,17 +73,21 @@
grpc_server_get_channel_args(a->server));
}
-void grpc_run_bad_client_test(const char *name, const char *client_payload,
+void grpc_run_bad_client_test(grpc_bad_client_server_side_validator validator,
+ const char *client_payload,
size_t client_payload_length,
- grpc_bad_client_server_side_validator validator) {
+ gpr_uint32 flags) {
grpc_endpoint_pair sfd;
thd_args a;
gpr_thd_id id;
+ char* hex;
gpr_slice slice =
gpr_slice_from_copied_buffer(client_payload, client_payload_length);
+ hex = gpr_hexdump(client_payload, client_payload_length, GPR_HEXDUMP_PLAINTEXT);
+
/* Add a debug log */
- gpr_log(GPR_INFO, "TEST: %s", name);
+ gpr_log(GPR_INFO, "TEST: %s", hex);
/* Init grpc */
grpc_init();
@@ -126,10 +131,18 @@
/* Await completion */
GPR_ASSERT(
gpr_event_wait(&a.done_write, GRPC_TIMEOUT_SECONDS_TO_DEADLINE(5)));
+
+ if (flags & GRPC_BAD_CLIENT_DISCONNECT) {
+ grpc_endpoint_destroy(sfd.client);
+ sfd.client = NULL;
+ }
+
GPR_ASSERT(gpr_event_wait(&a.done_thd, GRPC_TIMEOUT_SECONDS_TO_DEADLINE(5)));
/* Shutdown */
- grpc_endpoint_destroy(sfd.client);
+ if (sfd.client) {
+ grpc_endpoint_destroy(sfd.client);
+ }
grpc_server_destroy(a.server);
grpc_completion_queue_destroy(a.cq);