diff --git a/test/core/bad_client/tests/badreq.c b/test/core/bad_client/tests/badreq.c
index 3130a0965405a963404684cd83da57303678e04c..bc6acd788f092f22e194e3ecc8d69c03a2b4f900 100644
--- a/test/core/bad_client/tests/badreq.c
+++ b/test/core/bad_client/tests/badreq.c
@@ -110,5 +110,20 @@ int main(int argc, char **argv) {
     "\x10\x0auser-agent\"bad-client grpc-c/0.12.0.0 (linux)",
     GRPC_BAD_CLIENT_DISCONNECT);
 
+  /* bad grpc-encoding algorithm */
+  GRPC_RUN_BAD_CLIENT_TEST(verifier, 
+    PFX_STR
+    "\x00\x00\xf5\x01\x04\x00\x00\x00\x01"
+    "\x10\x05:path\x08/foo/bar"
+    "\x10\x07:scheme\x04http"
+    "\x10\x07:method\x04POST"
+    "\x10\x0a:authority\x09localhost"
+    "\x10\x0c""content-type\x10""application/grpc"
+    "\x10\x14grpc-accept-encoding\x15identity,deflate,gzip"
+    "\x10\x0dgrpc-encoding\x1cyou-dont-know-how-to-do-this"
+    "\x10\x02te\x08trailers"
+    "\x10\x0auser-agent\"bad-client grpc-c/0.12.0.0 (linux)",
+    GRPC_BAD_CLIENT_DISCONNECT);
+
   return 0;
 }
diff --git a/test/core/bad_client/tests/badreq_encoding.headers b/test/core/bad_client/tests/badreq_encoding.headers
new file mode 100644
index 0000000000000000000000000000000000000000..5639c1fd715bcccecf0fe5e9d943955316d90eeb
--- /dev/null
+++ b/test/core/bad_client/tests/badreq_encoding.headers
@@ -0,0 +1,12 @@
+# headers used in badreq.c
+# use tools/codegen/core/gen_header_frame.py to generate the binary strings
+# contained in the source code
+:path: /foo/bar
+:scheme: http
+:method: POST
+:authority: localhost
+content-type: application/grpc
+grpc-accept-encoding: identity,deflate,gzip
+grpc-encoding: you-dont-know-how-to-do-this
+te: trailers
+user-agent: bad-client grpc-c/0.12.0.0 (linux)