aboutsummaryrefslogtreecommitdiffhomepage
path: root/test/core/bad_client/tests/headers.c
diff options
context:
space:
mode:
Diffstat (limited to 'test/core/bad_client/tests/headers.c')
-rw-r--r--test/core/bad_client/tests/headers.c141
1 files changed, 93 insertions, 48 deletions
diff --git a/test/core/bad_client/tests/headers.c b/test/core/bad_client/tests/headers.c
index c704dbbcb6..f96c6f0028 100644
--- a/test/core/bad_client/tests/headers.c
+++ b/test/core/bad_client/tests/headers.c
@@ -23,8 +23,8 @@
"PRI * HTTP/2.0\r\n\r\nSM\r\n\r\n" \
"\x00\x00\x00\x04\x00\x00\x00\x00\x00"
-static void verifier(grpc_server *server, grpc_completion_queue *cq,
- void *registered_method) {
+static void verifier(grpc_server* server, grpc_completion_queue* cq,
+ void* registered_method) {
while (grpc_server_has_open_connections(server)) {
GPR_ASSERT(grpc_completion_queue_next(
cq, grpc_timeout_milliseconds_to_deadline(20), NULL)
@@ -32,7 +32,7 @@ static void verifier(grpc_server *server, grpc_completion_queue *cq,
}
}
-int main(int argc, char **argv) {
+int main(int argc, char** argv) {
grpc_test_init(argc, argv);
/* partial http2 header prefixes */
@@ -66,194 +66,236 @@ int main(int argc, char **argv) {
GRPC_BAD_CLIENT_DISCONNECT);
/* test adding prioritization data */
- GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, PFX_STR
+ GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL,
+ PFX_STR
"\x00\x00\x01\x01\x24\x00\x00\x00\x01"
"\x00",
0);
- GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, PFX_STR
+ GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL,
+ PFX_STR
"\x00\x00\x02\x01\x24\x00\x00\x00\x01"
"\x00\x00",
0);
- GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, PFX_STR
+ GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL,
+ PFX_STR
"\x00\x00\x03\x01\x24\x00\x00\x00\x01"
"\x00\x00\x00",
0);
- GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, PFX_STR
+ GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL,
+ PFX_STR
"\x00\x00\x04\x01\x24\x00\x00\x00\x01"
"\x00\x00\x00\x00",
0);
- GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, PFX_STR
+ GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL,
+ PFX_STR
"\x00\x00\x05\x01\x24\x00\x00\x00\x01"
"",
GRPC_BAD_CLIENT_DISCONNECT);
- GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, PFX_STR
+ GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL,
+ PFX_STR
"\x00\x00\x05\x01\x24\x00\x00\x00\x01"
"\x00",
GRPC_BAD_CLIENT_DISCONNECT);
- GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, PFX_STR
+ GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL,
+ PFX_STR
"\x00\x00\x05\x01\x24\x00\x00\x00\x01"
"\x00\x00",
GRPC_BAD_CLIENT_DISCONNECT);
- GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, PFX_STR
+ GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL,
+ PFX_STR
"\x00\x00\x05\x01\x24\x00\x00\x00\x01"
"\x00\x00\x00",
GRPC_BAD_CLIENT_DISCONNECT);
- GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, PFX_STR
+ GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL,
+ PFX_STR
"\x00\x00\x05\x01\x24\x00\x00\x00\x01"
"\x00\x00\x00\x00",
GRPC_BAD_CLIENT_DISCONNECT);
- GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, PFX_STR
+ GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL,
+ PFX_STR
"\x00\x00\x05\x01\x24\x00\x00\x00\x01"
"\x00\x00\x00\x00\x00",
GRPC_BAD_CLIENT_DISCONNECT);
/* test looking up an invalid index */
- GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, PFX_STR
+ GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL,
+ PFX_STR
"\x00\x00\x01\x01\x04\x00\x00\x00\x01"
"\xfe",
0);
- GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, PFX_STR
+ GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL,
+ PFX_STR
"\x00\x00\x04\x01\x04\x00\x00\x00\x01"
"\x7f\x7f\x01"
"a",
0);
- GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, PFX_STR
+ GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL,
+ PFX_STR
"\x00\x00\x04\x01\x04\x00\x00\x00\x01"
"\x0f\x7f\x01"
"a",
0);
- GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, PFX_STR
+ GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL,
+ PFX_STR
"\x00\x00\x04\x01\x04\x00\x00\x00\x01"
"\x1f\x7f\x01"
"a",
0);
/* test nvr, not indexed in static table */
- GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, PFX_STR
+ GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL,
+ PFX_STR
"\x00\x00\x03\x01\x04\x00\x00\x00\x01"
"\x01\x01"
"a",
GRPC_BAD_CLIENT_DISCONNECT);
- GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, PFX_STR
+ GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL,
+ PFX_STR
"\x00\x00\x03\x01\x04\x00\x00\x00\x01"
"\x11\x01"
"a",
GRPC_BAD_CLIENT_DISCONNECT);
/* illegal op code */
- GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, PFX_STR
+ GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL,
+ PFX_STR
"\x00\x00\x01\x01\x04\x00\x00\x00\x01"
"\x80",
0);
/* parse some long indices */
- GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, PFX_STR
+ GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL,
+ PFX_STR
"\x00\x00\x02\x01\x04\x00\x00\x00\x01"
"\xff\x00",
0);
- GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, PFX_STR
+ GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL,
+ PFX_STR
"\x00\x00\x03\x01\x04\x00\x00\x00\x01"
"\xff\x80\x00",
0);
- GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, PFX_STR
+ GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL,
+ PFX_STR
"\x00\x00\x04\x01\x04\x00\x00\x00\x01"
"\xff\x80\x80\x00",
0);
- GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, PFX_STR
+ GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL,
+ PFX_STR
"\x00\x00\x05\x01\x04\x00\x00\x00\x01"
"\xff\x80\x80\x80\x00",
0);
- GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, PFX_STR
+ GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL,
+ PFX_STR
"\x00\x00\x06\x01\x04\x00\x00\x00\x01"
"\xff\x80\x80\x80\x80\x00",
0);
- GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, PFX_STR
+ GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL,
+ PFX_STR
"\x00\x00\x07\x01\x04\x00\x00\x00\x01"
"\xff\x80\x80\x80\x80\x80\x00",
0);
- GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, PFX_STR
+ GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL,
+ PFX_STR
"\x00\x00\x08\x01\x04\x00\x00\x00\x01"
"\xff",
GRPC_BAD_CLIENT_DISCONNECT);
- GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, PFX_STR
+ GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL,
+ PFX_STR
"\x00\x00\x08\x01\x04\x00\x00\x00\x01"
"\xff\x80",
GRPC_BAD_CLIENT_DISCONNECT);
- GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, PFX_STR
+ GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL,
+ PFX_STR
"\x00\x00\x08\x01\x04\x00\x00\x00\x01"
"\xff\x80\x80",
GRPC_BAD_CLIENT_DISCONNECT);
- GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, PFX_STR
+ GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL,
+ PFX_STR
"\x00\x00\x08\x01\x04\x00\x00\x00\x01"
"\xff\x80\x80\x80",
GRPC_BAD_CLIENT_DISCONNECT);
- GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, PFX_STR
+ GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL,
+ PFX_STR
"\x00\x00\x08\x01\x04\x00\x00\x00\x01"
"\xff\x80\x80\x80\x80",
GRPC_BAD_CLIENT_DISCONNECT);
- GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, PFX_STR
+ GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL,
+ PFX_STR
"\x00\x00\x08\x01\x04\x00\x00\x00\x01"
"\xff\x80\x80\x80\x80\x80",
GRPC_BAD_CLIENT_DISCONNECT);
- GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, PFX_STR
+ GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL,
+ PFX_STR
"\x00\x00\x08\x01\x04\x00\x00\x00\x01"
"\xff\x80\x80\x80\x80\x80\x80",
GRPC_BAD_CLIENT_DISCONNECT);
- GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, PFX_STR
+ GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL,
+ PFX_STR
"\x00\x00\x08\x01\x04\x00\x00\x00\x01"
"\xff\x80\x80\x80\x80\x80\x80\x00",
0);
/* overflow on byte 4 */
- GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, PFX_STR
+ GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL,
+ PFX_STR
"\x00\x00\x06\x01\x04\x00\x00\x00\x01"
"\xff\x80\x80\x80\x80\x7f",
GRPC_BAD_CLIENT_DISCONNECT);
- GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, PFX_STR
+ GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL,
+ PFX_STR
"\x00\x00\x06\x01\x04\x00\x00\x00\x01"
"\xff\xff\xff\xff\xff\x0f",
GRPC_BAD_CLIENT_DISCONNECT);
/* overflow after byte 4 */
- GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, PFX_STR
+ GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL,
+ PFX_STR
"\x00\x00\x08\x01\x04\x00\x00\x00\x01"
"\xff\x80\x80\x80\x80\x80\x80\x02",
0);
/* end of headers mid-opcode */
- GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, PFX_STR
+ GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL,
+ PFX_STR
"\x00\x00\x01\x01\x04\x00\x00\x00\x01"
"\x01",
GRPC_BAD_CLIENT_DISCONNECT);
/* dynamic table size update: set to default */
- GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, PFX_STR
+ GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL,
+ PFX_STR
"\x00\x00\x03\x01\x04\x00\x00\x00\x01"
"\x3f\xe1\x1f",
GRPC_BAD_CLIENT_DISCONNECT);
/* dynamic table size update: set too large */
- GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, PFX_STR
+ GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL,
+ PFX_STR
"\x00\x00\x03\x01\x04\x00\x00\x00\x01"
"\x3f\xf1\x1f",
0);
/* dynamic table size update: set twice */
- GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, PFX_STR
+ GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL,
+ PFX_STR
"\x00\x00\x04\x01\x04\x00\x00\x00\x01"
"\x20\x3f\xe1\x1f",
GRPC_BAD_CLIENT_DISCONNECT);
/* dynamic table size update: set thrice */
- GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, PFX_STR
+ GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL,
+ PFX_STR
"\x00\x00\x03\x01\x04\x00\x00\x00\x01"
"\x20\x20\x20",
0);
/* non-ending header followed by continuation frame */
- GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, PFX_STR
+ GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL,
+ PFX_STR
"\x00\x00\x00\x01\x00\x00\x00\x00\x01"
"\x00\x00\x00\x09\x04\x00\x00\x00\x01",
GRPC_BAD_CLIENT_DISCONNECT);
/* non-ending header followed by non-continuation frame */
- GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, PFX_STR
+ GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL,
+ PFX_STR
"\x00\x00\x00\x01\x00\x00\x00\x00\x01"
"\x00\x00\x00\x00\x04\x00\x00\x00\x01",
0);
/* non-ending header followed by a continuation frame for a different stream
*/
- GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, PFX_STR
+ GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL,
+ PFX_STR
"\x00\x00\x00\x01\x04\x00\x00\x00\x01"
"\x00\x00\x00\x01\x00\x00\x00\x00\x03"
"\x00\x00\x00\x09\x04\x00\x00\x00\x01",
@@ -262,7 +304,8 @@ int main(int argc, char **argv) {
GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL,
PFX_STR "\x00\x00\x00\x09\x04\x00\x00\x00\x01", 0);
/* three header frames */
- GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, PFX_STR
+ GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL,
+ PFX_STR
"\x00\x00\x00\x01\x04\x00\x00\x00\x01"
"\x00\x00\x00\x01\x04\x00\x00\x00\x01"
"\x00\x00\x00\x01\x04\x00\x00\x00\x01",
@@ -274,13 +317,15 @@ int main(int argc, char **argv) {
GRPC_BAD_CLIENT_DISCONNECT);
/* a badly encoded timeout value */
- GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, PFX_STR
+ GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL,
+ PFX_STR
"\x00\x00\x19\x01\x04\x00\x00\x00\x01"
"\x10\x0cgrpc-timeout\x0a"
"15 seconds",
GRPC_BAD_CLIENT_DISCONNECT);
/* a badly encoded timeout value: twice (catches caching) */
- GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, PFX_STR
+ GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL,
+ PFX_STR
"\x00\x00\x19\x01\x04\x00\x00\x00\x01"
"\x10\x0cgrpc-timeout\x0a"
"15 seconds"