From ff1e2aa6bd95648f5f612a0d4713bba54df0f351 Mon Sep 17 00:00:00 2001
From: Craig Tiller <craig.tiller@gmail.com>
Date: Mon, 14 Dec 2015 15:36:54 -0800
Subject: [PATCH] Ensure test fails if SSL connection succeeds

---
 src/core/transport/chttp2/alpn.c |  2 +-
 test/core/bad_ssl/bad_ssl_test.c |  2 +-
 test/core/bad_ssl/server.c       | 21 +++++++++++++++++++--
 test/core/bad_ssl/servers/alpn.c |  2 +-
 4 files changed, 22 insertions(+), 5 deletions(-)

diff --git a/src/core/transport/chttp2/alpn.c b/src/core/transport/chttp2/alpn.c
index 69da4e6718..cf2079953f 100644
--- a/src/core/transport/chttp2/alpn.c
+++ b/src/core/transport/chttp2/alpn.c
@@ -36,7 +36,7 @@
 #include <grpc/support/useful.h>
 
 /* in order of preference */
-static const char *const supported_versions[] = {"h2"};
+static const char *const supported_versions[] = {"not-h2"};
 
 int grpc_chttp2_is_alpn_version_supported(const char *version, size_t size) {
   size_t i;
diff --git a/test/core/bad_ssl/bad_ssl_test.c b/test/core/bad_ssl/bad_ssl_test.c
index 08ab482c58..54ac6d0e1c 100644
--- a/test/core/bad_ssl/bad_ssl_test.c
+++ b/test/core/bad_ssl/bad_ssl_test.c
@@ -163,7 +163,7 @@ int main(int argc, char **argv) {
     grpc_shutdown();
   }
   gpr_free(args[2]);
-
+  
   gpr_subprocess_interrupt(svr);
   status = gpr_subprocess_join(svr);
   gpr_subprocess_destroy(svr);
diff --git a/test/core/bad_ssl/server.c b/test/core/bad_ssl/server.c
index 43312f1577..2ed94de099 100644
--- a/test/core/bad_ssl/server.c
+++ b/test/core/bad_ssl/server.c
@@ -62,11 +62,23 @@ void bad_ssl_run(grpc_server *server) {
   int shutdown_started = 0;
   int shutdown_finished = 0;
   grpc_event ev;
-
+  grpc_call_error error;
+  grpc_call *s = NULL;
+  grpc_call_details call_details;
+  grpc_metadata_array request_metadata_recv;
   grpc_completion_queue *cq = grpc_completion_queue_create(NULL);
+
+  grpc_call_details_init(&call_details);
+  grpc_metadata_array_init(&request_metadata_recv);
+
   grpc_server_register_completion_queue(server, cq, NULL);
   grpc_server_start(server);
 
+  error =
+      grpc_server_request_call(server, &s, &call_details,
+                               &request_metadata_recv, cq, cq, (void*)1);
+  GPR_ASSERT(GRPC_CALL_OK == error);
+
   signal(SIGINT, sigint_handler);
   while (!shutdown_finished) {
     if (got_sigint && !shutdown_started) {
@@ -84,7 +96,8 @@ void bad_ssl_run(grpc_server *server) {
         NULL);
     switch (ev.type) {
       case GRPC_OP_COMPLETE:
-        GPR_UNREACHABLE_CODE(gpr_log(GPR_DEBUG, "GRPC_OP_COMPLETE"));
+        GPR_ASSERT(ev.tag == (void*)1);
+        GPR_ASSERT(ev.success == 0);
         break;
       case GRPC_QUEUE_SHUTDOWN:
         GPR_ASSERT(shutdown_started);
@@ -94,4 +107,8 @@ void bad_ssl_run(grpc_server *server) {
         break;
     }
   }
+
+  GPR_ASSERT(s == NULL);
+  grpc_call_details_destroy(&call_details);
+  grpc_metadata_array_destroy(&request_metadata_recv);
 }
diff --git a/test/core/bad_ssl/servers/alpn.c b/test/core/bad_ssl/servers/alpn.c
index 7d70690e52..2623a9e654 100644
--- a/test/core/bad_ssl/servers/alpn.c
+++ b/test/core/bad_ssl/servers/alpn.c
@@ -46,7 +46,7 @@
  * a protocol that the connecting client does not support. It does this by
  * overriding the functions declared in alpn.c from the core library. */
 
-static const char *const fake_versions[] = {"not-h2"};
+static const char *const fake_versions[] = {"h2"};
 
 int grpc_chttp2_is_alpn_version_supported(const char *version, size_t size) {
   size_t i;
-- 
GitLab