aboutsummaryrefslogtreecommitdiffhomepage
path: root/test
diff options
context:
space:
mode:
authorGravatar Nicolas Noble <nicolasnoble@users.noreply.github.com>2016-04-06 14:57:50 -0700
committerGravatar Nicolas Noble <nicolasnoble@users.noreply.github.com>2016-04-06 14:57:50 -0700
commitadc53ade9bbb1cb5efaa6d521e4284061faf2ea5 (patch)
tree6f395cf70d504ec640db8f1d025f4a54a8aa37d8 /test
parentf787e0dd2032739a02d4755c02acba59400fb956 (diff)
parent36bb50aaedc2e09d63149f96cb9ebb5ae0e2500e (diff)
Merge pull request #6071 from ctiller/e2efuzz
Full stack server fuzzer
Diffstat (limited to 'test')
-rw-r--r--test/core/bad_client/bad_client.c3
-rw-r--r--test/core/end2end/end2end_nosec_tests.c90
-rw-r--r--test/core/end2end/end2end_tests.c92
-rw-r--r--test/core/end2end/end2end_tests.h1
-rw-r--r--test/core/end2end/fixtures/h2_census.c1
-rw-r--r--test/core/end2end/fixtures/h2_compress.c1
-rw-r--r--test/core/end2end/fixtures/h2_fakesec.c2
-rw-r--r--test/core/end2end/fixtures/h2_full+pipe.c1
-rw-r--r--test/core/end2end/fixtures/h2_full+trace.c1
-rw-r--r--test/core/end2end/fixtures/h2_full.c1
-rw-r--r--test/core/end2end/fixtures/h2_oauth2.c2
-rw-r--r--test/core/end2end/fixtures/h2_proxy.c1
-rw-r--r--test/core/end2end/fixtures/h2_sockpair+trace.c1
-rw-r--r--test/core/end2end/fixtures/h2_sockpair.c1
-rw-r--r--test/core/end2end/fixtures/h2_sockpair_1byte.c1
-rw-r--r--test/core/end2end/fixtures/h2_ssl.c1
-rw-r--r--test/core/end2end/fixtures/h2_ssl_proxy.c1
-rw-r--r--test/core/end2end/fixtures/h2_uds.c1
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer.c121
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/01c008fa.binbin0 -> 252 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/021ec59f.binbin0 -> 46 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/02918e4ad9e8928845f232c0cb043057add3c9a9bin0 -> 60 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/0336e1ff71939de9e2007fdb4aba891e35a37488bin0 -> 45 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/033dd2f6.binbin0 -> 28 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/0384345c.binbin0 -> 286 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/03b9be1fa172dff5d1543be079b9c64fa2c9a278bin0 -> 60 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/05c3a0390d0f52d241728926fa901599a47e4606bin0 -> 49 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/06bd2f82fefb9943787d63ea359f9b77072380c2bin0 -> 67 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/0766afc7c27c06ea18d896083470d587a380de3cbin0 -> 46 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/07c96c06eddbed5a3ce050436bc805f6821cbc9bbin0 -> 60 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/081e56ce6f6b1c57adb806fbc5baa9f93f87513abin0 -> 44 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/08492d3d0994005206d1d3213b8747d1026ae1ebbin0 -> 60 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/09938e3256d06a8e168eb038d8a58b8462f7f697bin0 -> 61 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/0aa599e20761777c2cb9b41cd89e5c2e18f82d9ebin0 -> 64 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/0aa7b949.bin1
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/0abd533e.bin2
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/0b275a7f.binbin0 -> 45 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/0d10bb63.binbin0 -> 236 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/0e349b8762703d080b3a696600e21d64c23a2ed3bin0 -> 60 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/0f700e05.binbin0 -> 46 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/0ff4d220.binbin0 -> 42 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/10724098.binbin0 -> 51 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/108e270a272e312fc97ec23004b80fdc7bad3906bin0 -> 53 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/11516d58.binbin0 -> 48 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/11cda3f70be4b507ea936bca93af9ce5aaab3be7bin0 -> 60 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/13501419f349b7855d2e94060bd08b28923d1f37bin0 -> 2047 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/146b7d66ad932c4b623eec8004e286d3705697d3bin0 -> 48 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/14f9a0cda0d64590430218aaf6dedd9be2a3533fbin0 -> 64 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/15ae78a8543a4794a27e6c79b0d34540322b97fdbin0 -> 259 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/1650b19093c56a1e86ee192bd9cd8d2266a9e353bin0 -> 64 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/16753235697083ecc45c117287f1d8ce6ad1ad1abin0 -> 286 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/17d7c718ec2597353a5dd2c78d6717a3d6aabfaebin0 -> 64 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/18d8d274aa7c163fd6d0084d5c25c8623e10c541bin0 -> 64 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/18f00b5f.bin1
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/1939a9021aba59ea2e49d3d0909e6fdf86ac3f9ebin0 -> 39 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/1a69d5fc.binbin0 -> 46 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/1aa6897b6eebb8c68c972cc5025b39c7e60c17febin0 -> 34 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/1cf17783de9e662f3720847f2d83d86dcdcab500bin0 -> 63 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/1cfdde7a.binbin0 -> 252 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/1e92aaa5.binbin0 -> 39 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/1ea5651f.bin1
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/1f992057.binbin0 -> 48 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/20fd12d3670571283dc0c5dbb3fc139a8e943790bin0 -> 262 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/21475569.binbin0 -> 29 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/218c1b123428a07622570947e9b7cdb48c310ca5bin0 -> 46 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/21a2dcda.binbin0 -> 36 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/22ad891a.binbin0 -> 33 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/2463aea879c5ab49f8409d0e5c062c7e086b034bbin0 -> 64 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/24ed80095e58199c52997f174046272f61ce4a8dbin0 -> 33 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/25ab638f.binbin0 -> 252 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/26048c58bd5f2a94843f6fd1e4ab0be04b232636bin0 -> 60 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/26870785fd0564f552af4e0ca418738a85b21086bin0 -> 64 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/2701d1669c2996c097a74c5255d569615357b916bin0 -> 51 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/27ac2ae2.binbin0 -> 45 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/2814d70c.bin1
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/282b6585.binbin0 -> 44 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/2abe64b96e5e72adcf2dcc43444a69d0fb664b66bin0 -> 50 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/2ad6cedd32cd646ba8e25226c7c13a107c1d6447bin0 -> 635 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/2b14c6e618ec95754ea7e24fe6bc5a3a97df6897bin0 -> 60 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/2b40aa21723c7e67e92e74a3083df008461d591cbin0 -> 63 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/2bf69fe6b40734cc3f0abdd765757809b14b0b88bin0 -> 44 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/2c6660ba.binbin0 -> 49 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/2cc6d1f3ee8933518e91b8410781fa6e105b3a15bin0 -> 60 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/2e4805c3.bin3
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/2f20e2decd09b6f211a5469c67efbada355e6c04bin0 -> 64 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/2f3b1cd6780fe475f76f17e9e36541963d993165bin0 -> 60 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/2fb017cd4c34f4af183d03c4a219d2bb36ee2dd6bin0 -> 60 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/30bba77d0f420c4f454011476f3c94e31c50c161bin0 -> 50 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/3224e6cd.binbin0 -> 32 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/326ec4d5.bin1
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/32b11997.binbin0 -> 44 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/32cecacca27b249bd764f852168036c5f962bd16bin0 -> 546 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/330ad4b6.binbin0 -> 43 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/33b4cf1ac251f0ba0c014005ef8207afe1dea623bin0 -> 60 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/33e2ecd5c9bbc1f1dcab29d00195e0ab6d04642dbin0 -> 42 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/340b032d39e2b212828a2bd1a97e2b6b81dcd41bbin0 -> 47 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/34bba9e4.binbin0 -> 49 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/374262a5acf9cde1f480e7b7254c788e1936a4debin0 -> 61 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/37ec9df8.binbin0 -> 101 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/39ea47bb.bin1
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/3aa82376296ab5a33f2921d7705b75b78b683c2dbin0 -> 58 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/3ca5da2f.bin3
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/3dc665f93db294b9ccb8fcec94bcc2a91f3a04e7bin0 -> 44 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/3de41f3f.binbin0 -> 260 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/3e2077a4fd2def7b11e618d46245d0aa85824317bin0 -> 322 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/3e3ae35a.binbin0 -> 60 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/3e787760.binbin0 -> 50 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/3f3069cf26f761366f947e025f7049254d555e7fbin0 -> 46 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/407607d2.binbin0 -> 47 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/40af8d589c76d7912bec06c2ae1f2466065018e7bin0 -> 36 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/418f392319c44d06a018ce4c62569d527829177abin0 -> 44 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/41b31ef0.binbin0 -> 259 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/422708b4.bin1
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/422fa704.binbin0 -> 47 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/42b0afca.binbin0 -> 27 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/43fc6abab9840be5ee614211f17395b5966f6070bin0 -> 71 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/44f342a6.binbin0 -> 39 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/4558ddeb.binbin0 -> 45 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/459c0bf6.binbin0 -> 30 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/468cf8bf3e31e1013c7c6d2288baac47ff90aa63bin0 -> 49 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/4aa883d0.binbin0 -> 67 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/4b7bcb4ae6c0222a1a24d1fb1a5d96519750ca5ebin0 -> 832 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/4c412cc1a775cea041fa270483d610afb72f463bbin0 -> 62 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/4d55d5ae.bin1
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/4db3d4075ed27f2a2311f85dd1d6df028cc5d083bin0 -> 404 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/4eb269c3.binbin0 -> 259 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/4ecfe1be695df0d2489dddb52da8bcdeb6ed779dbin0 -> 49 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/4f97bd97ab5dc6b4c0f62f8459be8a9593dc83b3bin0 -> 60 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/4ff50e49865768323f94116bd98d2314455273ccbin0 -> 48 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/508def44e4d60f237f18a40d7058e58a752a74e1bin0 -> 286 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/51a1abd1.binbin0 -> 27 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/52b5478161de7b2eba0f7bfbc29aea985c8d9ee7bin0 -> 286 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/52ecfedca3b2b26e6999b6afc846f3dbd5d35130bin0 -> 61 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/53d18398c0d484de00afd8d583fe802d55d4da44bin0 -> 59 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/53de507f.bin5
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/540ada69.binbin0 -> 39 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/5413b531fe06923ddf2c9e3eb958769374bc2445bin0 -> 42 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/5429f0da.binbin0 -> 252 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/5435005f.binbin0 -> 34 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/54d0fc6c.bin4
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/55af20415ead0ddd417f37fa91a4c767b749ee341
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/55f6fb1a.binbin0 -> 41 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/5780565e.binbin0 -> 33 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/57918260.bin1
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/58b88a24.binbin0 -> 33 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/597fdab5.binbin0 -> 256 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/59ce7091c00075943d79e857c01ad1af5f38c78ebin0 -> 51 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/59dcfde4.bin3
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/5ac92c4a7fb476393f8275fe4b79a2b13e3bcad9bin0 -> 50 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/5d43ac923d7607a16e3d7bf8b838f52622871251bin0 -> 64 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/5d817877.binbin0 -> 38 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/5e2508e15c79fbe9c2e6c1a393b490356a17efbcbin0 -> 49 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/5f758756.bin2
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/5f820fa8d44229219d0b7c4724e3e40a2ace97f4bin0 -> 257 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/62d05f336176a10a2c339c04d818f23b6e9a2637bin0 -> 64 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/6499e2db.binbin0 -> 46 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/64cdbb31d5eda779d07885fa7881812db7800c05bin0 -> 527 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/65077d2946cfb822cf92c9dfc44517a34589f277bin0 -> 64 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/65099066.binbin0 -> 261 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/652bfdce.binbin0 -> 50 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/65d5ae42e6acb429459a1e1a5fb35f09c0f95de2bin0 -> 63 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/65fd6cb3058ee0baae854cc7859b7c0c1e1c1166bin0 -> 44 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/6652f7be83a876214affc3f230040757f7db4ea8bin0 -> 64 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/67b04816.binbin0 -> 43 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/67ebf074c7f928c4fe32fef44e5c958cf441c93cbin0 -> 50 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/68f564fd8064233897ff704b5955b33a2e29293abin0 -> 61 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/69891e9f.binbin0 -> 252 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/6dc4455c.binbin0 -> 33 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/6e050e98.binbin0 -> 243 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/6f9d75e1af7ae7010d32872da888a582a25fddb4bin0 -> 46 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/70ebe7f32c63ca8940017eb83e6db4d8b39ee03cbin0 -> 43 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/712300b98afdb5f0d15c657c13cea76841164b13bin0 -> 60 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/71ab07577909ca4b766f8ea0c6b8ec2bc395fc66bin0 -> 39 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/72296cf9e1052ced4b60e2053aba9f1a569144e9bin0 -> 60 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/7342b3febb07521e39abdf4ee976d16199d51239bin0 -> 50 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/746715fe.binbin0 -> 252 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/76294f12a5974e9f87d8f092d0df5429cf6c0466bin0 -> 59 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/769f5d079151d1b5cab388c47a74f3c297c18d58bin0 -> 60 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/7b453adcb9c4bf31dbc448ff32c2bc90ebcbdf0fbin0 -> 61 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/7f15bbce.bin1
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/7ffd05db.binbin0 -> 264 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/81fb19dfcb3c3a18fd9e7c177356479503e75e6fbin0 -> 61 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/82dda42ddde662192ebaa96788945b7673bb486bbin0 -> 63 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/8338ebee.binbin0 -> 43 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/86a19d13cc65790696299c819cac17b14e337647bin0 -> 50 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/86e6dbf2.binbin0 -> 263 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/88e1329b.binbin0 -> 44 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/8b186384.binbin0 -> 42 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/8c04817a75fddd71f13779f2ad5b994f45c333a2bin0 -> 44 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/8c72c3f35e9b9fd168ad9024c953a703f33ae3c1bin0 -> 60 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/8c760938a2a72fa92b27e00e05005e2e4c429359bin0 -> 257 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/8da521d9.binbin0 -> 26 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/8de81717.binbin0 -> 42 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/90224b8e.binbin0 -> 46 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/90240c7c.binbin0 -> 47 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/9099ac4e83f6460c80b5557c87f653e4c65aa091bin0 -> 636 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/914ed07570b6441365a3636d05850f7316c7f2a8bin0 -> 49 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/916b825da0ffc46fdb6120b1044e98ae158fce70bin0 -> 43 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/93beeba2.binbin0 -> 266 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/93c3ffcb7e3bcb5ed7e37a5b3dfb97b43ca42718bin0 -> 60 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/9540d3ad3fa75bfb95c0d57cefd737611c7069a5bin0 -> 236 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/954337ef.binbin0 -> 25 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/95d25ba2e190fafa2b3ca1e1c467b9ef64868962bin0 -> 46 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/9764015f89a0b7a59f3b5359b0a037b38d6e39d7bin0 -> 61 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/97aed4bd.binbin0 -> 48 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/9953eb28aa1ed661612a4710a9d16a15de4ae353bin0 -> 45 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/9bf7553a.bin1
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/9d2d18fce18c790035d8f67ed798703bdda0a949bin0 -> 513 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/a112d484b70e778835fcd478fd651828720791e5bin0 -> 63 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/a24bf2dc.binbin0 -> 31 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/a357658d.bin1
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/a3a2b1af.binbin0 -> 40 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/a5348197.binbin0 -> 262 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/a5cc3762cb2b2cac316c60ddee794016057fb4ffbin0 -> 60 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/a7e64803.binbin0 -> 114966 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/a8d229374635fa6f2a75ca1669892e1bc244e719bin0 -> 60 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/a8f2345b2c949e9e32a434c99accf771f405eb65bin0 -> 261 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/a9463428cdc47d37efb6e3c5633d1e5e78911f16bin0 -> 48 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/a9966f7181d08f6a9ff8158736ad77a285d743a6bin0 -> 100 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/a9e22d93.binbin0 -> 39 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/aa3c8974.binbin0 -> 45 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/aa825693.binbin0 -> 29 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/aa8729d7.binbin0 -> 44 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/ad810f7f.binbin0 -> 33 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/aedefcd9bd7fc10b7bf60372da54c43e953523bdbin0 -> 48 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/b06ce623.binbin0 -> 43 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/b1128694.binbin0 -> 257 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/b220d23a13d98d4815b1f7a3e4fe7dd8672b1c83bin0 -> 60 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/b28959dd.bin1
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/b431df13.binbin0 -> 26 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/b5acaa52.binbin0 -> 45 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/b7ce4a4f6eea20c0b83d9f7fa8406a0730ee0040bin0 -> 347 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/b829143b.binbin0 -> 245 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/b887097732b9c30719f6c7ea7a7cbac531512a31bin0 -> 61 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/b924c842.binbin0 -> 42 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/bad4f467.binbin0 -> 45 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/bd63e44a3b004e7ed471c2367c3efae2c58a676dbin0 -> 61 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/be9b6e78.binbin0 -> 265 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/bf5e21c32becb5839deeb81e9174cf6478a25473bin0 -> 45 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/bfb55acd5b66521eb5bd8ce6b57b3b6895883675bin0 -> 43 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/bfcbffa9.binbin0 -> 42 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/c004455e9d60bc2fff094e79cd0b38507023e018bin0 -> 60 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/c039ac9a5a570f8fd9064df9320890b885edf9c3bin0 -> 63 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/c1188b44.binbin0 -> 29 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/c12835aa9f3513d3f7179ee4f9976292713f7cb9bin0 -> 262 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/c13188118af1634061b6a3947b81618891aeb6a3bin0 -> 60 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/c35968bf.bin1
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/c43d97f2.binbin0 -> 252 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/c4534867.binbin0 -> 42 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/c559f565.bin3
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/c56fada76f5c198232201a608072a1a63e3d3785bin0 -> 60 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/c66e84d1.binbin0 -> 45 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/c6a1d2cc8935808b6e317a69baec1c3cb87cac94bin0 -> 61 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/c7c44b98faa21c8f0645a818a65b60d956d15952bin0 -> 39 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/c8073f5f41970fab4738215e42ec97a4383855e5bin0 -> 49 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/c81dec02.binbin0 -> 38 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/c8812dc8a1ab1592a2d7b71300e1a0a5da6a6382bin0 -> 60 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/ca843c66c4c4807ccb1615b472c79bc459e5c6cbbin0 -> 61 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/cbb04be69714f81f5cd09e36e8ea4e69ea73d618bin0 -> 60 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/cca29902.binbin0 -> 60 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/cdba6c45.binbin0 -> 264 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/crash-0f4b135c0242669ce425d2662168e9440f8a628dbin0 -> 48 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/crash-239cc27a23827ea53b60ccbaee0ecc64dad2bff0bin0 -> 53 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/crash-7e121dd3be057176369bea160d873040b32a03dcbin0 -> 61 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/crash-e34b0a9a428001cb4094a9ebca76329f578811a42
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/d0f7eebc.bin1
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/d2031009d3783fcf083963fa30bb493f7f935541bin0 -> 101 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/d28155c6c92642c61dfb097f7b2eb1d6ced272c0bin0 -> 46 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/d6979f0f.binbin0 -> 42 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/d9074e68.binbin0 -> 46 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/d95556cac07e720909aaf2ac09d876106420463fbin0 -> 59 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/da7e44a9.bin4
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/dab172ff.binbin0 -> 45 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/db33559d4afb4c32e68525c000fde16a4c3300f5bin0 -> 64 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/dcabac1ef8b197ef39b188bcf5dc470f9749e903bin0 -> 260 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/e0d9a9a7.binbin0 -> 265 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/e2652fbb.binbin0 -> 33 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/e2c954e1.binbin0 -> 43 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/e3bab014.binbin0 -> 287 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/e9d96662.binbin0 -> 33 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/eb66106b.binbin0 -> 43 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/eba8472a.binbin0 -> 46 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/ed8da77f.bin1
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/f0387dfdd6b8c925d958113e669ec4a1897034b4bin0 -> 60 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/f1121b952e75463cc71137683dc2528f9cbc19b7bin0 -> 60 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/f3220426.binbin0 -> 46 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/f3d084cf20b92a5f026fe7cc6e5af49bde28693dbin0 -> 45 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/f4024b01.binbin0 -> 39 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/f541d27e.binbin0 -> 264 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/f5424a9d7bd14317b6de7b15587df28bfde8362dbin0 -> 832 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/f5c877c4.binbin0 -> 45 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/f74b9428.binbin0 -> 48 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/f7bf0d7bb0dd6e1866ccef9fafc3cb295db2f07fbin0 -> 61 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/f826100f.binbin0 -> 33 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/f88ffb7f3066f2706cfcd9be077595e07834cc15bin0 -> 60 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/f8b46e92c7ceb4c2f2cdcb3452a6d8c58768eaa2bin0 -> 47 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/fa36b4280d9e28edd81c5e4d192d1a5c2765e5e4bin0 -> 47 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/fb3b0d80.binbin0 -> 38 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/fd14bea45ecaf13af0053900edb2f17b71a0bf09bin0 -> 832 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/fd26e0a6.binbin0 -> 51 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/fd943e69304dffebf47e1e40b0849e12abeee287bin0 -> 60 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/fdf67df81857577361d319e76559c5e85a257b07bin0 -> 50 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/fe1957b9bc7c6bf9d8b6089c422d72a0f444da6ebin0 -> 62 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/fe66893c.binbin0 -> 35 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/fe69ddfa5827dd560bb0b5d4da7d982273f17ef9bin0 -> 286 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/ff227015.binbin0 -> 252 bytes
-rw-r--r--test/core/end2end/fuzzers/server_fuzzer_corpus/ff898c08.binbin0 -> 37 bytes
-rwxr-xr-xtest/core/end2end/gen_build_yaml.py1
-rw-r--r--test/core/end2end/tests/bad_hostname.c2
-rw-r--r--test/core/end2end/tests/binary_metadata.c2
-rw-r--r--test/core/end2end/tests/call_creds.c2
-rw-r--r--test/core/end2end/tests/cancel_after_accept.c2
-rw-r--r--test/core/end2end/tests/cancel_after_client_done.c2
-rw-r--r--test/core/end2end/tests/cancel_after_invoke.c2
-rw-r--r--test/core/end2end/tests/cancel_before_invoke.c2
-rw-r--r--test/core/end2end/tests/cancel_in_a_vacuum.c2
-rw-r--r--test/core/end2end/tests/cancel_with_status.c2
-rw-r--r--test/core/end2end/tests/compressed_payload.c2
-rw-r--r--test/core/end2end/tests/connectivity.c2
-rw-r--r--test/core/end2end/tests/default_host.c2
-rw-r--r--test/core/end2end/tests/disappearing_server.c2
-rw-r--r--test/core/end2end/tests/empty_batch.c2
-rw-r--r--test/core/end2end/tests/filter_causes_close.c289
-rw-r--r--test/core/end2end/tests/graceful_server_shutdown.c2
-rw-r--r--test/core/end2end/tests/high_initial_seqno.c2
-rw-r--r--test/core/end2end/tests/hpack_size.c2
-rw-r--r--test/core/end2end/tests/idempotent_request.c2
-rw-r--r--test/core/end2end/tests/invoke_large_request.c2
-rw-r--r--test/core/end2end/tests/large_metadata.c2
-rw-r--r--test/core/end2end/tests/max_concurrent_streams.c2
-rw-r--r--test/core/end2end/tests/max_message_length.c2
-rw-r--r--test/core/end2end/tests/negative_deadline.c2
-rw-r--r--test/core/end2end/tests/no_op.c2
-rw-r--r--test/core/end2end/tests/payload.c2
-rw-r--r--test/core/end2end/tests/ping.c2
-rw-r--r--test/core/end2end/tests/ping_pong_streaming.c2
-rw-r--r--test/core/end2end/tests/registered_call.c2
-rw-r--r--test/core/end2end/tests/request_with_flags.c2
-rw-r--r--test/core/end2end/tests/request_with_payload.c2
-rw-r--r--test/core/end2end/tests/server_finishes_request.c2
-rw-r--r--test/core/end2end/tests/shutdown_finishes_calls.c2
-rw-r--r--test/core/end2end/tests/shutdown_finishes_tags.c2
-rw-r--r--test/core/end2end/tests/simple_delayed_request.c2
-rw-r--r--test/core/end2end/tests/simple_metadata.c2
-rw-r--r--test/core/end2end/tests/simple_request.c2
-rw-r--r--test/core/end2end/tests/trailing_metadata.c2
-rw-r--r--test/core/http/corpus/3787bcc22ef645e665cc5f722b8a633af86de9cf9
-rw-r--r--test/core/http/corpus/ae8ba95d7dbe99926a8f5bfd80347fd6a4b616a017
-rw-r--r--test/core/http/corpus/d39c8ee11a697634a09b309460c0bbd967e7effa17
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/7ff3b6239b04479a9caf67f45b2d0c619f712815bin0 -> 48 bytes
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/d1c7ae01a81a122c2fd7c5d8debcae7566e9ee2fbin0 -> 29 bytes
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/ff2c949863eb4e14d9e835c51591304403d91b6cbin0 -> 5 bytes
-rw-r--r--test/core/transport/chttp2/hpack_parser_fuzzer_test.c3
-rw-r--r--test/core/util/mock_endpoint.c124
-rw-r--r--test/core/util/mock_endpoint.h43
355 files changed, 946 insertions, 2 deletions
diff --git a/test/core/bad_client/bad_client.c b/test/core/bad_client/bad_client.c
index 79da278b3c..cd5b541249 100644
--- a/test/core/bad_client/bad_client.c
+++ b/test/core/bad_client/bad_client.c
@@ -34,12 +34,15 @@
#include "test/core/bad_client/bad_client.h"
#include <grpc/support/alloc.h>
+#include <grpc/support/string_util.h>
#include <grpc/support/sync.h>
#include <grpc/support/thd.h>
+#include <stdio.h>
#include "src/core/ext/transport/chttp2/transport/chttp2_transport.h"
#include "src/core/lib/channel/channel_stack.h"
#include "src/core/lib/channel/http_server_filter.h"
#include "src/core/lib/iomgr/endpoint_pair.h"
+#include "src/core/lib/support/murmur_hash.h"
#include "src/core/lib/support/string.h"
#include "src/core/lib/surface/completion_queue.h"
#include "src/core/lib/surface/server.h"
diff --git a/test/core/end2end/end2end_nosec_tests.c b/test/core/end2end/end2end_nosec_tests.c
index deb73395e0..b71299c09e 100644
--- a/test/core/end2end/end2end_nosec_tests.c
+++ b/test/core/end2end/end2end_nosec_tests.c
@@ -36,51 +36,136 @@
#include "test/core/end2end/end2end_tests.h"
+#include <stdbool.h>
#include <string.h>
#include <grpc/support/log.h>
+static bool g_pre_init_called = false;
+
extern void bad_hostname(grpc_end2end_test_config config);
+extern void bad_hostname_pre_init(void);
extern void binary_metadata(grpc_end2end_test_config config);
+extern void binary_metadata_pre_init(void);
extern void cancel_after_accept(grpc_end2end_test_config config);
+extern void cancel_after_accept_pre_init(void);
extern void cancel_after_client_done(grpc_end2end_test_config config);
+extern void cancel_after_client_done_pre_init(void);
extern void cancel_after_invoke(grpc_end2end_test_config config);
+extern void cancel_after_invoke_pre_init(void);
extern void cancel_before_invoke(grpc_end2end_test_config config);
+extern void cancel_before_invoke_pre_init(void);
extern void cancel_in_a_vacuum(grpc_end2end_test_config config);
+extern void cancel_in_a_vacuum_pre_init(void);
extern void cancel_with_status(grpc_end2end_test_config config);
+extern void cancel_with_status_pre_init(void);
extern void compressed_payload(grpc_end2end_test_config config);
+extern void compressed_payload_pre_init(void);
extern void connectivity(grpc_end2end_test_config config);
+extern void connectivity_pre_init(void);
extern void default_host(grpc_end2end_test_config config);
+extern void default_host_pre_init(void);
extern void disappearing_server(grpc_end2end_test_config config);
+extern void disappearing_server_pre_init(void);
extern void empty_batch(grpc_end2end_test_config config);
+extern void empty_batch_pre_init(void);
+extern void filter_causes_close(grpc_end2end_test_config config);
+extern void filter_causes_close_pre_init(void);
extern void graceful_server_shutdown(grpc_end2end_test_config config);
+extern void graceful_server_shutdown_pre_init(void);
extern void high_initial_seqno(grpc_end2end_test_config config);
+extern void high_initial_seqno_pre_init(void);
extern void hpack_size(grpc_end2end_test_config config);
+extern void hpack_size_pre_init(void);
extern void idempotent_request(grpc_end2end_test_config config);
+extern void idempotent_request_pre_init(void);
extern void invoke_large_request(grpc_end2end_test_config config);
+extern void invoke_large_request_pre_init(void);
extern void large_metadata(grpc_end2end_test_config config);
+extern void large_metadata_pre_init(void);
extern void max_concurrent_streams(grpc_end2end_test_config config);
+extern void max_concurrent_streams_pre_init(void);
extern void max_message_length(grpc_end2end_test_config config);
+extern void max_message_length_pre_init(void);
extern void negative_deadline(grpc_end2end_test_config config);
+extern void negative_deadline_pre_init(void);
extern void no_op(grpc_end2end_test_config config);
+extern void no_op_pre_init(void);
extern void payload(grpc_end2end_test_config config);
+extern void payload_pre_init(void);
extern void ping(grpc_end2end_test_config config);
+extern void ping_pre_init(void);
extern void ping_pong_streaming(grpc_end2end_test_config config);
+extern void ping_pong_streaming_pre_init(void);
extern void registered_call(grpc_end2end_test_config config);
+extern void registered_call_pre_init(void);
extern void request_with_flags(grpc_end2end_test_config config);
+extern void request_with_flags_pre_init(void);
extern void request_with_payload(grpc_end2end_test_config config);
+extern void request_with_payload_pre_init(void);
extern void server_finishes_request(grpc_end2end_test_config config);
+extern void server_finishes_request_pre_init(void);
extern void shutdown_finishes_calls(grpc_end2end_test_config config);
+extern void shutdown_finishes_calls_pre_init(void);
extern void shutdown_finishes_tags(grpc_end2end_test_config config);
+extern void shutdown_finishes_tags_pre_init(void);
extern void simple_delayed_request(grpc_end2end_test_config config);
+extern void simple_delayed_request_pre_init(void);
extern void simple_metadata(grpc_end2end_test_config config);
+extern void simple_metadata_pre_init(void);
extern void simple_request(grpc_end2end_test_config config);
+extern void simple_request_pre_init(void);
extern void trailing_metadata(grpc_end2end_test_config config);
+extern void trailing_metadata_pre_init(void);
+
+void grpc_end2end_tests_pre_init(void) {
+ GPR_ASSERT(!g_pre_init_called);
+ g_pre_init_called = true;
+ bad_hostname_pre_init();
+ binary_metadata_pre_init();
+ cancel_after_accept_pre_init();
+ cancel_after_client_done_pre_init();
+ cancel_after_invoke_pre_init();
+ cancel_before_invoke_pre_init();
+ cancel_in_a_vacuum_pre_init();
+ cancel_with_status_pre_init();
+ compressed_payload_pre_init();
+ connectivity_pre_init();
+ default_host_pre_init();
+ disappearing_server_pre_init();
+ empty_batch_pre_init();
+ filter_causes_close_pre_init();
+ graceful_server_shutdown_pre_init();
+ high_initial_seqno_pre_init();
+ hpack_size_pre_init();
+ idempotent_request_pre_init();
+ invoke_large_request_pre_init();
+ large_metadata_pre_init();
+ max_concurrent_streams_pre_init();
+ max_message_length_pre_init();
+ negative_deadline_pre_init();
+ no_op_pre_init();
+ payload_pre_init();
+ ping_pre_init();
+ ping_pong_streaming_pre_init();
+ registered_call_pre_init();
+ request_with_flags_pre_init();
+ request_with_payload_pre_init();
+ server_finishes_request_pre_init();
+ shutdown_finishes_calls_pre_init();
+ shutdown_finishes_tags_pre_init();
+ simple_delayed_request_pre_init();
+ simple_metadata_pre_init();
+ simple_request_pre_init();
+ trailing_metadata_pre_init();
+}
void grpc_end2end_tests(int argc, char **argv,
grpc_end2end_test_config config) {
int i;
+ GPR_ASSERT(g_pre_init_called);
+
if (argc <= 1) {
bad_hostname(config);
binary_metadata(config);
@@ -95,6 +180,7 @@ void grpc_end2end_tests(int argc, char **argv,
default_host(config);
disappearing_server(config);
empty_batch(config);
+ filter_causes_close(config);
graceful_server_shutdown(config);
high_initial_seqno(config);
hpack_size(config);
@@ -174,6 +260,10 @@ void grpc_end2end_tests(int argc, char **argv,
empty_batch(config);
continue;
}
+ if (0 == strcmp("filter_causes_close", argv[i])) {
+ filter_causes_close(config);
+ continue;
+ }
if (0 == strcmp("graceful_server_shutdown", argv[i])) {
graceful_server_shutdown(config);
continue;
diff --git a/test/core/end2end/end2end_tests.c b/test/core/end2end/end2end_tests.c
index dd7f6a2a31..00c9c44a78 100644
--- a/test/core/end2end/end2end_tests.c
+++ b/test/core/end2end/end2end_tests.c
@@ -36,52 +36,139 @@
#include "test/core/end2end/end2end_tests.h"
+#include <stdbool.h>
#include <string.h>
#include <grpc/support/log.h>
+static bool g_pre_init_called = false;
+
extern void bad_hostname(grpc_end2end_test_config config);
+extern void bad_hostname_pre_init(void);
extern void binary_metadata(grpc_end2end_test_config config);
+extern void binary_metadata_pre_init(void);
extern void call_creds(grpc_end2end_test_config config);
+extern void call_creds_pre_init(void);
extern void cancel_after_accept(grpc_end2end_test_config config);
+extern void cancel_after_accept_pre_init(void);
extern void cancel_after_client_done(grpc_end2end_test_config config);
+extern void cancel_after_client_done_pre_init(void);
extern void cancel_after_invoke(grpc_end2end_test_config config);
+extern void cancel_after_invoke_pre_init(void);
extern void cancel_before_invoke(grpc_end2end_test_config config);
+extern void cancel_before_invoke_pre_init(void);
extern void cancel_in_a_vacuum(grpc_end2end_test_config config);
+extern void cancel_in_a_vacuum_pre_init(void);
extern void cancel_with_status(grpc_end2end_test_config config);
+extern void cancel_with_status_pre_init(void);
extern void compressed_payload(grpc_end2end_test_config config);
+extern void compressed_payload_pre_init(void);
extern void connectivity(grpc_end2end_test_config config);
+extern void connectivity_pre_init(void);
extern void default_host(grpc_end2end_test_config config);
+extern void default_host_pre_init(void);
extern void disappearing_server(grpc_end2end_test_config config);
+extern void disappearing_server_pre_init(void);
extern void empty_batch(grpc_end2end_test_config config);
+extern void empty_batch_pre_init(void);
+extern void filter_causes_close(grpc_end2end_test_config config);
+extern void filter_causes_close_pre_init(void);
extern void graceful_server_shutdown(grpc_end2end_test_config config);
+extern void graceful_server_shutdown_pre_init(void);
extern void high_initial_seqno(grpc_end2end_test_config config);
+extern void high_initial_seqno_pre_init(void);
extern void hpack_size(grpc_end2end_test_config config);
+extern void hpack_size_pre_init(void);
extern void idempotent_request(grpc_end2end_test_config config);
+extern void idempotent_request_pre_init(void);
extern void invoke_large_request(grpc_end2end_test_config config);
+extern void invoke_large_request_pre_init(void);
extern void large_metadata(grpc_end2end_test_config config);
+extern void large_metadata_pre_init(void);
extern void max_concurrent_streams(grpc_end2end_test_config config);
+extern void max_concurrent_streams_pre_init(void);
extern void max_message_length(grpc_end2end_test_config config);
+extern void max_message_length_pre_init(void);
extern void negative_deadline(grpc_end2end_test_config config);
+extern void negative_deadline_pre_init(void);
extern void no_op(grpc_end2end_test_config config);
+extern void no_op_pre_init(void);
extern void payload(grpc_end2end_test_config config);
+extern void payload_pre_init(void);
extern void ping(grpc_end2end_test_config config);
+extern void ping_pre_init(void);
extern void ping_pong_streaming(grpc_end2end_test_config config);
+extern void ping_pong_streaming_pre_init(void);
extern void registered_call(grpc_end2end_test_config config);
+extern void registered_call_pre_init(void);
extern void request_with_flags(grpc_end2end_test_config config);
+extern void request_with_flags_pre_init(void);
extern void request_with_payload(grpc_end2end_test_config config);
+extern void request_with_payload_pre_init(void);
extern void server_finishes_request(grpc_end2end_test_config config);
+extern void server_finishes_request_pre_init(void);
extern void shutdown_finishes_calls(grpc_end2end_test_config config);
+extern void shutdown_finishes_calls_pre_init(void);
extern void shutdown_finishes_tags(grpc_end2end_test_config config);
+extern void shutdown_finishes_tags_pre_init(void);
extern void simple_delayed_request(grpc_end2end_test_config config);
+extern void simple_delayed_request_pre_init(void);
extern void simple_metadata(grpc_end2end_test_config config);
+extern void simple_metadata_pre_init(void);
extern void simple_request(grpc_end2end_test_config config);
+extern void simple_request_pre_init(void);
extern void trailing_metadata(grpc_end2end_test_config config);
+extern void trailing_metadata_pre_init(void);
+
+void grpc_end2end_tests_pre_init(void) {
+ GPR_ASSERT(!g_pre_init_called);
+ g_pre_init_called = true;
+ bad_hostname_pre_init();
+ binary_metadata_pre_init();
+ call_creds_pre_init();
+ cancel_after_accept_pre_init();
+ cancel_after_client_done_pre_init();
+ cancel_after_invoke_pre_init();
+ cancel_before_invoke_pre_init();
+ cancel_in_a_vacuum_pre_init();
+ cancel_with_status_pre_init();
+ compressed_payload_pre_init();
+ connectivity_pre_init();
+ default_host_pre_init();
+ disappearing_server_pre_init();
+ empty_batch_pre_init();
+ filter_causes_close_pre_init();
+ graceful_server_shutdown_pre_init();
+ high_initial_seqno_pre_init();
+ hpack_size_pre_init();
+ idempotent_request_pre_init();
+ invoke_large_request_pre_init();
+ large_metadata_pre_init();
+ max_concurrent_streams_pre_init();
+ max_message_length_pre_init();
+ negative_deadline_pre_init();
+ no_op_pre_init();
+ payload_pre_init();
+ ping_pre_init();
+ ping_pong_streaming_pre_init();
+ registered_call_pre_init();
+ request_with_flags_pre_init();
+ request_with_payload_pre_init();
+ server_finishes_request_pre_init();
+ shutdown_finishes_calls_pre_init();
+ shutdown_finishes_tags_pre_init();
+ simple_delayed_request_pre_init();
+ simple_metadata_pre_init();
+ simple_request_pre_init();
+ trailing_metadata_pre_init();
+}
void grpc_end2end_tests(int argc, char **argv,
grpc_end2end_test_config config) {
int i;
+ GPR_ASSERT(g_pre_init_called);
+
if (argc <= 1) {
bad_hostname(config);
binary_metadata(config);
@@ -97,6 +184,7 @@ void grpc_end2end_tests(int argc, char **argv,
default_host(config);
disappearing_server(config);
empty_batch(config);
+ filter_causes_close(config);
graceful_server_shutdown(config);
high_initial_seqno(config);
hpack_size(config);
@@ -180,6 +268,10 @@ void grpc_end2end_tests(int argc, char **argv,
empty_batch(config);
continue;
}
+ if (0 == strcmp("filter_causes_close", argv[i])) {
+ filter_causes_close(config);
+ continue;
+ }
if (0 == strcmp("graceful_server_shutdown", argv[i])) {
graceful_server_shutdown(config);
continue;
diff --git a/test/core/end2end/end2end_tests.h b/test/core/end2end/end2end_tests.h
index bc44f43a17..dfa041c0c6 100644
--- a/test/core/end2end/end2end_tests.h
+++ b/test/core/end2end/end2end_tests.h
@@ -64,6 +64,7 @@ struct grpc_end2end_test_config {
void (*tear_down_data)(grpc_end2end_test_fixture *f);
};
+void grpc_end2end_tests_pre_init(void);
void grpc_end2end_tests(int argc, char **argv, grpc_end2end_test_config config);
#endif /* GRPC_TEST_CORE_END2END_END2END_TESTS_H */
diff --git a/test/core/end2end/fixtures/h2_census.c b/test/core/end2end/fixtures/h2_census.c
index eb66aff24b..ff2f028f09 100644
--- a/test/core/end2end/fixtures/h2_census.c
+++ b/test/core/end2end/fixtures/h2_census.c
@@ -120,6 +120,7 @@ int main(int argc, char **argv) {
size_t i;
grpc_test_init(argc, argv);
+ grpc_end2end_tests_pre_init();
grpc_init();
for (i = 0; i < sizeof(configs) / sizeof(*configs); i++) {
diff --git a/test/core/end2end/fixtures/h2_compress.c b/test/core/end2end/fixtures/h2_compress.c
index 1b53381e91..8f9b7c9cd9 100644
--- a/test/core/end2end/fixtures/h2_compress.c
+++ b/test/core/end2end/fixtures/h2_compress.c
@@ -124,6 +124,7 @@ int main(int argc, char **argv) {
size_t i;
grpc_test_init(argc, argv);
+ grpc_end2end_tests_pre_init();
grpc_init();
for (i = 0; i < sizeof(configs) / sizeof(*configs); i++) {
diff --git a/test/core/end2end/fixtures/h2_fakesec.c b/test/core/end2end/fixtures/h2_fakesec.c
index a312585946..246619bf68 100644
--- a/test/core/end2end/fixtures/h2_fakesec.c
+++ b/test/core/end2end/fixtures/h2_fakesec.c
@@ -150,7 +150,7 @@ static grpc_end2end_test_config configs[] = {
int main(int argc, char **argv) {
size_t i;
grpc_test_init(argc, argv);
-
+ grpc_end2end_tests_pre_init();
grpc_init();
for (i = 0; i < sizeof(configs) / sizeof(*configs); i++) {
diff --git a/test/core/end2end/fixtures/h2_full+pipe.c b/test/core/end2end/fixtures/h2_full+pipe.c
index e167534da4..e7dfc561a1 100644
--- a/test/core/end2end/fixtures/h2_full+pipe.c
+++ b/test/core/end2end/fixtures/h2_full+pipe.c
@@ -108,6 +108,7 @@ int main(int argc, char **argv) {
grpc_allow_specialized_wakeup_fd = 0;
grpc_test_init(argc, argv);
+ grpc_end2end_tests_pre_init();
grpc_init();
for (i = 0; i < sizeof(configs) / sizeof(*configs); i++) {
diff --git a/test/core/end2end/fixtures/h2_full+trace.c b/test/core/end2end/fixtures/h2_full+trace.c
index 4bb0bf3e8e..c4dc5b9bc1 100644
--- a/test/core/end2end/fixtures/h2_full+trace.c
+++ b/test/core/end2end/fixtures/h2_full+trace.c
@@ -116,6 +116,7 @@ int main(int argc, char **argv) {
#endif
grpc_test_init(argc, argv);
+ grpc_end2end_tests_pre_init();
grpc_init();
GPR_ASSERT(0 == grpc_tracer_set_enabled("also-doesnt-exist", 0));
diff --git a/test/core/end2end/fixtures/h2_full.c b/test/core/end2end/fixtures/h2_full.c
index 6182f592cb..4a2f17eb91 100644
--- a/test/core/end2end/fixtures/h2_full.c
+++ b/test/core/end2end/fixtures/h2_full.c
@@ -105,6 +105,7 @@ int main(int argc, char **argv) {
size_t i;
grpc_test_init(argc, argv);
+ grpc_end2end_tests_pre_init();
grpc_init();
for (i = 0; i < sizeof(configs) / sizeof(*configs); i++) {
diff --git a/test/core/end2end/fixtures/h2_oauth2.c b/test/core/end2end/fixtures/h2_oauth2.c
index 9e7d8d3125..550ff33140 100644
--- a/test/core/end2end/fixtures/h2_oauth2.c
+++ b/test/core/end2end/fixtures/h2_oauth2.c
@@ -226,7 +226,7 @@ static grpc_end2end_test_config configs[] = {
int main(int argc, char **argv) {
size_t i;
grpc_test_init(argc, argv);
-
+ grpc_end2end_tests_pre_init();
grpc_init();
for (i = 0; i < sizeof(configs) / sizeof(*configs); i++) {
diff --git a/test/core/end2end/fixtures/h2_proxy.c b/test/core/end2end/fixtures/h2_proxy.c
index 7eb42c4d2c..863673a4e0 100644
--- a/test/core/end2end/fixtures/h2_proxy.c
+++ b/test/core/end2end/fixtures/h2_proxy.c
@@ -120,6 +120,7 @@ int main(int argc, char **argv) {
size_t i;
grpc_test_init(argc, argv);
+ grpc_end2end_tests_pre_init();
grpc_init();
for (i = 0; i < sizeof(configs) / sizeof(*configs); i++) {
diff --git a/test/core/end2end/fixtures/h2_sockpair+trace.c b/test/core/end2end/fixtures/h2_sockpair+trace.c
index f88a778203..87533a9b7f 100644
--- a/test/core/end2end/fixtures/h2_sockpair+trace.c
+++ b/test/core/end2end/fixtures/h2_sockpair+trace.c
@@ -150,6 +150,7 @@ int main(int argc, char **argv) {
#endif
grpc_test_init(argc, argv);
+ grpc_end2end_tests_pre_init();
grpc_init();
grpc_exec_ctx_finish(&exec_ctx);
diff --git a/test/core/end2end/fixtures/h2_sockpair.c b/test/core/end2end/fixtures/h2_sockpair.c
index 5a7aa50a63..f28147cf40 100644
--- a/test/core/end2end/fixtures/h2_sockpair.c
+++ b/test/core/end2end/fixtures/h2_sockpair.c
@@ -139,6 +139,7 @@ int main(int argc, char **argv) {
size_t i;
grpc_test_init(argc, argv);
+ grpc_end2end_tests_pre_init();
grpc_init();
for (i = 0; i < sizeof(configs) / sizeof(*configs); i++) {
diff --git a/test/core/end2end/fixtures/h2_sockpair_1byte.c b/test/core/end2end/fixtures/h2_sockpair_1byte.c
index 18f3dc2ab0..302b16b372 100644
--- a/test/core/end2end/fixtures/h2_sockpair_1byte.c
+++ b/test/core/end2end/fixtures/h2_sockpair_1byte.c
@@ -139,6 +139,7 @@ int main(int argc, char **argv) {
size_t i;
grpc_test_init(argc, argv);
+ grpc_end2end_tests_pre_init();
grpc_init();
for (i = 0; i < sizeof(configs) / sizeof(*configs); i++) {
diff --git a/test/core/end2end/fixtures/h2_ssl.c b/test/core/end2end/fixtures/h2_ssl.c
index e5a255f7c3..69f7616074 100644
--- a/test/core/end2end/fixtures/h2_ssl.c
+++ b/test/core/end2end/fixtures/h2_ssl.c
@@ -165,6 +165,7 @@ int main(int argc, char **argv) {
char *roots_filename;
grpc_test_init(argc, argv);
+ grpc_end2end_tests_pre_init();
/* Set the SSL roots env var. */
roots_file = gpr_tmpfile("chttp2_simple_ssl_fullstack_test", &roots_filename);
diff --git a/test/core/end2end/fixtures/h2_ssl_proxy.c b/test/core/end2end/fixtures/h2_ssl_proxy.c
index 9edc8a0c23..1403b760f5 100644
--- a/test/core/end2end/fixtures/h2_ssl_proxy.c
+++ b/test/core/end2end/fixtures/h2_ssl_proxy.c
@@ -195,6 +195,7 @@ int main(int argc, char **argv) {
char *roots_filename;
grpc_test_init(argc, argv);
+ grpc_end2end_tests_pre_init();
/* Set the SSL roots env var. */
roots_file = gpr_tmpfile("chttp2_simple_ssl_fullstack_test", &roots_filename);
diff --git a/test/core/end2end/fixtures/h2_uds.c b/test/core/end2end/fixtures/h2_uds.c
index cdbb4ec2cb..cffbeaf045 100644
--- a/test/core/end2end/fixtures/h2_uds.c
+++ b/test/core/end2end/fixtures/h2_uds.c
@@ -110,6 +110,7 @@ int main(int argc, char **argv) {
size_t i;
grpc_test_init(argc, argv);
+ grpc_end2end_tests_pre_init();
grpc_init();
for (i = 0; i < sizeof(configs) / sizeof(*configs); i++) {
diff --git a/test/core/end2end/fuzzers/server_fuzzer.c b/test/core/end2end/fuzzers/server_fuzzer.c
new file mode 100644
index 0000000000..393d33033b
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer.c
@@ -0,0 +1,121 @@
+/*
+ *
+ * Copyright 2016, Google Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+#include <grpc/grpc.h>
+
+#include "src/core/ext/transport/chttp2/transport/chttp2_transport.h"
+#include "src/core/lib/surface/server.h"
+#include "test/core/util/mock_endpoint.h"
+
+static const bool squelch = true;
+
+static void discard_write(gpr_slice slice) {}
+
+static void *tag(int n) { return (void *)(uintptr_t)n; }
+static int detag(void *p) { return (int)(uintptr_t)p; }
+
+static void dont_log(gpr_log_func_args *args) {}
+
+int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
+ grpc_test_only_set_metadata_hash_seed(0);
+ if (squelch) gpr_set_log_function(dont_log);
+ grpc_init();
+ grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT;
+
+ grpc_endpoint *mock_endpoint = grpc_mock_endpoint_create(discard_write);
+ grpc_mock_endpoint_put_read(
+ &exec_ctx, mock_endpoint,
+ gpr_slice_from_copied_buffer((const char *)data, size));
+
+ grpc_server *server = grpc_server_create(NULL, NULL);
+ grpc_completion_queue *cq = grpc_completion_queue_create(NULL);
+ grpc_server_register_completion_queue(server, cq, NULL);
+ // TODO(ctiller): add registered methods (one for POST, one for PUT)
+ // void *registered_method =
+ // grpc_server_register_method(server, "/reg", NULL, 0);
+ grpc_server_start(server);
+ grpc_transport *transport =
+ grpc_create_chttp2_transport(&exec_ctx, NULL, mock_endpoint, 0);
+ grpc_server_setup_transport(&exec_ctx, server, transport, NULL);
+ grpc_chttp2_transport_start_reading(&exec_ctx, transport, NULL, 0);
+
+ grpc_call *call1 = NULL;
+ grpc_call_details call_details1;
+ grpc_metadata_array request_metadata1;
+ grpc_call_details_init(&call_details1);
+ grpc_metadata_array_init(&request_metadata1);
+ int requested_calls = 0;
+
+ grpc_server_request_call(server, &call1, &call_details1, &request_metadata1,
+ cq, cq, tag(1));
+ requested_calls++;
+
+ grpc_event ev;
+ while (1) {
+ grpc_exec_ctx_flush(&exec_ctx);
+ ev = grpc_completion_queue_next(cq, gpr_inf_past(GPR_CLOCK_REALTIME), NULL);
+ switch (ev.type) {
+ case GRPC_QUEUE_TIMEOUT:
+ goto done;
+ case GRPC_QUEUE_SHUTDOWN:
+ break;
+ case GRPC_OP_COMPLETE:
+ switch (detag(ev.tag)) {
+ case 1:
+ requested_calls--;
+ // TODO(ctiller): keep reading that call!
+ break;
+ }
+ }
+ }
+
+done:
+ if (call1 != NULL) grpc_call_destroy(call1);
+ grpc_call_details_destroy(&call_details1);
+ grpc_metadata_array_destroy(&request_metadata1);
+ grpc_server_shutdown_and_notify(server, cq, tag(0xdead));
+ grpc_server_cancel_all_calls(server);
+ for (int i = 0; i <= requested_calls; i++) {
+ ev = grpc_completion_queue_next(cq, gpr_inf_past(GPR_CLOCK_REALTIME), NULL);
+ GPR_ASSERT(ev.type == GRPC_OP_COMPLETE);
+ }
+ grpc_completion_queue_shutdown(cq);
+ for (int i = 0; i <= requested_calls; i++) {
+ ev = grpc_completion_queue_next(cq, gpr_inf_past(GPR_CLOCK_REALTIME), NULL);
+ GPR_ASSERT(ev.type == GRPC_QUEUE_SHUTDOWN);
+ }
+ grpc_server_destroy(server);
+ grpc_completion_queue_destroy(cq);
+ grpc_shutdown();
+ return 0;
+}
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/01c008fa.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/01c008fa.bin
new file mode 100644
index 0000000000..2f670cf2db
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/01c008fa.bin
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/021ec59f.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/021ec59f.bin
new file mode 100644
index 0000000000..b4896fd928
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/021ec59f.bin
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/02918e4ad9e8928845f232c0cb043057add3c9a9 b/test/core/end2end/fuzzers/server_fuzzer_corpus/02918e4ad9e8928845f232c0cb043057add3c9a9
new file mode 100644
index 0000000000..5f53b70b2d
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/02918e4ad9e8928845f232c0cb043057add3c9a9
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/0336e1ff71939de9e2007fdb4aba891e35a37488 b/test/core/end2end/fuzzers/server_fuzzer_corpus/0336e1ff71939de9e2007fdb4aba891e35a37488
new file mode 100644
index 0000000000..c1d8fa1ea4
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/0336e1ff71939de9e2007fdb4aba891e35a37488
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/033dd2f6.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/033dd2f6.bin
new file mode 100644
index 0000000000..732d84630a
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/033dd2f6.bin
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/0384345c.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/0384345c.bin
new file mode 100644
index 0000000000..00c4956d38
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/0384345c.bin
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/03b9be1fa172dff5d1543be079b9c64fa2c9a278 b/test/core/end2end/fuzzers/server_fuzzer_corpus/03b9be1fa172dff5d1543be079b9c64fa2c9a278
new file mode 100644
index 0000000000..94a877e85f
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/03b9be1fa172dff5d1543be079b9c64fa2c9a278
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/05c3a0390d0f52d241728926fa901599a47e4606 b/test/core/end2end/fuzzers/server_fuzzer_corpus/05c3a0390d0f52d241728926fa901599a47e4606
new file mode 100644
index 0000000000..4c657a0330
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/05c3a0390d0f52d241728926fa901599a47e4606
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/06bd2f82fefb9943787d63ea359f9b77072380c2 b/test/core/end2end/fuzzers/server_fuzzer_corpus/06bd2f82fefb9943787d63ea359f9b77072380c2
new file mode 100644
index 0000000000..c3408cf8cb
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/06bd2f82fefb9943787d63ea359f9b77072380c2
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/0766afc7c27c06ea18d896083470d587a380de3c b/test/core/end2end/fuzzers/server_fuzzer_corpus/0766afc7c27c06ea18d896083470d587a380de3c
new file mode 100644
index 0000000000..dbe2ade20e
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/0766afc7c27c06ea18d896083470d587a380de3c
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/07c96c06eddbed5a3ce050436bc805f6821cbc9b b/test/core/end2end/fuzzers/server_fuzzer_corpus/07c96c06eddbed5a3ce050436bc805f6821cbc9b
new file mode 100644
index 0000000000..7d5fb0bdf6
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/07c96c06eddbed5a3ce050436bc805f6821cbc9b
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/081e56ce6f6b1c57adb806fbc5baa9f93f87513a b/test/core/end2end/fuzzers/server_fuzzer_corpus/081e56ce6f6b1c57adb806fbc5baa9f93f87513a
new file mode 100644
index 0000000000..5c01671819
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/081e56ce6f6b1c57adb806fbc5baa9f93f87513a
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/08492d3d0994005206d1d3213b8747d1026ae1eb b/test/core/end2end/fuzzers/server_fuzzer_corpus/08492d3d0994005206d1d3213b8747d1026ae1eb
new file mode 100644
index 0000000000..0910f9362b
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/08492d3d0994005206d1d3213b8747d1026ae1eb
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/09938e3256d06a8e168eb038d8a58b8462f7f697 b/test/core/end2end/fuzzers/server_fuzzer_corpus/09938e3256d06a8e168eb038d8a58b8462f7f697
new file mode 100644
index 0000000000..0c1be25379
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/09938e3256d06a8e168eb038d8a58b8462f7f697
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/0aa599e20761777c2cb9b41cd89e5c2e18f82d9e b/test/core/end2end/fuzzers/server_fuzzer_corpus/0aa599e20761777c2cb9b41cd89e5c2e18f82d9e
new file mode 100644
index 0000000000..efbfeaf539
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/0aa599e20761777c2cb9b41cd89e5c2e18f82d9e
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/0aa7b949.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/0aa7b949.bin
new file mode 100644
index 0000000000..0e22a4504d
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/0aa7b949.bin
@@ -0,0 +1 @@
+PRI * HTTP/2X \ No newline at end of file
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/0abd533e.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/0abd533e.bin
new file mode 100644
index 0000000000..112188c052
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/0abd533e.bin
@@ -0,0 +1,2 @@
+PRI * HTTP/2.0
+ X \ No newline at end of file
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/0b275a7f.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/0b275a7f.bin
new file mode 100644
index 0000000000..853ca7c4f0
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/0b275a7f.bin
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/0d10bb63.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/0d10bb63.bin
new file mode 100644
index 0000000000..50bb312add
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/0d10bb63.bin
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/0e349b8762703d080b3a696600e21d64c23a2ed3 b/test/core/end2end/fuzzers/server_fuzzer_corpus/0e349b8762703d080b3a696600e21d64c23a2ed3
new file mode 100644
index 0000000000..c57226e418
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/0e349b8762703d080b3a696600e21d64c23a2ed3
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/0f700e05.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/0f700e05.bin
new file mode 100644
index 0000000000..f861853d88
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/0f700e05.bin
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/0ff4d220.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/0ff4d220.bin
new file mode 100644
index 0000000000..fc79411662
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/0ff4d220.bin
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/10724098.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/10724098.bin
new file mode 100644
index 0000000000..9d1a39d606
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/10724098.bin
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/108e270a272e312fc97ec23004b80fdc7bad3906 b/test/core/end2end/fuzzers/server_fuzzer_corpus/108e270a272e312fc97ec23004b80fdc7bad3906
new file mode 100644
index 0000000000..2d703ccf53
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/108e270a272e312fc97ec23004b80fdc7bad3906
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/11516d58.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/11516d58.bin
new file mode 100644
index 0000000000..7edd81d660
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/11516d58.bin
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/11cda3f70be4b507ea936bca93af9ce5aaab3be7 b/test/core/end2end/fuzzers/server_fuzzer_corpus/11cda3f70be4b507ea936bca93af9ce5aaab3be7
new file mode 100644
index 0000000000..62cbd41e0f
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/11cda3f70be4b507ea936bca93af9ce5aaab3be7
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/13501419f349b7855d2e94060bd08b28923d1f37 b/test/core/end2end/fuzzers/server_fuzzer_corpus/13501419f349b7855d2e94060bd08b28923d1f37
new file mode 100644
index 0000000000..34906e8b54
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/13501419f349b7855d2e94060bd08b28923d1f37
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/146b7d66ad932c4b623eec8004e286d3705697d3 b/test/core/end2end/fuzzers/server_fuzzer_corpus/146b7d66ad932c4b623eec8004e286d3705697d3
new file mode 100644
index 0000000000..e6a85419cf
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/146b7d66ad932c4b623eec8004e286d3705697d3
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/14f9a0cda0d64590430218aaf6dedd9be2a3533f b/test/core/end2end/fuzzers/server_fuzzer_corpus/14f9a0cda0d64590430218aaf6dedd9be2a3533f
new file mode 100644
index 0000000000..7f448c298d
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/14f9a0cda0d64590430218aaf6dedd9be2a3533f
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/15ae78a8543a4794a27e6c79b0d34540322b97fd b/test/core/end2end/fuzzers/server_fuzzer_corpus/15ae78a8543a4794a27e6c79b0d34540322b97fd
new file mode 100644
index 0000000000..602f456092
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/15ae78a8543a4794a27e6c79b0d34540322b97fd
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/1650b19093c56a1e86ee192bd9cd8d2266a9e353 b/test/core/end2end/fuzzers/server_fuzzer_corpus/1650b19093c56a1e86ee192bd9cd8d2266a9e353
new file mode 100644
index 0000000000..1aab1987da
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/1650b19093c56a1e86ee192bd9cd8d2266a9e353
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/16753235697083ecc45c117287f1d8ce6ad1ad1a b/test/core/end2end/fuzzers/server_fuzzer_corpus/16753235697083ecc45c117287f1d8ce6ad1ad1a
new file mode 100644
index 0000000000..0e4097e57d
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/16753235697083ecc45c117287f1d8ce6ad1ad1a
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/17d7c718ec2597353a5dd2c78d6717a3d6aabfae b/test/core/end2end/fuzzers/server_fuzzer_corpus/17d7c718ec2597353a5dd2c78d6717a3d6aabfae
new file mode 100644
index 0000000000..8f5786f06f
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/17d7c718ec2597353a5dd2c78d6717a3d6aabfae
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/18d8d274aa7c163fd6d0084d5c25c8623e10c541 b/test/core/end2end/fuzzers/server_fuzzer_corpus/18d8d274aa7c163fd6d0084d5c25c8623e10c541
new file mode 100644
index 0000000000..6c44d1a81b
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/18d8d274aa7c163fd6d0084d5c25c8623e10c541
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/18f00b5f.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/18f00b5f.bin
new file mode 100644
index 0000000000..a41cbd4b01
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/18f00b5f.bin
@@ -0,0 +1 @@
+PRI * HTTX \ No newline at end of file
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/1939a9021aba59ea2e49d3d0909e6fdf86ac3f9e b/test/core/end2end/fuzzers/server_fuzzer_corpus/1939a9021aba59ea2e49d3d0909e6fdf86ac3f9e
new file mode 100644
index 0000000000..e5acc977d7
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/1939a9021aba59ea2e49d3d0909e6fdf86ac3f9e
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/1a69d5fc.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/1a69d5fc.bin
new file mode 100644
index 0000000000..db1c0d6d72
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/1a69d5fc.bin
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/1aa6897b6eebb8c68c972cc5025b39c7e60c17fe b/test/core/end2end/fuzzers/server_fuzzer_corpus/1aa6897b6eebb8c68c972cc5025b39c7e60c17fe
new file mode 100644
index 0000000000..699279de97
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/1aa6897b6eebb8c68c972cc5025b39c7e60c17fe
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/1cf17783de9e662f3720847f2d83d86dcdcab500 b/test/core/end2end/fuzzers/server_fuzzer_corpus/1cf17783de9e662f3720847f2d83d86dcdcab500
new file mode 100644
index 0000000000..21a3a65eb5
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/1cf17783de9e662f3720847f2d83d86dcdcab500
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/1cfdde7a.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/1cfdde7a.bin
new file mode 100644
index 0000000000..61a954d0ac
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/1cfdde7a.bin
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/1e92aaa5.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/1e92aaa5.bin
new file mode 100644
index 0000000000..02796cb265
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/1e92aaa5.bin
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/1ea5651f.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/1ea5651f.bin
new file mode 100644
index 0000000000..782f21d69b
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/1ea5651f.bin
@@ -0,0 +1 @@
+PRI * X \ No newline at end of file
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/1f992057.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/1f992057.bin
new file mode 100644
index 0000000000..c60d1eb4e5
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/1f992057.bin
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/20fd12d3670571283dc0c5dbb3fc139a8e943790 b/test/core/end2end/fuzzers/server_fuzzer_corpus/20fd12d3670571283dc0c5dbb3fc139a8e943790
new file mode 100644
index 0000000000..1bf164c7c8
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/20fd12d3670571283dc0c5dbb3fc139a8e943790
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/21475569.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/21475569.bin
new file mode 100644
index 0000000000..06aecff914
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/21475569.bin
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/218c1b123428a07622570947e9b7cdb48c310ca5 b/test/core/end2end/fuzzers/server_fuzzer_corpus/218c1b123428a07622570947e9b7cdb48c310ca5
new file mode 100644
index 0000000000..d7ec73755f
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/218c1b123428a07622570947e9b7cdb48c310ca5
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/21a2dcda.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/21a2dcda.bin
new file mode 100644
index 0000000000..92b918f362
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/21a2dcda.bin
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/22ad891a.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/22ad891a.bin
new file mode 100644
index 0000000000..edd095a03e
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/22ad891a.bin
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/2463aea879c5ab49f8409d0e5c062c7e086b034b b/test/core/end2end/fuzzers/server_fuzzer_corpus/2463aea879c5ab49f8409d0e5c062c7e086b034b
new file mode 100644
index 0000000000..aecaacd30e
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/2463aea879c5ab49f8409d0e5c062c7e086b034b
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/24ed80095e58199c52997f174046272f61ce4a8d b/test/core/end2end/fuzzers/server_fuzzer_corpus/24ed80095e58199c52997f174046272f61ce4a8d
new file mode 100644
index 0000000000..a2f7fadc75
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/24ed80095e58199c52997f174046272f61ce4a8d
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/25ab638f.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/25ab638f.bin
new file mode 100644
index 0000000000..af5a22a48d
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/25ab638f.bin
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/26048c58bd5f2a94843f6fd1e4ab0be04b232636 b/test/core/end2end/fuzzers/server_fuzzer_corpus/26048c58bd5f2a94843f6fd1e4ab0be04b232636
new file mode 100644
index 0000000000..e87be99eb9
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/26048c58bd5f2a94843f6fd1e4ab0be04b232636
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/26870785fd0564f552af4e0ca418738a85b21086 b/test/core/end2end/fuzzers/server_fuzzer_corpus/26870785fd0564f552af4e0ca418738a85b21086
new file mode 100644
index 0000000000..2e53646ca1
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/26870785fd0564f552af4e0ca418738a85b21086
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/2701d1669c2996c097a74c5255d569615357b916 b/test/core/end2end/fuzzers/server_fuzzer_corpus/2701d1669c2996c097a74c5255d569615357b916
new file mode 100644
index 0000000000..ec7d79230a
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/2701d1669c2996c097a74c5255d569615357b916
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/27ac2ae2.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/27ac2ae2.bin
new file mode 100644
index 0000000000..0daef3f1da
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/27ac2ae2.bin
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/2814d70c.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/2814d70c.bin
new file mode 100644
index 0000000000..500c0709ca
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/2814d70c.bin
@@ -0,0 +1 @@
+X \ No newline at end of file
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/282b6585.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/282b6585.bin
new file mode 100644
index 0000000000..a2cabf6afd
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/282b6585.bin
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/2abe64b96e5e72adcf2dcc43444a69d0fb664b66 b/test/core/end2end/fuzzers/server_fuzzer_corpus/2abe64b96e5e72adcf2dcc43444a69d0fb664b66
new file mode 100644
index 0000000000..a5e92ecc5c
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/2abe64b96e5e72adcf2dcc43444a69d0fb664b66
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/2ad6cedd32cd646ba8e25226c7c13a107c1d6447 b/test/core/end2end/fuzzers/server_fuzzer_corpus/2ad6cedd32cd646ba8e25226c7c13a107c1d6447
new file mode 100644
index 0000000000..da6f56962d
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/2ad6cedd32cd646ba8e25226c7c13a107c1d6447
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/2b14c6e618ec95754ea7e24fe6bc5a3a97df6897 b/test/core/end2end/fuzzers/server_fuzzer_corpus/2b14c6e618ec95754ea7e24fe6bc5a3a97df6897
new file mode 100644
index 0000000000..3c79631396
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/2b14c6e618ec95754ea7e24fe6bc5a3a97df6897
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/2b40aa21723c7e67e92e74a3083df008461d591c b/test/core/end2end/fuzzers/server_fuzzer_corpus/2b40aa21723c7e67e92e74a3083df008461d591c
new file mode 100644
index 0000000000..f7e287773e
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/2b40aa21723c7e67e92e74a3083df008461d591c
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/2bf69fe6b40734cc3f0abdd765757809b14b0b88 b/test/core/end2end/fuzzers/server_fuzzer_corpus/2bf69fe6b40734cc3f0abdd765757809b14b0b88
new file mode 100644
index 0000000000..391e89392c
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/2bf69fe6b40734cc3f0abdd765757809b14b0b88
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/2c6660ba.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/2c6660ba.bin
new file mode 100644
index 0000000000..5f96b344ae
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/2c6660ba.bin
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/2cc6d1f3ee8933518e91b8410781fa6e105b3a15 b/test/core/end2end/fuzzers/server_fuzzer_corpus/2cc6d1f3ee8933518e91b8410781fa6e105b3a15
new file mode 100644
index 0000000000..da23fe139b
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/2cc6d1f3ee8933518e91b8410781fa6e105b3a15
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/2e4805c3.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/2e4805c3.bin
new file mode 100644
index 0000000000..20410999b5
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/2e4805c3.bin
@@ -0,0 +1,3 @@
+PRI * HTTP/2.0
+
+SX \ No newline at end of file
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/2f20e2decd09b6f211a5469c67efbada355e6c04 b/test/core/end2end/fuzzers/server_fuzzer_corpus/2f20e2decd09b6f211a5469c67efbada355e6c04
new file mode 100644
index 0000000000..19ce52cf0d
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/2f20e2decd09b6f211a5469c67efbada355e6c04
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/2f3b1cd6780fe475f76f17e9e36541963d993165 b/test/core/end2end/fuzzers/server_fuzzer_corpus/2f3b1cd6780fe475f76f17e9e36541963d993165
new file mode 100644
index 0000000000..bf0334b16e
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/2f3b1cd6780fe475f76f17e9e36541963d993165
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/2fb017cd4c34f4af183d03c4a219d2bb36ee2dd6 b/test/core/end2end/fuzzers/server_fuzzer_corpus/2fb017cd4c34f4af183d03c4a219d2bb36ee2dd6
new file mode 100644
index 0000000000..df31fcfc99
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/2fb017cd4c34f4af183d03c4a219d2bb36ee2dd6
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/30bba77d0f420c4f454011476f3c94e31c50c161 b/test/core/end2end/fuzzers/server_fuzzer_corpus/30bba77d0f420c4f454011476f3c94e31c50c161
new file mode 100644
index 0000000000..f172eb7ad1
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/30bba77d0f420c4f454011476f3c94e31c50c161
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/3224e6cd.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/3224e6cd.bin
new file mode 100644
index 0000000000..b1bfc23f45
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/3224e6cd.bin
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/326ec4d5.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/326ec4d5.bin
new file mode 100644
index 0000000000..98c7665694
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/326ec4d5.bin
@@ -0,0 +1 @@
+PRIX \ No newline at end of file
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/32b11997.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/32b11997.bin
new file mode 100644
index 0000000000..f19bc29579
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/32b11997.bin
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/32cecacca27b249bd764f852168036c5f962bd16 b/test/core/end2end/fuzzers/server_fuzzer_corpus/32cecacca27b249bd764f852168036c5f962bd16
new file mode 100644
index 0000000000..38d8c2aeda
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/32cecacca27b249bd764f852168036c5f962bd16
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/330ad4b6.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/330ad4b6.bin
new file mode 100644
index 0000000000..d4b63bae60
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/330ad4b6.bin
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/33b4cf1ac251f0ba0c014005ef8207afe1dea623 b/test/core/end2end/fuzzers/server_fuzzer_corpus/33b4cf1ac251f0ba0c014005ef8207afe1dea623
new file mode 100644
index 0000000000..4b297d4693
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/33b4cf1ac251f0ba0c014005ef8207afe1dea623
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/33e2ecd5c9bbc1f1dcab29d00195e0ab6d04642d b/test/core/end2end/fuzzers/server_fuzzer_corpus/33e2ecd5c9bbc1f1dcab29d00195e0ab6d04642d
new file mode 100644
index 0000000000..cc2058d110
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/33e2ecd5c9bbc1f1dcab29d00195e0ab6d04642d
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/340b032d39e2b212828a2bd1a97e2b6b81dcd41b b/test/core/end2end/fuzzers/server_fuzzer_corpus/340b032d39e2b212828a2bd1a97e2b6b81dcd41b
new file mode 100644
index 0000000000..d4240cd504
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/340b032d39e2b212828a2bd1a97e2b6b81dcd41b
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/34bba9e4.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/34bba9e4.bin
new file mode 100644
index 0000000000..1c77a38658
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/34bba9e4.bin
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/374262a5acf9cde1f480e7b7254c788e1936a4de b/test/core/end2end/fuzzers/server_fuzzer_corpus/374262a5acf9cde1f480e7b7254c788e1936a4de
new file mode 100644
index 0000000000..229f071207
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/374262a5acf9cde1f480e7b7254c788e1936a4de
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/37ec9df8.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/37ec9df8.bin
new file mode 100644
index 0000000000..5400eb5082
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/37ec9df8.bin
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/39ea47bb.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/39ea47bb.bin
new file mode 100644
index 0000000000..13997e01f4
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/39ea47bb.bin
@@ -0,0 +1 @@
+PRI * HTTP/2.X \ No newline at end of file
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/3aa82376296ab5a33f2921d7705b75b78b683c2d b/test/core/end2end/fuzzers/server_fuzzer_corpus/3aa82376296ab5a33f2921d7705b75b78b683c2d
new file mode 100644
index 0000000000..112fbd18cb
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/3aa82376296ab5a33f2921d7705b75b78b683c2d
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/3ca5da2f.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/3ca5da2f.bin
new file mode 100644
index 0000000000..5b46240494
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/3ca5da2f.bin
@@ -0,0 +1,3 @@
+PRI * HTTP/2.0
+
+SMX \ No newline at end of file
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/3dc665f93db294b9ccb8fcec94bcc2a91f3a04e7 b/test/core/end2end/fuzzers/server_fuzzer_corpus/3dc665f93db294b9ccb8fcec94bcc2a91f3a04e7
new file mode 100644
index 0000000000..efde0d9a86
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/3dc665f93db294b9ccb8fcec94bcc2a91f3a04e7
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/3de41f3f.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/3de41f3f.bin
new file mode 100644
index 0000000000..262ed24e5b
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/3de41f3f.bin
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/3e2077a4fd2def7b11e618d46245d0aa85824317 b/test/core/end2end/fuzzers/server_fuzzer_corpus/3e2077a4fd2def7b11e618d46245d0aa85824317
new file mode 100644
index 0000000000..69263de472
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/3e2077a4fd2def7b11e618d46245d0aa85824317
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/3e3ae35a.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/3e3ae35a.bin
new file mode 100644
index 0000000000..49c7897b71
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/3e3ae35a.bin
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/3e787760.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/3e787760.bin
new file mode 100644
index 0000000000..3b8a1ed6b8
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/3e787760.bin
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/3f3069cf26f761366f947e025f7049254d555e7f b/test/core/end2end/fuzzers/server_fuzzer_corpus/3f3069cf26f761366f947e025f7049254d555e7f
new file mode 100644
index 0000000000..cd907fe970
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/3f3069cf26f761366f947e025f7049254d555e7f
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/407607d2.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/407607d2.bin
new file mode 100644
index 0000000000..8e48939217
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/407607d2.bin
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/40af8d589c76d7912bec06c2ae1f2466065018e7 b/test/core/end2end/fuzzers/server_fuzzer_corpus/40af8d589c76d7912bec06c2ae1f2466065018e7
new file mode 100644
index 0000000000..c72af8a7e1
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/40af8d589c76d7912bec06c2ae1f2466065018e7
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/418f392319c44d06a018ce4c62569d527829177a b/test/core/end2end/fuzzers/server_fuzzer_corpus/418f392319c44d06a018ce4c62569d527829177a
new file mode 100644
index 0000000000..2d72c37193
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/418f392319c44d06a018ce4c62569d527829177a
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/41b31ef0.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/41b31ef0.bin
new file mode 100644
index 0000000000..7469434155
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/41b31ef0.bin
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/422708b4.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/422708b4.bin
new file mode 100644
index 0000000000..111a2b4505
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/422708b4.bin
@@ -0,0 +1 @@
+PRI * HTTP/X \ No newline at end of file
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/422fa704.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/422fa704.bin
new file mode 100644
index 0000000000..bfdd460521
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/422fa704.bin
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/42b0afca.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/42b0afca.bin
new file mode 100644
index 0000000000..e01fec2276
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/42b0afca.bin
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/43fc6abab9840be5ee614211f17395b5966f6070 b/test/core/end2end/fuzzers/server_fuzzer_corpus/43fc6abab9840be5ee614211f17395b5966f6070
new file mode 100644
index 0000000000..2c7f585954
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/43fc6abab9840be5ee614211f17395b5966f6070
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/44f342a6.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/44f342a6.bin
new file mode 100644
index 0000000000..1e7e47bf20
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/44f342a6.bin
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/4558ddeb.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/4558ddeb.bin
new file mode 100644
index 0000000000..7b9f09f815
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/4558ddeb.bin
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/459c0bf6.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/459c0bf6.bin
new file mode 100644
index 0000000000..fcb842e502
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/459c0bf6.bin
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/468cf8bf3e31e1013c7c6d2288baac47ff90aa63 b/test/core/end2end/fuzzers/server_fuzzer_corpus/468cf8bf3e31e1013c7c6d2288baac47ff90aa63
new file mode 100644
index 0000000000..71cf9ad202
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/468cf8bf3e31e1013c7c6d2288baac47ff90aa63
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/4aa883d0.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/4aa883d0.bin
new file mode 100644
index 0000000000..2657149b0d
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/4aa883d0.bin
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/4b7bcb4ae6c0222a1a24d1fb1a5d96519750ca5e b/test/core/end2end/fuzzers/server_fuzzer_corpus/4b7bcb4ae6c0222a1a24d1fb1a5d96519750ca5e
new file mode 100644
index 0000000000..f6168fd609
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/4b7bcb4ae6c0222a1a24d1fb1a5d96519750ca5e
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/4c412cc1a775cea041fa270483d610afb72f463b b/test/core/end2end/fuzzers/server_fuzzer_corpus/4c412cc1a775cea041fa270483d610afb72f463b
new file mode 100644
index 0000000000..5ef77a0084
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/4c412cc1a775cea041fa270483d610afb72f463b
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/4d55d5ae.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/4d55d5ae.bin
new file mode 100644
index 0000000000..7e5544c745
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/4d55d5ae.bin
@@ -0,0 +1 @@
+PRI *X \ No newline at end of file
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/4db3d4075ed27f2a2311f85dd1d6df028cc5d083 b/test/core/end2end/fuzzers/server_fuzzer_corpus/4db3d4075ed27f2a2311f85dd1d6df028cc5d083
new file mode 100644
index 0000000000..a0843593a7
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/4db3d4075ed27f2a2311f85dd1d6df028cc5d083
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/4eb269c3.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/4eb269c3.bin
new file mode 100644
index 0000000000..cf6e9d434f
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/4eb269c3.bin
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/4ecfe1be695df0d2489dddb52da8bcdeb6ed779d b/test/core/end2end/fuzzers/server_fuzzer_corpus/4ecfe1be695df0d2489dddb52da8bcdeb6ed779d
new file mode 100644
index 0000000000..91eb6a8c1f
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/4ecfe1be695df0d2489dddb52da8bcdeb6ed779d
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/4f97bd97ab5dc6b4c0f62f8459be8a9593dc83b3 b/test/core/end2end/fuzzers/server_fuzzer_corpus/4f97bd97ab5dc6b4c0f62f8459be8a9593dc83b3
new file mode 100644
index 0000000000..bb5688e613
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/4f97bd97ab5dc6b4c0f62f8459be8a9593dc83b3
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/4ff50e49865768323f94116bd98d2314455273cc b/test/core/end2end/fuzzers/server_fuzzer_corpus/4ff50e49865768323f94116bd98d2314455273cc
new file mode 100644
index 0000000000..01cd4a05d9
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/4ff50e49865768323f94116bd98d2314455273cc
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/508def44e4d60f237f18a40d7058e58a752a74e1 b/test/core/end2end/fuzzers/server_fuzzer_corpus/508def44e4d60f237f18a40d7058e58a752a74e1
new file mode 100644
index 0000000000..ab378be4ac
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/508def44e4d60f237f18a40d7058e58a752a74e1
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/51a1abd1.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/51a1abd1.bin
new file mode 100644
index 0000000000..dbf6a085aa
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/51a1abd1.bin
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/52b5478161de7b2eba0f7bfbc29aea985c8d9ee7 b/test/core/end2end/fuzzers/server_fuzzer_corpus/52b5478161de7b2eba0f7bfbc29aea985c8d9ee7
new file mode 100644
index 0000000000..943d1629d2
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/52b5478161de7b2eba0f7bfbc29aea985c8d9ee7
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/52ecfedca3b2b26e6999b6afc846f3dbd5d35130 b/test/core/end2end/fuzzers/server_fuzzer_corpus/52ecfedca3b2b26e6999b6afc846f3dbd5d35130
new file mode 100644
index 0000000000..58d03789f9
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/52ecfedca3b2b26e6999b6afc846f3dbd5d35130
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/53d18398c0d484de00afd8d583fe802d55d4da44 b/test/core/end2end/fuzzers/server_fuzzer_corpus/53d18398c0d484de00afd8d583fe802d55d4da44
new file mode 100644
index 0000000000..e337a1da3f
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/53d18398c0d484de00afd8d583fe802d55d4da44
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/53de507f.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/53de507f.bin
new file mode 100644
index 0000000000..a6595251d9
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/53de507f.bin
@@ -0,0 +1,5 @@
+PRI * HTTP/2.0
+
+SM
+
+ \ No newline at end of file
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/540ada69.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/540ada69.bin
new file mode 100644
index 0000000000..18f0a366f6
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/540ada69.bin
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/5413b531fe06923ddf2c9e3eb958769374bc2445 b/test/core/end2end/fuzzers/server_fuzzer_corpus/5413b531fe06923ddf2c9e3eb958769374bc2445
new file mode 100644
index 0000000000..cf83d57b67
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/5413b531fe06923ddf2c9e3eb958769374bc2445
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/5429f0da.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/5429f0da.bin
new file mode 100644
index 0000000000..001c62c9a2
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/5429f0da.bin
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/5435005f.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/5435005f.bin
new file mode 100644
index 0000000000..999a65688c
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/5435005f.bin
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/54d0fc6c.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/54d0fc6c.bin
new file mode 100644
index 0000000000..24b882d521
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/54d0fc6c.bin
@@ -0,0 +1,4 @@
+PRI * HTTP/2.0
+
+SM
+X \ No newline at end of file
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/55af20415ead0ddd417f37fa91a4c767b749ee34 b/test/core/end2end/fuzzers/server_fuzzer_corpus/55af20415ead0ddd417f37fa91a4c767b749ee34
new file mode 100644
index 0000000000..adbf92fe78
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/55af20415ead0ddd417f37fa91a4c767b749ee34
@@ -0,0 +1 @@
+PR \ No newline at end of file
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/55f6fb1a.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/55f6fb1a.bin
new file mode 100644
index 0000000000..0963601d51
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/55f6fb1a.bin
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/5780565e.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/5780565e.bin
new file mode 100644
index 0000000000..53057ae34e
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/5780565e.bin
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/57918260.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/57918260.bin
new file mode 100644
index 0000000000..2f68d68af9
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/57918260.bin
@@ -0,0 +1 @@
+PRI * HTTPX \ No newline at end of file
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/58b88a24.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/58b88a24.bin
new file mode 100644
index 0000000000..696be2b5f3
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/58b88a24.bin
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/597fdab5.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/597fdab5.bin
new file mode 100644
index 0000000000..465b56942b
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/597fdab5.bin
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/59ce7091c00075943d79e857c01ad1af5f38c78e b/test/core/end2end/fuzzers/server_fuzzer_corpus/59ce7091c00075943d79e857c01ad1af5f38c78e
new file mode 100644
index 0000000000..848f8ed93b
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/59ce7091c00075943d79e857c01ad1af5f38c78e
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/59dcfde4.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/59dcfde4.bin
new file mode 100644
index 0000000000..e90e9a66e1
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/59dcfde4.bin
@@ -0,0 +1,3 @@
+PRI * HTTP/2.0
+
+SM X \ No newline at end of file
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/5ac92c4a7fb476393f8275fe4b79a2b13e3bcad9 b/test/core/end2end/fuzzers/server_fuzzer_corpus/5ac92c4a7fb476393f8275fe4b79a2b13e3bcad9
new file mode 100644
index 0000000000..fa9842c16c
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/5ac92c4a7fb476393f8275fe4b79a2b13e3bcad9
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/5d43ac923d7607a16e3d7bf8b838f52622871251 b/test/core/end2end/fuzzers/server_fuzzer_corpus/5d43ac923d7607a16e3d7bf8b838f52622871251
new file mode 100644
index 0000000000..afaeca46cc
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/5d43ac923d7607a16e3d7bf8b838f52622871251
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/5d817877.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/5d817877.bin
new file mode 100644
index 0000000000..8c2ec2aa43
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/5d817877.bin
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/5e2508e15c79fbe9c2e6c1a393b490356a17efbc b/test/core/end2end/fuzzers/server_fuzzer_corpus/5e2508e15c79fbe9c2e6c1a393b490356a17efbc
new file mode 100644
index 0000000000..c455479747
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/5e2508e15c79fbe9c2e6c1a393b490356a17efbc
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/5f758756.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/5f758756.bin
new file mode 100644
index 0000000000..47f2d2b559
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/5f758756.bin
@@ -0,0 +1,2 @@
+PRI * HTTP/2.0
+X \ No newline at end of file
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/5f820fa8d44229219d0b7c4724e3e40a2ace97f4 b/test/core/end2end/fuzzers/server_fuzzer_corpus/5f820fa8d44229219d0b7c4724e3e40a2ace97f4
new file mode 100644
index 0000000000..9026c102f4
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/5f820fa8d44229219d0b7c4724e3e40a2ace97f4
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/62d05f336176a10a2c339c04d818f23b6e9a2637 b/test/core/end2end/fuzzers/server_fuzzer_corpus/62d05f336176a10a2c339c04d818f23b6e9a2637
new file mode 100644
index 0000000000..ab8ec8fff6
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/62d05f336176a10a2c339c04d818f23b6e9a2637
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/6499e2db.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/6499e2db.bin
new file mode 100644
index 0000000000..9187c9447e
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/6499e2db.bin
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/64cdbb31d5eda779d07885fa7881812db7800c05 b/test/core/end2end/fuzzers/server_fuzzer_corpus/64cdbb31d5eda779d07885fa7881812db7800c05
new file mode 100644
index 0000000000..1cacb86343
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/64cdbb31d5eda779d07885fa7881812db7800c05
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/65077d2946cfb822cf92c9dfc44517a34589f277 b/test/core/end2end/fuzzers/server_fuzzer_corpus/65077d2946cfb822cf92c9dfc44517a34589f277
new file mode 100644
index 0000000000..094c4e7447
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/65077d2946cfb822cf92c9dfc44517a34589f277
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/65099066.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/65099066.bin
new file mode 100644
index 0000000000..bf5806d1b9
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/65099066.bin
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/652bfdce.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/652bfdce.bin
new file mode 100644
index 0000000000..49d0f7f5d5
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/652bfdce.bin
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/65d5ae42e6acb429459a1e1a5fb35f09c0f95de2 b/test/core/end2end/fuzzers/server_fuzzer_corpus/65d5ae42e6acb429459a1e1a5fb35f09c0f95de2
new file mode 100644
index 0000000000..b56d59e098
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/65d5ae42e6acb429459a1e1a5fb35f09c0f95de2
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/65fd6cb3058ee0baae854cc7859b7c0c1e1c1166 b/test/core/end2end/fuzzers/server_fuzzer_corpus/65fd6cb3058ee0baae854cc7859b7c0c1e1c1166
new file mode 100644
index 0000000000..34c9103f66
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/65fd6cb3058ee0baae854cc7859b7c0c1e1c1166
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/6652f7be83a876214affc3f230040757f7db4ea8 b/test/core/end2end/fuzzers/server_fuzzer_corpus/6652f7be83a876214affc3f230040757f7db4ea8
new file mode 100644
index 0000000000..c552bf822f
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/6652f7be83a876214affc3f230040757f7db4ea8
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/67b04816.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/67b04816.bin
new file mode 100644
index 0000000000..5387e6ed68
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/67b04816.bin
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/67ebf074c7f928c4fe32fef44e5c958cf441c93c b/test/core/end2end/fuzzers/server_fuzzer_corpus/67ebf074c7f928c4fe32fef44e5c958cf441c93c
new file mode 100644
index 0000000000..59e952e1c8
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/67ebf074c7f928c4fe32fef44e5c958cf441c93c
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/68f564fd8064233897ff704b5955b33a2e29293a b/test/core/end2end/fuzzers/server_fuzzer_corpus/68f564fd8064233897ff704b5955b33a2e29293a
new file mode 100644
index 0000000000..291e9c4a2b
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/68f564fd8064233897ff704b5955b33a2e29293a
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/69891e9f.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/69891e9f.bin
new file mode 100644
index 0000000000..0ba2abc551
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/69891e9f.bin
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/6dc4455c.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/6dc4455c.bin
new file mode 100644
index 0000000000..7ce8938268
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/6dc4455c.bin
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/6e050e98.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/6e050e98.bin
new file mode 100644
index 0000000000..0fbf1caacc
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/6e050e98.bin
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/6f9d75e1af7ae7010d32872da888a582a25fddb4 b/test/core/end2end/fuzzers/server_fuzzer_corpus/6f9d75e1af7ae7010d32872da888a582a25fddb4
new file mode 100644
index 0000000000..313d3b5fbe
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/6f9d75e1af7ae7010d32872da888a582a25fddb4
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/70ebe7f32c63ca8940017eb83e6db4d8b39ee03c b/test/core/end2end/fuzzers/server_fuzzer_corpus/70ebe7f32c63ca8940017eb83e6db4d8b39ee03c
new file mode 100644
index 0000000000..0cd6faae06
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/70ebe7f32c63ca8940017eb83e6db4d8b39ee03c
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/712300b98afdb5f0d15c657c13cea76841164b13 b/test/core/end2end/fuzzers/server_fuzzer_corpus/712300b98afdb5f0d15c657c13cea76841164b13
new file mode 100644
index 0000000000..179133dc1a
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/712300b98afdb5f0d15c657c13cea76841164b13
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/71ab07577909ca4b766f8ea0c6b8ec2bc395fc66 b/test/core/end2end/fuzzers/server_fuzzer_corpus/71ab07577909ca4b766f8ea0c6b8ec2bc395fc66
new file mode 100644
index 0000000000..8705aec475
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/71ab07577909ca4b766f8ea0c6b8ec2bc395fc66
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/72296cf9e1052ced4b60e2053aba9f1a569144e9 b/test/core/end2end/fuzzers/server_fuzzer_corpus/72296cf9e1052ced4b60e2053aba9f1a569144e9
new file mode 100644
index 0000000000..861524b55d
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/72296cf9e1052ced4b60e2053aba9f1a569144e9
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/7342b3febb07521e39abdf4ee976d16199d51239 b/test/core/end2end/fuzzers/server_fuzzer_corpus/7342b3febb07521e39abdf4ee976d16199d51239
new file mode 100644
index 0000000000..8d69e992e1
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/7342b3febb07521e39abdf4ee976d16199d51239
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/746715fe.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/746715fe.bin
new file mode 100644
index 0000000000..8ede09c6df
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/746715fe.bin
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/76294f12a5974e9f87d8f092d0df5429cf6c0466 b/test/core/end2end/fuzzers/server_fuzzer_corpus/76294f12a5974e9f87d8f092d0df5429cf6c0466
new file mode 100644
index 0000000000..80206a094a
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/76294f12a5974e9f87d8f092d0df5429cf6c0466
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/769f5d079151d1b5cab388c47a74f3c297c18d58 b/test/core/end2end/fuzzers/server_fuzzer_corpus/769f5d079151d1b5cab388c47a74f3c297c18d58
new file mode 100644
index 0000000000..9b79b6e76a
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/769f5d079151d1b5cab388c47a74f3c297c18d58
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/7b453adcb9c4bf31dbc448ff32c2bc90ebcbdf0f b/test/core/end2end/fuzzers/server_fuzzer_corpus/7b453adcb9c4bf31dbc448ff32c2bc90ebcbdf0f
new file mode 100644
index 0000000000..effab960aa
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/7b453adcb9c4bf31dbc448ff32c2bc90ebcbdf0f
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/7f15bbce.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/7f15bbce.bin
new file mode 100644
index 0000000000..eb23e5a447
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/7f15bbce.bin
@@ -0,0 +1 @@
+PRI * HX \ No newline at end of file
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/7ffd05db.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/7ffd05db.bin
new file mode 100644
index 0000000000..ed01ab25f4
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/7ffd05db.bin
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/81fb19dfcb3c3a18fd9e7c177356479503e75e6f b/test/core/end2end/fuzzers/server_fuzzer_corpus/81fb19dfcb3c3a18fd9e7c177356479503e75e6f
new file mode 100644
index 0000000000..3834be4679
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/81fb19dfcb3c3a18fd9e7c177356479503e75e6f
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/82dda42ddde662192ebaa96788945b7673bb486b b/test/core/end2end/fuzzers/server_fuzzer_corpus/82dda42ddde662192ebaa96788945b7673bb486b
new file mode 100644
index 0000000000..4b6e82f8e3
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/82dda42ddde662192ebaa96788945b7673bb486b
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/8338ebee.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/8338ebee.bin
new file mode 100644
index 0000000000..7e6c62ce4d
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/8338ebee.bin
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/86a19d13cc65790696299c819cac17b14e337647 b/test/core/end2end/fuzzers/server_fuzzer_corpus/86a19d13cc65790696299c819cac17b14e337647
new file mode 100644
index 0000000000..25ecc53a41
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/86a19d13cc65790696299c819cac17b14e337647
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/86e6dbf2.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/86e6dbf2.bin
new file mode 100644
index 0000000000..b77356714a
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/86e6dbf2.bin
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/88e1329b.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/88e1329b.bin
new file mode 100644
index 0000000000..7464d0e4f6
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/88e1329b.bin
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/8b186384.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/8b186384.bin
new file mode 100644
index 0000000000..cb04b30c8e
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/8b186384.bin
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/8c04817a75fddd71f13779f2ad5b994f45c333a2 b/test/core/end2end/fuzzers/server_fuzzer_corpus/8c04817a75fddd71f13779f2ad5b994f45c333a2
new file mode 100644
index 0000000000..97eb4e31c6
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/8c04817a75fddd71f13779f2ad5b994f45c333a2
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/8c72c3f35e9b9fd168ad9024c953a703f33ae3c1 b/test/core/end2end/fuzzers/server_fuzzer_corpus/8c72c3f35e9b9fd168ad9024c953a703f33ae3c1
new file mode 100644
index 0000000000..8323a67245
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/8c72c3f35e9b9fd168ad9024c953a703f33ae3c1
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/8c760938a2a72fa92b27e00e05005e2e4c429359 b/test/core/end2end/fuzzers/server_fuzzer_corpus/8c760938a2a72fa92b27e00e05005e2e4c429359
new file mode 100644
index 0000000000..3accdc06c5
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/8c760938a2a72fa92b27e00e05005e2e4c429359
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/8da521d9.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/8da521d9.bin
new file mode 100644
index 0000000000..122486a89d
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/8da521d9.bin
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/8de81717.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/8de81717.bin
new file mode 100644
index 0000000000..b16f546df1
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/8de81717.bin
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/90224b8e.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/90224b8e.bin
new file mode 100644
index 0000000000..f6606019d2
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/90224b8e.bin
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/90240c7c.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/90240c7c.bin
new file mode 100644
index 0000000000..365bf2deb5
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/90240c7c.bin
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/9099ac4e83f6460c80b5557c87f653e4c65aa091 b/test/core/end2end/fuzzers/server_fuzzer_corpus/9099ac4e83f6460c80b5557c87f653e4c65aa091
new file mode 100644
index 0000000000..4136f9eb37
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/9099ac4e83f6460c80b5557c87f653e4c65aa091
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/914ed07570b6441365a3636d05850f7316c7f2a8 b/test/core/end2end/fuzzers/server_fuzzer_corpus/914ed07570b6441365a3636d05850f7316c7f2a8
new file mode 100644
index 0000000000..5af7800e8a
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/914ed07570b6441365a3636d05850f7316c7f2a8
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/916b825da0ffc46fdb6120b1044e98ae158fce70 b/test/core/end2end/fuzzers/server_fuzzer_corpus/916b825da0ffc46fdb6120b1044e98ae158fce70
new file mode 100644
index 0000000000..dc54a58d4f
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/916b825da0ffc46fdb6120b1044e98ae158fce70
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/93beeba2.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/93beeba2.bin
new file mode 100644
index 0000000000..dc2c3a0667
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/93beeba2.bin
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/93c3ffcb7e3bcb5ed7e37a5b3dfb97b43ca42718 b/test/core/end2end/fuzzers/server_fuzzer_corpus/93c3ffcb7e3bcb5ed7e37a5b3dfb97b43ca42718
new file mode 100644
index 0000000000..00329edec9
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/93c3ffcb7e3bcb5ed7e37a5b3dfb97b43ca42718
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/9540d3ad3fa75bfb95c0d57cefd737611c7069a5 b/test/core/end2end/fuzzers/server_fuzzer_corpus/9540d3ad3fa75bfb95c0d57cefd737611c7069a5
new file mode 100644
index 0000000000..fc338c15ec
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/9540d3ad3fa75bfb95c0d57cefd737611c7069a5
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/954337ef.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/954337ef.bin
new file mode 100644
index 0000000000..782e59db70
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/954337ef.bin
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/95d25ba2e190fafa2b3ca1e1c467b9ef64868962 b/test/core/end2end/fuzzers/server_fuzzer_corpus/95d25ba2e190fafa2b3ca1e1c467b9ef64868962
new file mode 100644
index 0000000000..ee35bc7aa4
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/95d25ba2e190fafa2b3ca1e1c467b9ef64868962
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/9764015f89a0b7a59f3b5359b0a037b38d6e39d7 b/test/core/end2end/fuzzers/server_fuzzer_corpus/9764015f89a0b7a59f3b5359b0a037b38d6e39d7
new file mode 100644
index 0000000000..9b4a436b32
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/9764015f89a0b7a59f3b5359b0a037b38d6e39d7
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/97aed4bd.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/97aed4bd.bin
new file mode 100644
index 0000000000..dbe2507024
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/97aed4bd.bin
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/9953eb28aa1ed661612a4710a9d16a15de4ae353 b/test/core/end2end/fuzzers/server_fuzzer_corpus/9953eb28aa1ed661612a4710a9d16a15de4ae353
new file mode 100644
index 0000000000..837c3e3ca8
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/9953eb28aa1ed661612a4710a9d16a15de4ae353
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/9bf7553a.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/9bf7553a.bin
new file mode 100644
index 0000000000..e612aec940
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/9bf7553a.bin
@@ -0,0 +1 @@
+PRX \ No newline at end of file
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/9d2d18fce18c790035d8f67ed798703bdda0a949 b/test/core/end2end/fuzzers/server_fuzzer_corpus/9d2d18fce18c790035d8f67ed798703bdda0a949
new file mode 100644
index 0000000000..3799081273
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/9d2d18fce18c790035d8f67ed798703bdda0a949
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/a112d484b70e778835fcd478fd651828720791e5 b/test/core/end2end/fuzzers/server_fuzzer_corpus/a112d484b70e778835fcd478fd651828720791e5
new file mode 100644
index 0000000000..47c71a3364
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/a112d484b70e778835fcd478fd651828720791e5
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/a24bf2dc.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/a24bf2dc.bin
new file mode 100644
index 0000000000..1e5b421dd4
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/a24bf2dc.bin
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/a357658d.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/a357658d.bin
new file mode 100644
index 0000000000..255103fca9
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/a357658d.bin
@@ -0,0 +1 @@
+PX \ No newline at end of file
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/a3a2b1af.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/a3a2b1af.bin
new file mode 100644
index 0000000000..23086f5f7d
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/a3a2b1af.bin
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/a5348197.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/a5348197.bin
new file mode 100644
index 0000000000..d8a73f33ea
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/a5348197.bin
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/a5cc3762cb2b2cac316c60ddee794016057fb4ff b/test/core/end2end/fuzzers/server_fuzzer_corpus/a5cc3762cb2b2cac316c60ddee794016057fb4ff
new file mode 100644
index 0000000000..c9105a67ec
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/a5cc3762cb2b2cac316c60ddee794016057fb4ff
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/a7e64803.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/a7e64803.bin
new file mode 100644
index 0000000000..e40616623f
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/a7e64803.bin
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/a8d229374635fa6f2a75ca1669892e1bc244e719 b/test/core/end2end/fuzzers/server_fuzzer_corpus/a8d229374635fa6f2a75ca1669892e1bc244e719
new file mode 100644
index 0000000000..f40ea15bc7
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/a8d229374635fa6f2a75ca1669892e1bc244e719
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/a8f2345b2c949e9e32a434c99accf771f405eb65 b/test/core/end2end/fuzzers/server_fuzzer_corpus/a8f2345b2c949e9e32a434c99accf771f405eb65
new file mode 100644
index 0000000000..a5d1315732
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/a8f2345b2c949e9e32a434c99accf771f405eb65
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/a9463428cdc47d37efb6e3c5633d1e5e78911f16 b/test/core/end2end/fuzzers/server_fuzzer_corpus/a9463428cdc47d37efb6e3c5633d1e5e78911f16
new file mode 100644
index 0000000000..5cb8323a90
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/a9463428cdc47d37efb6e3c5633d1e5e78911f16
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/a9966f7181d08f6a9ff8158736ad77a285d743a6 b/test/core/end2end/fuzzers/server_fuzzer_corpus/a9966f7181d08f6a9ff8158736ad77a285d743a6
new file mode 100644
index 0000000000..f692fa18b2
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/a9966f7181d08f6a9ff8158736ad77a285d743a6
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/a9e22d93.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/a9e22d93.bin
new file mode 100644
index 0000000000..f3ef55b14c
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/a9e22d93.bin
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/aa3c8974.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/aa3c8974.bin
new file mode 100644
index 0000000000..9998126fce
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/aa3c8974.bin
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/aa825693.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/aa825693.bin
new file mode 100644
index 0000000000..4a68f21d18
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/aa825693.bin
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/aa8729d7.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/aa8729d7.bin
new file mode 100644
index 0000000000..2f4e4782d8
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/aa8729d7.bin
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/ad810f7f.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/ad810f7f.bin
new file mode 100644
index 0000000000..7761e5216e
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/ad810f7f.bin
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/aedefcd9bd7fc10b7bf60372da54c43e953523bd b/test/core/end2end/fuzzers/server_fuzzer_corpus/aedefcd9bd7fc10b7bf60372da54c43e953523bd
new file mode 100644
index 0000000000..f93d485f9f
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/aedefcd9bd7fc10b7bf60372da54c43e953523bd
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/b06ce623.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/b06ce623.bin
new file mode 100644
index 0000000000..63a9a8c714
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/b06ce623.bin
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/b1128694.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/b1128694.bin
new file mode 100644
index 0000000000..82aa699e0d
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/b1128694.bin
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/b220d23a13d98d4815b1f7a3e4fe7dd8672b1c83 b/test/core/end2end/fuzzers/server_fuzzer_corpus/b220d23a13d98d4815b1f7a3e4fe7dd8672b1c83
new file mode 100644
index 0000000000..dffb6073f1
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/b220d23a13d98d4815b1f7a3e4fe7dd8672b1c83
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/b28959dd.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/b28959dd.bin
new file mode 100644
index 0000000000..42522780a1
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/b28959dd.bin
@@ -0,0 +1 @@
+PRI * HTTP/2.0X \ No newline at end of file
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/b431df13.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/b431df13.bin
new file mode 100644
index 0000000000..a1a1842af9
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/b431df13.bin
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/b5acaa52.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/b5acaa52.bin
new file mode 100644
index 0000000000..ea99ae78be
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/b5acaa52.bin
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/b7ce4a4f6eea20c0b83d9f7fa8406a0730ee0040 b/test/core/end2end/fuzzers/server_fuzzer_corpus/b7ce4a4f6eea20c0b83d9f7fa8406a0730ee0040
new file mode 100644
index 0000000000..cca0014f8e
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/b7ce4a4f6eea20c0b83d9f7fa8406a0730ee0040
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/b829143b.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/b829143b.bin
new file mode 100644
index 0000000000..b3e88f07d9
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/b829143b.bin
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/b887097732b9c30719f6c7ea7a7cbac531512a31 b/test/core/end2end/fuzzers/server_fuzzer_corpus/b887097732b9c30719f6c7ea7a7cbac531512a31
new file mode 100644
index 0000000000..3cee5d4396
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/b887097732b9c30719f6c7ea7a7cbac531512a31
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/b924c842.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/b924c842.bin
new file mode 100644
index 0000000000..05f8de1044
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/b924c842.bin
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/bad4f467.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/bad4f467.bin
new file mode 100644
index 0000000000..068e1ce182
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/bad4f467.bin
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/bd63e44a3b004e7ed471c2367c3efae2c58a676d b/test/core/end2end/fuzzers/server_fuzzer_corpus/bd63e44a3b004e7ed471c2367c3efae2c58a676d
new file mode 100644
index 0000000000..e66fdcbc8e
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/bd63e44a3b004e7ed471c2367c3efae2c58a676d
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/be9b6e78.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/be9b6e78.bin
new file mode 100644
index 0000000000..27e9ebc7dc
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/be9b6e78.bin
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/bf5e21c32becb5839deeb81e9174cf6478a25473 b/test/core/end2end/fuzzers/server_fuzzer_corpus/bf5e21c32becb5839deeb81e9174cf6478a25473
new file mode 100644
index 0000000000..c26cef3d25
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/bf5e21c32becb5839deeb81e9174cf6478a25473
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/bfb55acd5b66521eb5bd8ce6b57b3b6895883675 b/test/core/end2end/fuzzers/server_fuzzer_corpus/bfb55acd5b66521eb5bd8ce6b57b3b6895883675
new file mode 100644
index 0000000000..94fb6a9f10
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/bfb55acd5b66521eb5bd8ce6b57b3b6895883675
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/bfcbffa9.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/bfcbffa9.bin
new file mode 100644
index 0000000000..a571ff3c2f
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/bfcbffa9.bin
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/c004455e9d60bc2fff094e79cd0b38507023e018 b/test/core/end2end/fuzzers/server_fuzzer_corpus/c004455e9d60bc2fff094e79cd0b38507023e018
new file mode 100644
index 0000000000..41ddff951d
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/c004455e9d60bc2fff094e79cd0b38507023e018
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/c039ac9a5a570f8fd9064df9320890b885edf9c3 b/test/core/end2end/fuzzers/server_fuzzer_corpus/c039ac9a5a570f8fd9064df9320890b885edf9c3
new file mode 100644
index 0000000000..dbc94052f1
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/c039ac9a5a570f8fd9064df9320890b885edf9c3
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/c1188b44.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/c1188b44.bin
new file mode 100644
index 0000000000..bbc80e9997
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/c1188b44.bin
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/c12835aa9f3513d3f7179ee4f9976292713f7cb9 b/test/core/end2end/fuzzers/server_fuzzer_corpus/c12835aa9f3513d3f7179ee4f9976292713f7cb9
new file mode 100644
index 0000000000..e61533a3ad
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/c12835aa9f3513d3f7179ee4f9976292713f7cb9
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/c13188118af1634061b6a3947b81618891aeb6a3 b/test/core/end2end/fuzzers/server_fuzzer_corpus/c13188118af1634061b6a3947b81618891aeb6a3
new file mode 100644
index 0000000000..a423a7bb30
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/c13188118af1634061b6a3947b81618891aeb6a3
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/c35968bf.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/c35968bf.bin
new file mode 100644
index 0000000000..1d4b51662e
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/c35968bf.bin
@@ -0,0 +1 @@
+PRI X \ No newline at end of file
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/c43d97f2.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/c43d97f2.bin
new file mode 100644
index 0000000000..62959580a8
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/c43d97f2.bin
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/c4534867.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/c4534867.bin
new file mode 100644
index 0000000000..40fb374d69
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/c4534867.bin
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/c559f565.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/c559f565.bin
new file mode 100644
index 0000000000..28429cf067
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/c559f565.bin
@@ -0,0 +1,3 @@
+PRI * HTTP/2.0
+
+X \ No newline at end of file
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/c56fada76f5c198232201a608072a1a63e3d3785 b/test/core/end2end/fuzzers/server_fuzzer_corpus/c56fada76f5c198232201a608072a1a63e3d3785
new file mode 100644
index 0000000000..f7092e5e02
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/c56fada76f5c198232201a608072a1a63e3d3785
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/c66e84d1.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/c66e84d1.bin
new file mode 100644
index 0000000000..1cc73ce791
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/c66e84d1.bin
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/c6a1d2cc8935808b6e317a69baec1c3cb87cac94 b/test/core/end2end/fuzzers/server_fuzzer_corpus/c6a1d2cc8935808b6e317a69baec1c3cb87cac94
new file mode 100644
index 0000000000..23ae45234c
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/c6a1d2cc8935808b6e317a69baec1c3cb87cac94
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/c7c44b98faa21c8f0645a818a65b60d956d15952 b/test/core/end2end/fuzzers/server_fuzzer_corpus/c7c44b98faa21c8f0645a818a65b60d956d15952
new file mode 100644
index 0000000000..6c3603316d
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/c7c44b98faa21c8f0645a818a65b60d956d15952
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/c8073f5f41970fab4738215e42ec97a4383855e5 b/test/core/end2end/fuzzers/server_fuzzer_corpus/c8073f5f41970fab4738215e42ec97a4383855e5
new file mode 100644
index 0000000000..8a6e432376
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/c8073f5f41970fab4738215e42ec97a4383855e5
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/c81dec02.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/c81dec02.bin
new file mode 100644
index 0000000000..746cd72ba6
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/c81dec02.bin
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/c8812dc8a1ab1592a2d7b71300e1a0a5da6a6382 b/test/core/end2end/fuzzers/server_fuzzer_corpus/c8812dc8a1ab1592a2d7b71300e1a0a5da6a6382
new file mode 100644
index 0000000000..59f3bd05b6
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/c8812dc8a1ab1592a2d7b71300e1a0a5da6a6382
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/ca843c66c4c4807ccb1615b472c79bc459e5c6cb b/test/core/end2end/fuzzers/server_fuzzer_corpus/ca843c66c4c4807ccb1615b472c79bc459e5c6cb
new file mode 100644
index 0000000000..e8fa525129
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/ca843c66c4c4807ccb1615b472c79bc459e5c6cb
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/cbb04be69714f81f5cd09e36e8ea4e69ea73d618 b/test/core/end2end/fuzzers/server_fuzzer_corpus/cbb04be69714f81f5cd09e36e8ea4e69ea73d618
new file mode 100644
index 0000000000..5622aca4aa
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/cbb04be69714f81f5cd09e36e8ea4e69ea73d618
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/cca29902.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/cca29902.bin
new file mode 100644
index 0000000000..60f208f595
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/cca29902.bin
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/cdba6c45.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/cdba6c45.bin
new file mode 100644
index 0000000000..e2e324cd85
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/cdba6c45.bin
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/crash-0f4b135c0242669ce425d2662168e9440f8a628d b/test/core/end2end/fuzzers/server_fuzzer_corpus/crash-0f4b135c0242669ce425d2662168e9440f8a628d
new file mode 100644
index 0000000000..9c2ae72439
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/crash-0f4b135c0242669ce425d2662168e9440f8a628d
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/crash-239cc27a23827ea53b60ccbaee0ecc64dad2bff0 b/test/core/end2end/fuzzers/server_fuzzer_corpus/crash-239cc27a23827ea53b60ccbaee0ecc64dad2bff0
new file mode 100644
index 0000000000..0bfd764628
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/crash-239cc27a23827ea53b60ccbaee0ecc64dad2bff0
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/crash-7e121dd3be057176369bea160d873040b32a03dc b/test/core/end2end/fuzzers/server_fuzzer_corpus/crash-7e121dd3be057176369bea160d873040b32a03dc
new file mode 100644
index 0000000000..9491b01e3c
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/crash-7e121dd3be057176369bea160d873040b32a03dc
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/crash-e34b0a9a428001cb4094a9ebca76329f578811a4 b/test/core/end2end/fuzzers/server_fuzzer_corpus/crash-e34b0a9a428001cb4094a9ebca76329f578811a4
new file mode 100644
index 0000000000..adbbcec92e
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/crash-e34b0a9a428001cb4094a9ebca76329f578811a4
@@ -0,0 +1,2 @@
+PRI * HTP/2.0 ĎPR"I * HT
+TP \ No newline at end of file
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/d0f7eebc.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/d0f7eebc.bin
new file mode 100644
index 0000000000..0edc3bb1fd
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/d0f7eebc.bin
@@ -0,0 +1 @@
+PRI * HTX \ No newline at end of file
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/d2031009d3783fcf083963fa30bb493f7f935541 b/test/core/end2end/fuzzers/server_fuzzer_corpus/d2031009d3783fcf083963fa30bb493f7f935541
new file mode 100644
index 0000000000..953d5e8da9
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/d2031009d3783fcf083963fa30bb493f7f935541
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/d28155c6c92642c61dfb097f7b2eb1d6ced272c0 b/test/core/end2end/fuzzers/server_fuzzer_corpus/d28155c6c92642c61dfb097f7b2eb1d6ced272c0
new file mode 100644
index 0000000000..13dc155d72
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/d28155c6c92642c61dfb097f7b2eb1d6ced272c0
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/d6979f0f.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/d6979f0f.bin
new file mode 100644
index 0000000000..8ed84f9303
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/d6979f0f.bin
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/d9074e68.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/d9074e68.bin
new file mode 100644
index 0000000000..b7cd2f7a62
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/d9074e68.bin
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/d95556cac07e720909aaf2ac09d876106420463f b/test/core/end2end/fuzzers/server_fuzzer_corpus/d95556cac07e720909aaf2ac09d876106420463f
new file mode 100644
index 0000000000..e3d74d05fc
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/d95556cac07e720909aaf2ac09d876106420463f
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/da7e44a9.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/da7e44a9.bin
new file mode 100644
index 0000000000..cc57d195ce
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/da7e44a9.bin
@@ -0,0 +1,4 @@
+PRI * HTTP/2.0
+
+SM
+ X \ No newline at end of file
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/dab172ff.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/dab172ff.bin
new file mode 100644
index 0000000000..c1fec49b47
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/dab172ff.bin
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/db33559d4afb4c32e68525c000fde16a4c3300f5 b/test/core/end2end/fuzzers/server_fuzzer_corpus/db33559d4afb4c32e68525c000fde16a4c3300f5
new file mode 100644
index 0000000000..fb1e78cff7
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/db33559d4afb4c32e68525c000fde16a4c3300f5
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/dcabac1ef8b197ef39b188bcf5dc470f9749e903 b/test/core/end2end/fuzzers/server_fuzzer_corpus/dcabac1ef8b197ef39b188bcf5dc470f9749e903
new file mode 100644
index 0000000000..ec70c9c1da
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/dcabac1ef8b197ef39b188bcf5dc470f9749e903
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/e0d9a9a7.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/e0d9a9a7.bin
new file mode 100644
index 0000000000..3d32ffc395
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/e0d9a9a7.bin
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/e2652fbb.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/e2652fbb.bin
new file mode 100644
index 0000000000..946cfe22b3
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/e2652fbb.bin
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/e2c954e1.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/e2c954e1.bin
new file mode 100644
index 0000000000..759683f469
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/e2c954e1.bin
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/e3bab014.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/e3bab014.bin
new file mode 100644
index 0000000000..d9ae95a015
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/e3bab014.bin
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/e9d96662.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/e9d96662.bin
new file mode 100644
index 0000000000..672f0799e7
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/e9d96662.bin
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/eb66106b.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/eb66106b.bin
new file mode 100644
index 0000000000..32c355bc75
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/eb66106b.bin
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/eba8472a.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/eba8472a.bin
new file mode 100644
index 0000000000..24d97fe392
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/eba8472a.bin
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/ed8da77f.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/ed8da77f.bin
new file mode 100644
index 0000000000..a78a2ae620
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/ed8da77f.bin
@@ -0,0 +1 @@
+PRI * HTTP/2.0 X \ No newline at end of file
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/f0387dfdd6b8c925d958113e669ec4a1897034b4 b/test/core/end2end/fuzzers/server_fuzzer_corpus/f0387dfdd6b8c925d958113e669ec4a1897034b4
new file mode 100644
index 0000000000..6c65103776
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/f0387dfdd6b8c925d958113e669ec4a1897034b4
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/f1121b952e75463cc71137683dc2528f9cbc19b7 b/test/core/end2end/fuzzers/server_fuzzer_corpus/f1121b952e75463cc71137683dc2528f9cbc19b7
new file mode 100644
index 0000000000..6d2a60d80b
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/f1121b952e75463cc71137683dc2528f9cbc19b7
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/f3220426.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/f3220426.bin
new file mode 100644
index 0000000000..eac62a7e2c
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/f3220426.bin
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/f3d084cf20b92a5f026fe7cc6e5af49bde28693d b/test/core/end2end/fuzzers/server_fuzzer_corpus/f3d084cf20b92a5f026fe7cc6e5af49bde28693d
new file mode 100644
index 0000000000..589225ebf8
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/f3d084cf20b92a5f026fe7cc6e5af49bde28693d
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/f4024b01.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/f4024b01.bin
new file mode 100644
index 0000000000..7097b7eb26
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/f4024b01.bin
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/f541d27e.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/f541d27e.bin
new file mode 100644
index 0000000000..50be7f342e
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/f541d27e.bin
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/f5424a9d7bd14317b6de7b15587df28bfde8362d b/test/core/end2end/fuzzers/server_fuzzer_corpus/f5424a9d7bd14317b6de7b15587df28bfde8362d
new file mode 100644
index 0000000000..ddfb3e4b52
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/f5424a9d7bd14317b6de7b15587df28bfde8362d
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/f5c877c4.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/f5c877c4.bin
new file mode 100644
index 0000000000..35cf8229fd
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/f5c877c4.bin
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/f74b9428.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/f74b9428.bin
new file mode 100644
index 0000000000..fd41223579
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/f74b9428.bin
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/f7bf0d7bb0dd6e1866ccef9fafc3cb295db2f07f b/test/core/end2end/fuzzers/server_fuzzer_corpus/f7bf0d7bb0dd6e1866ccef9fafc3cb295db2f07f
new file mode 100644
index 0000000000..cb892bd334
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/f7bf0d7bb0dd6e1866ccef9fafc3cb295db2f07f
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/f826100f.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/f826100f.bin
new file mode 100644
index 0000000000..a072e28d21
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/f826100f.bin
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/f88ffb7f3066f2706cfcd9be077595e07834cc15 b/test/core/end2end/fuzzers/server_fuzzer_corpus/f88ffb7f3066f2706cfcd9be077595e07834cc15
new file mode 100644
index 0000000000..d17e017210
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/f88ffb7f3066f2706cfcd9be077595e07834cc15
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/f8b46e92c7ceb4c2f2cdcb3452a6d8c58768eaa2 b/test/core/end2end/fuzzers/server_fuzzer_corpus/f8b46e92c7ceb4c2f2cdcb3452a6d8c58768eaa2
new file mode 100644
index 0000000000..db89ca108e
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/f8b46e92c7ceb4c2f2cdcb3452a6d8c58768eaa2
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/fa36b4280d9e28edd81c5e4d192d1a5c2765e5e4 b/test/core/end2end/fuzzers/server_fuzzer_corpus/fa36b4280d9e28edd81c5e4d192d1a5c2765e5e4
new file mode 100644
index 0000000000..6fe763300c
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/fa36b4280d9e28edd81c5e4d192d1a5c2765e5e4
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/fb3b0d80.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/fb3b0d80.bin
new file mode 100644
index 0000000000..b403188f43
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/fb3b0d80.bin
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/fd14bea45ecaf13af0053900edb2f17b71a0bf09 b/test/core/end2end/fuzzers/server_fuzzer_corpus/fd14bea45ecaf13af0053900edb2f17b71a0bf09
new file mode 100644
index 0000000000..fc84812d2d
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/fd14bea45ecaf13af0053900edb2f17b71a0bf09
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/fd26e0a6.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/fd26e0a6.bin
new file mode 100644
index 0000000000..999ed6bf0c
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/fd26e0a6.bin
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/fd943e69304dffebf47e1e40b0849e12abeee287 b/test/core/end2end/fuzzers/server_fuzzer_corpus/fd943e69304dffebf47e1e40b0849e12abeee287
new file mode 100644
index 0000000000..25ecfe113c
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/fd943e69304dffebf47e1e40b0849e12abeee287
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/fdf67df81857577361d319e76559c5e85a257b07 b/test/core/end2end/fuzzers/server_fuzzer_corpus/fdf67df81857577361d319e76559c5e85a257b07
new file mode 100644
index 0000000000..a4656806f7
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/fdf67df81857577361d319e76559c5e85a257b07
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/fe1957b9bc7c6bf9d8b6089c422d72a0f444da6e b/test/core/end2end/fuzzers/server_fuzzer_corpus/fe1957b9bc7c6bf9d8b6089c422d72a0f444da6e
new file mode 100644
index 0000000000..5c73a94051
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/fe1957b9bc7c6bf9d8b6089c422d72a0f444da6e
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/fe66893c.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/fe66893c.bin
new file mode 100644
index 0000000000..3a954cb30a
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/fe66893c.bin
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/fe69ddfa5827dd560bb0b5d4da7d982273f17ef9 b/test/core/end2end/fuzzers/server_fuzzer_corpus/fe69ddfa5827dd560bb0b5d4da7d982273f17ef9
new file mode 100644
index 0000000000..c20a0c8cf7
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/fe69ddfa5827dd560bb0b5d4da7d982273f17ef9
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/ff227015.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/ff227015.bin
new file mode 100644
index 0000000000..c9d6bf0766
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/ff227015.bin
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/ff898c08.bin b/test/core/end2end/fuzzers/server_fuzzer_corpus/ff898c08.bin
new file mode 100644
index 0000000000..ff0f909642
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/ff898c08.bin
Binary files differ
diff --git a/test/core/end2end/gen_build_yaml.py b/test/core/end2end/gen_build_yaml.py
index 43ad22e714..9a940a4ab5 100755
--- a/test/core/end2end/gen_build_yaml.py
+++ b/test/core/end2end/gen_build_yaml.py
@@ -94,6 +94,7 @@ END2END_TESTS = {
needs_dns=True),
'disappearing_server': connectivity_test_options,
'empty_batch': default_test_options,
+ 'filter_causes_close': default_test_options,
'graceful_server_shutdown': default_test_options._replace(cpu_cost=LOWCPU),
'hpack_size': default_test_options._replace(proxyable=False,
traceable=False),
diff --git a/test/core/end2end/tests/bad_hostname.c b/test/core/end2end/tests/bad_hostname.c
index eb1fa46de3..3cb9b3d4b1 100644
--- a/test/core/end2end/tests/bad_hostname.c
+++ b/test/core/end2end/tests/bad_hostname.c
@@ -179,3 +179,5 @@ void bad_hostname(grpc_end2end_test_config config) {
test_invoke_simple_request(config);
}
}
+
+void bad_hostname_pre_init(void) {}
diff --git a/test/core/end2end/tests/binary_metadata.c b/test/core/end2end/tests/binary_metadata.c
index 54583b09bc..994c3bf1dd 100644
--- a/test/core/end2end/tests/binary_metadata.c
+++ b/test/core/end2end/tests/binary_metadata.c
@@ -287,3 +287,5 @@ static void test_request_response_with_metadata_and_payload(
void binary_metadata(grpc_end2end_test_config config) {
test_request_response_with_metadata_and_payload(config);
}
+
+void binary_metadata_pre_init(void) {}
diff --git a/test/core/end2end/tests/call_creds.c b/test/core/end2end/tests/call_creds.c
index a3f86a76c7..b555bea740 100644
--- a/test/core/end2end/tests/call_creds.c
+++ b/test/core/end2end/tests/call_creds.c
@@ -475,3 +475,5 @@ void call_creds(grpc_end2end_test_config config) {
test_request_with_server_rejecting_client_creds(config);
}
}
+
+void call_creds_pre_init(void) {}
diff --git a/test/core/end2end/tests/cancel_after_accept.c b/test/core/end2end/tests/cancel_after_accept.c
index 08d0ef6e51..fc2a64a6c1 100644
--- a/test/core/end2end/tests/cancel_after_accept.c
+++ b/test/core/end2end/tests/cancel_after_accept.c
@@ -233,3 +233,5 @@ void cancel_after_accept(grpc_end2end_test_config config) {
test_cancel_after_accept(config, cancellation_modes[i]);
}
}
+
+void cancel_after_accept_pre_init(void) {}
diff --git a/test/core/end2end/tests/cancel_after_client_done.c b/test/core/end2end/tests/cancel_after_client_done.c
index f85ffad118..3bafa8c85f 100644
--- a/test/core/end2end/tests/cancel_after_client_done.c
+++ b/test/core/end2end/tests/cancel_after_client_done.c
@@ -237,3 +237,5 @@ void cancel_after_client_done(grpc_end2end_test_config config) {
test_cancel_after_accept_and_writes_closed(config, cancellation_modes[i]);
}
}
+
+void cancel_after_client_done_pre_init(void) {}
diff --git a/test/core/end2end/tests/cancel_after_invoke.c b/test/core/end2end/tests/cancel_after_invoke.c
index e7d6e0098a..fc2751af8e 100644
--- a/test/core/end2end/tests/cancel_after_invoke.c
+++ b/test/core/end2end/tests/cancel_after_invoke.c
@@ -199,3 +199,5 @@ void cancel_after_invoke(grpc_end2end_test_config config) {
}
}
}
+
+void cancel_after_invoke_pre_init(void) {}
diff --git a/test/core/end2end/tests/cancel_before_invoke.c b/test/core/end2end/tests/cancel_before_invoke.c
index a4f47f01fa..33005db9e4 100644
--- a/test/core/end2end/tests/cancel_before_invoke.c
+++ b/test/core/end2end/tests/cancel_before_invoke.c
@@ -194,3 +194,5 @@ void cancel_before_invoke(grpc_end2end_test_config config) {
test_cancel_before_invoke(config, i);
}
}
+
+void cancel_before_invoke_pre_init(void) {}
diff --git a/test/core/end2end/tests/cancel_in_a_vacuum.c b/test/core/end2end/tests/cancel_in_a_vacuum.c
index 73a6fc452a..0c893b5f9e 100644
--- a/test/core/end2end/tests/cancel_in_a_vacuum.c
+++ b/test/core/end2end/tests/cancel_in_a_vacuum.c
@@ -127,3 +127,5 @@ void cancel_in_a_vacuum(grpc_end2end_test_config config) {
test_cancel_in_a_vacuum(config, cancellation_modes[i]);
}
}
+
+void cancel_in_a_vacuum_pre_init(void) {}
diff --git a/test/core/end2end/tests/cancel_with_status.c b/test/core/end2end/tests/cancel_with_status.c
index aa73d48891..c3ee4a6a0e 100644
--- a/test/core/end2end/tests/cancel_with_status.c
+++ b/test/core/end2end/tests/cancel_with_status.c
@@ -182,3 +182,5 @@ void cancel_with_status(grpc_end2end_test_config config) {
test_invoke_simple_request(config, i);
}
}
+
+void cancel_with_status_pre_init(void) {}
diff --git a/test/core/end2end/tests/compressed_payload.c b/test/core/end2end/tests/compressed_payload.c
index d5cf9a7858..589bc314f8 100644
--- a/test/core/end2end/tests/compressed_payload.c
+++ b/test/core/end2end/tests/compressed_payload.c
@@ -336,3 +336,5 @@ void compressed_payload(grpc_end2end_test_config config) {
test_invoke_request_with_compressed_payload(config);
test_invoke_request_with_compressed_payload_md_override(config);
}
+
+void compressed_payload_pre_init(void) {}
diff --git a/test/core/end2end/tests/connectivity.c b/test/core/end2end/tests/connectivity.c
index edef2ff68b..5775976b1c 100644
--- a/test/core/end2end/tests/connectivity.c
+++ b/test/core/end2end/tests/connectivity.c
@@ -172,3 +172,5 @@ void connectivity(grpc_end2end_test_config config) {
GPR_ASSERT(config.feature_mask & FEATURE_MASK_SUPPORTS_DELAYED_CONNECTION);
test_connectivity(config);
}
+
+void connectivity_pre_init(void) {}
diff --git a/test/core/end2end/tests/default_host.c b/test/core/end2end/tests/default_host.c
index 105f4e68f0..44384a783e 100644
--- a/test/core/end2end/tests/default_host.c
+++ b/test/core/end2end/tests/default_host.c
@@ -232,3 +232,5 @@ void default_host(grpc_end2end_test_config config) {
return;
test_invoke_simple_request(config);
}
+
+void default_host_pre_init(void) {}
diff --git a/test/core/end2end/tests/disappearing_server.c b/test/core/end2end/tests/disappearing_server.c
index 5b2bbaf70c..03d1ded04c 100644
--- a/test/core/end2end/tests/disappearing_server.c
+++ b/test/core/end2end/tests/disappearing_server.c
@@ -213,3 +213,5 @@ void disappearing_server(grpc_end2end_test_config config) {
GPR_ASSERT(config.feature_mask & FEATURE_MASK_SUPPORTS_DELAYED_CONNECTION);
disappearing_server_test(config);
}
+
+void disappearing_server_pre_init(void) {}
diff --git a/test/core/end2end/tests/empty_batch.c b/test/core/end2end/tests/empty_batch.c
index 95df93ac5b..c05b919914 100644
--- a/test/core/end2end/tests/empty_batch.c
+++ b/test/core/end2end/tests/empty_batch.c
@@ -132,3 +132,5 @@ static void test_invoke_empty_body(grpc_end2end_test_config config) {
void empty_batch(grpc_end2end_test_config config) {
test_invoke_empty_body(config);
}
+
+void empty_batch_pre_init(void) {}
diff --git a/test/core/end2end/tests/filter_causes_close.c b/test/core/end2end/tests/filter_causes_close.c
new file mode 100644
index 0000000000..ca54167b20
--- /dev/null
+++ b/test/core/end2end/tests/filter_causes_close.c
@@ -0,0 +1,289 @@
+/*
+ *
+ * Copyright 2015, Google Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+#include "test/core/end2end/end2end_tests.h"
+
+#include <stdbool.h>
+#include <stdio.h>
+#include <string.h>
+
+#include <grpc/byte_buffer.h>
+#include <grpc/support/alloc.h>
+#include <grpc/support/log.h>
+#include <grpc/support/time.h>
+#include <grpc/support/useful.h>
+#include "src/core/lib/channel/channel_stack_builder.h"
+#include "src/core/lib/surface/channel_init.h"
+#include "test/core/end2end/cq_verifier.h"
+
+enum { TIMEOUT = 200000 };
+
+static bool g_enable_filter = false;
+
+static void *tag(intptr_t t) { return (void *)t; }
+
+static grpc_end2end_test_fixture begin_test(grpc_end2end_test_config config,
+ const char *test_name,
+ grpc_channel_args *client_args,
+ grpc_channel_args *server_args) {
+ grpc_end2end_test_fixture f;
+ gpr_log(GPR_INFO, "%s/%s", test_name, config.name);
+ f = config.create_fixture(client_args, server_args);
+ config.init_server(&f, server_args);
+ config.init_client(&f, client_args);
+ return f;
+}
+
+static gpr_timespec n_seconds_time(int n) {
+ return GRPC_TIMEOUT_SECONDS_TO_DEADLINE(n);
+}
+
+static gpr_timespec five_seconds_time(void) { return n_seconds_time(5); }
+
+static void drain_cq(grpc_completion_queue *cq) {
+ grpc_event ev;
+ do {
+ ev = grpc_completion_queue_next(cq, five_seconds_time(), NULL);
+ } while (ev.type != GRPC_QUEUE_SHUTDOWN);
+}
+
+static void shutdown_server(grpc_end2end_test_fixture *f) {
+ if (!f->server) return;
+ grpc_server_shutdown_and_notify(f->server, f->cq, tag(1000));
+ GPR_ASSERT(grpc_completion_queue_pluck(
+ f->cq, tag(1000), GRPC_TIMEOUT_SECONDS_TO_DEADLINE(5), NULL)
+ .type == GRPC_OP_COMPLETE);
+ grpc_server_destroy(f->server);
+ f->server = NULL;
+}
+
+static void shutdown_client(grpc_end2end_test_fixture *f) {
+ if (!f->client) return;
+ grpc_channel_destroy(f->client);
+ f->client = NULL;
+}
+
+static void end_test(grpc_end2end_test_fixture *f) {
+ shutdown_server(f);
+ shutdown_client(f);
+
+ grpc_completion_queue_shutdown(f->cq);
+ drain_cq(f->cq);
+ grpc_completion_queue_destroy(f->cq);
+}
+
+/* Request with a large amount of metadata.*/
+static void test_request(grpc_end2end_test_config config) {
+ grpc_call *c;
+ grpc_call *s;
+ gpr_slice request_payload_slice = gpr_slice_from_copied_string("hello world");
+ grpc_byte_buffer *request_payload =
+ grpc_raw_byte_buffer_create(&request_payload_slice, 1);
+ gpr_timespec deadline = five_seconds_time();
+ grpc_end2end_test_fixture f =
+ begin_test(config, "filter_causes_close", NULL, NULL);
+ cq_verifier *cqv = cq_verifier_create(f.cq);
+ grpc_op ops[6];
+ grpc_op *op;
+ grpc_metadata_array initial_metadata_recv;
+ grpc_metadata_array trailing_metadata_recv;
+ grpc_metadata_array request_metadata_recv;
+ grpc_byte_buffer *request_payload_recv = NULL;
+ grpc_call_details call_details;
+ grpc_status_code status;
+ grpc_call_error error;
+ char *details = NULL;
+ size_t details_capacity = 0;
+
+ c = grpc_channel_create_call(f.client, NULL, GRPC_PROPAGATE_DEFAULTS, f.cq,
+ "/foo", "foo.test.google.fr", deadline, NULL);
+ GPR_ASSERT(c);
+
+ grpc_metadata_array_init(&initial_metadata_recv);
+ grpc_metadata_array_init(&trailing_metadata_recv);
+ grpc_metadata_array_init(&request_metadata_recv);
+ grpc_call_details_init(&call_details);
+
+ op = ops;
+ op->op = GRPC_OP_SEND_INITIAL_METADATA;
+ op->data.send_initial_metadata.count = 0;
+ op->data.send_initial_metadata.metadata = NULL;
+ op->flags = 0;
+ op->reserved = NULL;
+ op++;
+ op->op = GRPC_OP_SEND_MESSAGE;
+ op->data.send_message = request_payload;
+ op->flags = 0;
+ op->reserved = NULL;
+ op++;
+ op->op = GRPC_OP_SEND_CLOSE_FROM_CLIENT;
+ op->flags = 0;
+ op->reserved = NULL;
+ op++;
+ op->op = GRPC_OP_RECV_INITIAL_METADATA;
+ op->data.recv_initial_metadata = &initial_metadata_recv;
+ op->flags = 0;
+ op->reserved = NULL;
+ op++;
+ op->op = GRPC_OP_RECV_STATUS_ON_CLIENT;
+ op->data.recv_status_on_client.trailing_metadata = &trailing_metadata_recv;
+ op->data.recv_status_on_client.status = &status;
+ op->data.recv_status_on_client.status_details = &details;
+ op->data.recv_status_on_client.status_details_capacity = &details_capacity;
+ op->flags = 0;
+ op->reserved = NULL;
+ op++;
+ error = grpc_call_start_batch(c, ops, (size_t)(op - ops), tag(1), NULL);
+ GPR_ASSERT(GRPC_CALL_OK == error);
+
+ error =
+ grpc_server_request_call(f.server, &s, &call_details,
+ &request_metadata_recv, f.cq, f.cq, tag(101));
+ GPR_ASSERT(GRPC_CALL_OK == error);
+
+ cq_expect_completion(cqv, tag(1), 1);
+ cq_verify(cqv);
+
+ GPR_ASSERT(status == GRPC_STATUS_PERMISSION_DENIED);
+ GPR_ASSERT(0 == strcmp(details, "Random failure that's not preventable."));
+
+ gpr_free(details);
+ 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);
+
+ grpc_call_destroy(c);
+
+ cq_verifier_destroy(cqv);
+
+ grpc_byte_buffer_destroy(request_payload);
+ grpc_byte_buffer_destroy(request_payload_recv);
+
+ end_test(&f);
+ config.tear_down_data(&f);
+}
+
+/*******************************************************************************
+ * Test filter - always closes incoming requests
+ */
+
+typedef struct { grpc_closure *recv_im_ready; } call_data;
+
+typedef struct { uint8_t unused; } channel_data;
+
+static void recv_im_ready(grpc_exec_ctx *exec_ctx, void *arg, bool success) {
+ grpc_call_element *elem = arg;
+ call_data *calld = elem->call_data;
+ if (success) {
+ // close the stream with an error.
+ gpr_slice message;
+ grpc_transport_stream_op close_op;
+ memset(&close_op, 0, sizeof(close_op));
+ message =
+ gpr_slice_from_copied_string("Random failure that's not preventable.");
+ grpc_transport_stream_op op;
+ memset(&op, 0, sizeof(op));
+ grpc_transport_stream_op_add_close(&op, GRPC_STATUS_PERMISSION_DENIED,
+ &message);
+ grpc_call_next_op(exec_ctx, elem, &op);
+ }
+ calld->recv_im_ready->cb(exec_ctx, calld->recv_im_ready->cb_arg, false);
+}
+
+static void start_transport_stream_op(grpc_exec_ctx *exec_ctx,
+ grpc_call_element *elem,
+ grpc_transport_stream_op *op) {
+ call_data *calld = elem->call_data;
+ if (op->recv_initial_metadata != NULL) {
+ calld->recv_im_ready = op->recv_initial_metadata_ready;
+ op->recv_initial_metadata_ready = grpc_closure_create(recv_im_ready, elem);
+ }
+ grpc_call_next_op(exec_ctx, elem, op);
+}
+
+static void init_call_elem(grpc_exec_ctx *exec_ctx, grpc_call_element *elem,
+ grpc_call_element_args *args) {}
+
+static void destroy_call_elem(grpc_exec_ctx *exec_ctx,
+ grpc_call_element *elem) {}
+
+static void init_channel_elem(grpc_exec_ctx *exec_ctx,
+ grpc_channel_element *elem,
+ grpc_channel_element_args *args) {}
+
+static void destroy_channel_elem(grpc_exec_ctx *exec_ctx,
+ grpc_channel_element *elem) {}
+
+static const grpc_channel_filter test_filter = {
+ start_transport_stream_op,
+ grpc_channel_next_op,
+ sizeof(call_data),
+ init_call_elem,
+ grpc_call_stack_ignore_set_pollset,
+ destroy_call_elem,
+ sizeof(channel_data),
+ init_channel_elem,
+ destroy_channel_elem,
+ grpc_call_next_get_peer,
+ "filter_causes_close"};
+
+/*******************************************************************************
+ * Registration
+ */
+
+static bool maybe_add_filter(grpc_channel_stack_builder *builder, void *arg) {
+ if (g_enable_filter) {
+ return grpc_channel_stack_builder_prepend_filter(builder, &test_filter,
+ NULL, NULL);
+ } else {
+ return true;
+ }
+}
+
+static void init_plugin(void) {
+ grpc_channel_init_register_stage(GRPC_SERVER_CHANNEL, 0, maybe_add_filter,
+ NULL);
+}
+
+static void destroy_plugin(void) {}
+
+void filter_causes_close(grpc_end2end_test_config config) {
+ g_enable_filter = true;
+ test_request(config);
+ g_enable_filter = false;
+}
+
+void filter_causes_close_pre_init(void) {
+ grpc_register_plugin(init_plugin, destroy_plugin);
+}
diff --git a/test/core/end2end/tests/graceful_server_shutdown.c b/test/core/end2end/tests/graceful_server_shutdown.c
index cc6a9d44f8..26198f3bdf 100644
--- a/test/core/end2end/tests/graceful_server_shutdown.c
+++ b/test/core/end2end/tests/graceful_server_shutdown.c
@@ -210,3 +210,5 @@ static void test_early_server_shutdown_finishes_inflight_calls(
void graceful_server_shutdown(grpc_end2end_test_config config) {
test_early_server_shutdown_finishes_inflight_calls(config);
}
+
+void graceful_server_shutdown_pre_init(void) {}
diff --git a/test/core/end2end/tests/high_initial_seqno.c b/test/core/end2end/tests/high_initial_seqno.c
index 8b6e50bdd8..374606dcb7 100644
--- a/test/core/end2end/tests/high_initial_seqno.c
+++ b/test/core/end2end/tests/high_initial_seqno.c
@@ -237,3 +237,5 @@ void high_initial_seqno(grpc_end2end_test_config config) {
test_invoke_10_simple_requests(config, 2147483645);
}
}
+
+void high_initial_seqno_pre_init(void) {}
diff --git a/test/core/end2end/tests/hpack_size.c b/test/core/end2end/tests/hpack_size.c
index 15efcd23bf..07d5d387b4 100644
--- a/test/core/end2end/tests/hpack_size.c
+++ b/test/core/end2end/tests/hpack_size.c
@@ -444,3 +444,5 @@ void hpack_size(grpc_end2end_test_config config) {
}
}
}
+
+void hpack_size_pre_init(void) {}
diff --git a/test/core/end2end/tests/idempotent_request.c b/test/core/end2end/tests/idempotent_request.c
index 1bc6450414..e53f3b2aaa 100644
--- a/test/core/end2end/tests/idempotent_request.c
+++ b/test/core/end2end/tests/idempotent_request.c
@@ -246,3 +246,5 @@ void idempotent_request(grpc_end2end_test_config config) {
}
test_invoke_10_simple_requests(config);
}
+
+void idempotent_request_pre_init(void) {}
diff --git a/test/core/end2end/tests/invoke_large_request.c b/test/core/end2end/tests/invoke_large_request.c
index 28c0e36461..6410305451 100644
--- a/test/core/end2end/tests/invoke_large_request.c
+++ b/test/core/end2end/tests/invoke_large_request.c
@@ -254,3 +254,5 @@ static void test_invoke_large_request(grpc_end2end_test_config config) {
void invoke_large_request(grpc_end2end_test_config config) {
test_invoke_large_request(config);
}
+
+void invoke_large_request_pre_init(void) {}
diff --git a/test/core/end2end/tests/large_metadata.c b/test/core/end2end/tests/large_metadata.c
index 173c20996e..0e5d6b4fe0 100644
--- a/test/core/end2end/tests/large_metadata.c
+++ b/test/core/end2end/tests/large_metadata.c
@@ -245,3 +245,5 @@ static void test_request_with_large_metadata(grpc_end2end_test_config config) {
void large_metadata(grpc_end2end_test_config config) {
test_request_with_large_metadata(config);
}
+
+void large_metadata_pre_init(void) {}
diff --git a/test/core/end2end/tests/max_concurrent_streams.c b/test/core/end2end/tests/max_concurrent_streams.c
index 60e9ecd7d8..1bb53073cb 100644
--- a/test/core/end2end/tests/max_concurrent_streams.c
+++ b/test/core/end2end/tests/max_concurrent_streams.c
@@ -436,3 +436,5 @@ static void test_max_concurrent_streams(grpc_end2end_test_config config) {
void max_concurrent_streams(grpc_end2end_test_config config) {
test_max_concurrent_streams(config);
}
+
+void max_concurrent_streams_pre_init(void) {}
diff --git a/test/core/end2end/tests/max_message_length.c b/test/core/end2end/tests/max_message_length.c
index 00a83ecb33..b5dbc1382a 100644
--- a/test/core/end2end/tests/max_message_length.c
+++ b/test/core/end2end/tests/max_message_length.c
@@ -221,3 +221,5 @@ static void test_max_message_length(grpc_end2end_test_config config) {
void max_message_length(grpc_end2end_test_config config) {
test_max_message_length(config);
}
+
+void max_message_length_pre_init(void) {}
diff --git a/test/core/end2end/tests/negative_deadline.c b/test/core/end2end/tests/negative_deadline.c
index 0cc68a33a1..03e57a90f6 100644
--- a/test/core/end2end/tests/negative_deadline.c
+++ b/test/core/end2end/tests/negative_deadline.c
@@ -179,3 +179,5 @@ void negative_deadline(grpc_end2end_test_config config) {
test_invoke_simple_request(config, i);
}
}
+
+void negative_deadline_pre_init(void) {}
diff --git a/test/core/end2end/tests/no_op.c b/test/core/end2end/tests/no_op.c
index 9dda569cb9..284be7af2a 100644
--- a/test/core/end2end/tests/no_op.c
+++ b/test/core/end2end/tests/no_op.c
@@ -104,3 +104,5 @@ static void test_no_op(grpc_end2end_test_config config) {
}
void no_op(grpc_end2end_test_config config) { test_no_op(config); }
+
+void no_op_pre_init(void) {}
diff --git a/test/core/end2end/tests/payload.c b/test/core/end2end/tests/payload.c
index e9272b6bce..bdfb135406 100644
--- a/test/core/end2end/tests/payload.c
+++ b/test/core/end2end/tests/payload.c
@@ -268,3 +268,5 @@ void payload(grpc_end2end_test_config config) {
test_invoke_request_response_with_payload(config);
test_invoke_10_request_response_with_payload(config);
}
+
+void payload_pre_init(void) {}
diff --git a/test/core/end2end/tests/ping.c b/test/core/end2end/tests/ping.c
index f42f186502..d49bec983b 100644
--- a/test/core/end2end/tests/ping.c
+++ b/test/core/end2end/tests/ping.c
@@ -95,3 +95,5 @@ void ping(grpc_end2end_test_config config) {
GPR_ASSERT(config.feature_mask & FEATURE_MASK_SUPPORTS_DELAYED_CONNECTION);
test_ping(config);
}
+
+void ping_pre_init(void) {}
diff --git a/test/core/end2end/tests/ping_pong_streaming.c b/test/core/end2end/tests/ping_pong_streaming.c
index ac4e810573..15e1c6e338 100644
--- a/test/core/end2end/tests/ping_pong_streaming.c
+++ b/test/core/end2end/tests/ping_pong_streaming.c
@@ -275,3 +275,5 @@ void ping_pong_streaming(grpc_end2end_test_config config) {
test_pingpong_streaming(config, i);
}
}
+
+void ping_pong_streaming_pre_init(void) {}
diff --git a/test/core/end2end/tests/registered_call.c b/test/core/end2end/tests/registered_call.c
index a67df863d5..3c4edbae7d 100644
--- a/test/core/end2end/tests/registered_call.c
+++ b/test/core/end2end/tests/registered_call.c
@@ -231,3 +231,5 @@ void registered_call(grpc_end2end_test_config config) {
test_invoke_simple_request(config);
test_invoke_10_simple_requests(config);
}
+
+void registered_call_pre_init(void) {}
diff --git a/test/core/end2end/tests/request_with_flags.c b/test/core/end2end/tests/request_with_flags.c
index 9d01ddc94c..779895b970 100644
--- a/test/core/end2end/tests/request_with_flags.c
+++ b/test/core/end2end/tests/request_with_flags.c
@@ -214,3 +214,5 @@ void request_with_flags(grpc_end2end_test_config config) {
}
}
}
+
+void request_with_flags_pre_init(void) {}
diff --git a/test/core/end2end/tests/request_with_payload.c b/test/core/end2end/tests/request_with_payload.c
index 9866d39000..7706404090 100644
--- a/test/core/end2end/tests/request_with_payload.c
+++ b/test/core/end2end/tests/request_with_payload.c
@@ -232,3 +232,5 @@ static void test_invoke_request_with_payload(grpc_end2end_test_config config) {
void request_with_payload(grpc_end2end_test_config config) {
test_invoke_request_with_payload(config);
}
+
+void request_with_payload_pre_init(void) {}
diff --git a/test/core/end2end/tests/server_finishes_request.c b/test/core/end2end/tests/server_finishes_request.c
index 2a26c98916..a4f5319e5b 100644
--- a/test/core/end2end/tests/server_finishes_request.c
+++ b/test/core/end2end/tests/server_finishes_request.c
@@ -210,3 +210,5 @@ static void test_invoke_simple_request(grpc_end2end_test_config config) {
void server_finishes_request(grpc_end2end_test_config config) {
test_invoke_simple_request(config);
}
+
+void server_finishes_request_pre_init(void) {}
diff --git a/test/core/end2end/tests/shutdown_finishes_calls.c b/test/core/end2end/tests/shutdown_finishes_calls.c
index b56ba464b9..80287cd507 100644
--- a/test/core/end2end/tests/shutdown_finishes_calls.c
+++ b/test/core/end2end/tests/shutdown_finishes_calls.c
@@ -192,3 +192,5 @@ static void test_early_server_shutdown_finishes_inflight_calls(
void shutdown_finishes_calls(grpc_end2end_test_config config) {
test_early_server_shutdown_finishes_inflight_calls(config);
}
+
+void shutdown_finishes_calls_pre_init(void) {}
diff --git a/test/core/end2end/tests/shutdown_finishes_tags.c b/test/core/end2end/tests/shutdown_finishes_tags.c
index 4a060de716..b1f3c94562 100644
--- a/test/core/end2end/tests/shutdown_finishes_tags.c
+++ b/test/core/end2end/tests/shutdown_finishes_tags.c
@@ -119,3 +119,5 @@ static void test_early_server_shutdown_finishes_tags(
void shutdown_finishes_tags(grpc_end2end_test_config config) {
test_early_server_shutdown_finishes_tags(config);
}
+
+void shutdown_finishes_tags_pre_init(void) {}
diff --git a/test/core/end2end/tests/simple_delayed_request.c b/test/core/end2end/tests/simple_delayed_request.c
index 122dcd0a5b..400b3a0027 100644
--- a/test/core/end2end/tests/simple_delayed_request.c
+++ b/test/core/end2end/tests/simple_delayed_request.c
@@ -221,3 +221,5 @@ void simple_delayed_request(grpc_end2end_test_config config) {
test_simple_delayed_request_short(config);
test_simple_delayed_request_long(config);
}
+
+void simple_delayed_request_pre_init(void) {}
diff --git a/test/core/end2end/tests/simple_metadata.c b/test/core/end2end/tests/simple_metadata.c
index 084c0df817..707b3c9512 100644
--- a/test/core/end2end/tests/simple_metadata.c
+++ b/test/core/end2end/tests/simple_metadata.c
@@ -263,3 +263,5 @@ static void test_request_response_with_metadata_and_payload(
void simple_metadata(grpc_end2end_test_config config) {
test_request_response_with_metadata_and_payload(config);
}
+
+void simple_metadata_pre_init(void) {}
diff --git a/test/core/end2end/tests/simple_request.c b/test/core/end2end/tests/simple_request.c
index 68db58d225..42108425e6 100644
--- a/test/core/end2end/tests/simple_request.c
+++ b/test/core/end2end/tests/simple_request.c
@@ -246,3 +246,5 @@ void simple_request(grpc_end2end_test_config config) {
}
test_invoke_10_simple_requests(config);
}
+
+void simple_request_pre_init(void) {}
diff --git a/test/core/end2end/tests/trailing_metadata.c b/test/core/end2end/tests/trailing_metadata.c
index 99e1e2264a..4dd8c12cba 100644
--- a/test/core/end2end/tests/trailing_metadata.c
+++ b/test/core/end2end/tests/trailing_metadata.c
@@ -268,3 +268,5 @@ static void test_request_response_with_metadata_and_payload(
void trailing_metadata(grpc_end2end_test_config config) {
test_request_response_with_metadata_and_payload(config);
}
+
+void trailing_metadata_pre_init(void) {}
diff --git a/test/core/http/corpus/3787bcc22ef645e665cc5f722b8a633af86de9cf b/test/core/http/corpus/3787bcc22ef645e665cc5f722b8a633af86de9cf
new file mode 100644
index 0000000000..4efa386f3b
--- /dev/null
+++ b/test/core/http/corpus/3787bcc22ef645e665cc5f722b8a633af86de9cf
@@ -0,0 +1,9 @@
+HTTP/1.1 200 OKH TTP/16.1 200 OK
+tesH
+tHTTP/00.021 :Oeś,H
+test: h!eHTTP/1.1 200 OKH
+llo
+
+abcdtH
+TTP/01.021 : Oes,H
+tes \ No newline at end of file
diff --git a/test/core/http/corpus/ae8ba95d7dbe99926a8f5bfd80347fd6a4b616a0 b/test/core/http/corpus/ae8ba95d7dbe99926a8f5bfd80347fd6a4b616a0
new file mode 100644
index 0000000000..6075d0a5d7
--- /dev/null
+++ b/test/core/http/corpus/ae8ba95d7dbe99926a8f5bfd80347fd6a4b616a0
@@ -0,0 +1,17 @@
+HTTP/1.1 200 OKH TTP/16.1 200 OK
+tesH
+tHHTTP/1.1 20TTP/00.021 :Oeś,H
+test: h!eHTTP/1.1 200 OKH
+llo
+
+abcdtH
+TTP/01.021 : Oes,0 OKH TTP/16.1 200 OK
+tesH
+tHTTP/00.021 :Oeś,H
+test: h!eHTTP/1.1 200 OKH
+llo
+
+abcdtH
+TTP/01.021 : Oes,H
+Ht
+teses \ No newline at end of file
diff --git a/test/core/http/corpus/d39c8ee11a697634a09b309460c0bbd967e7effa b/test/core/http/corpus/d39c8ee11a697634a09b309460c0bbd967e7effa
new file mode 100644
index 0000000000..e241a0c01c
--- /dev/null
+++ b/test/core/http/corpus/d39c8ee11a697634a09b309460c0bbd967e7effa
@@ -0,0 +1,17 @@
+HTTP/1.1 200 OKH TTP/16.1 200 OK
+tesHTTP/1.1 200 OKH TTP/16.1 200 OK
+tesH
+tHTTP/00.021 :Oeś,H
+test: h!eHTTP/1.1 200H
+tHTTP/00.010 :Oeś,H
+test: h!eHTTP/1.… 200 OKH
+llo
+
+abcdtH
+TTP/01.02 : Oes,H OKH
+llo
+
+abcdtH
+TTP/01.021 : Oes ,
+H
+tteess \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/7ff3b6239b04479a9caf67f45b2d0c619f712815 b/test/core/transport/chttp2/hpack_parser_corpus/7ff3b6239b04479a9caf67f45b2d0c619f712815
new file mode 100644
index 0000000000..2b2b727c2e
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/7ff3b6239b04479a9caf67f45b2d0c619f712815
Binary files differ
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/d1c7ae01a81a122c2fd7c5d8debcae7566e9ee2f b/test/core/transport/chttp2/hpack_parser_corpus/d1c7ae01a81a122c2fd7c5d8debcae7566e9ee2f
new file mode 100644
index 0000000000..4547f5a85c
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/d1c7ae01a81a122c2fd7c5d8debcae7566e9ee2f
Binary files differ
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/ff2c949863eb4e14d9e835c51591304403d91b6c b/test/core/transport/chttp2/hpack_parser_corpus/ff2c949863eb4e14d9e835c51591304403d91b6c
new file mode 100644
index 0000000000..b9b44ea4a0
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/ff2c949863eb4e14d9e835c51591304403d91b6c
Binary files differ
diff --git a/test/core/transport/chttp2/hpack_parser_fuzzer_test.c b/test/core/transport/chttp2/hpack_parser_fuzzer_test.c
index 4a4472f552..e41eda8653 100644
--- a/test/core/transport/chttp2/hpack_parser_fuzzer_test.c
+++ b/test/core/transport/chttp2/hpack_parser_fuzzer_test.c
@@ -36,13 +36,16 @@
#include <grpc/grpc.h>
#include <grpc/support/alloc.h>
+#include <grpc/support/log.h>
#include "src/core/ext/transport/chttp2/transport/hpack_parser.h"
static void onhdr(void *ud, grpc_mdelem *md) { GRPC_MDELEM_UNREF(md); }
+static void dont_log(gpr_log_func_args *args) {}
int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
grpc_test_only_set_metadata_hash_seed(0);
+ gpr_set_log_function(dont_log);
grpc_init();
grpc_chttp2_hpack_parser parser;
grpc_chttp2_hpack_parser_init(&parser);
diff --git a/test/core/util/mock_endpoint.c b/test/core/util/mock_endpoint.c
new file mode 100644
index 0000000000..7768413095
--- /dev/null
+++ b/test/core/util/mock_endpoint.c
@@ -0,0 +1,124 @@
+/*
+ *
+ * Copyright 2016, Google Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+#include "test/core/util/mock_endpoint.h"
+
+#include <grpc/support/alloc.h>
+#include <grpc/support/string_util.h>
+
+typedef struct grpc_mock_endpoint {
+ grpc_endpoint base;
+ gpr_mu mu;
+ void (*on_write)(gpr_slice slice);
+ gpr_slice_buffer read_buffer;
+ gpr_slice_buffer *on_read_out;
+ grpc_closure *on_read;
+} grpc_mock_endpoint;
+
+static void me_read(grpc_exec_ctx *exec_ctx, grpc_endpoint *ep,
+ gpr_slice_buffer *slices, grpc_closure *cb) {
+ grpc_mock_endpoint *m = (grpc_mock_endpoint *)ep;
+ gpr_mu_lock(&m->mu);
+ if (m->read_buffer.count > 0) {
+ gpr_slice_buffer_swap(&m->read_buffer, slices);
+ grpc_exec_ctx_enqueue(exec_ctx, cb, true, NULL);
+ } else {
+ m->on_read = cb;
+ m->on_read_out = slices;
+ }
+ gpr_mu_unlock(&m->mu);
+}
+
+static void me_write(grpc_exec_ctx *exec_ctx, grpc_endpoint *ep,
+ gpr_slice_buffer *slices, grpc_closure *cb) {
+ grpc_mock_endpoint *m = (grpc_mock_endpoint *)ep;
+ for (size_t i = 0; i < slices->count; i++) {
+ m->on_write(slices->slices[i]);
+ }
+ grpc_exec_ctx_enqueue(exec_ctx, cb, true, NULL);
+}
+
+static void me_add_to_pollset(grpc_exec_ctx *exec_ctx, grpc_endpoint *ep,
+ grpc_pollset *pollset) {}
+
+static void me_add_to_pollset_set(grpc_exec_ctx *exec_ctx, grpc_endpoint *ep,
+ grpc_pollset_set *pollset) {}
+
+static void me_shutdown(grpc_exec_ctx *exec_ctx, grpc_endpoint *ep) {
+ grpc_mock_endpoint *m = (grpc_mock_endpoint *)ep;
+ gpr_mu_lock(&m->mu);
+ if (m->on_read) {
+ grpc_exec_ctx_enqueue(exec_ctx, m->on_read, false, NULL);
+ m->on_read = NULL;
+ }
+ gpr_mu_unlock(&m->mu);
+}
+
+static void me_destroy(grpc_exec_ctx *exec_ctx, grpc_endpoint *ep) {
+ grpc_mock_endpoint *m = (grpc_mock_endpoint *)ep;
+ gpr_slice_buffer_destroy(&m->read_buffer);
+ gpr_free(m);
+}
+
+static char *me_get_peer(grpc_endpoint *ep) {
+ return gpr_strdup("fake:mock_endpoint");
+}
+
+static const grpc_endpoint_vtable vtable = {
+ me_read, me_write, me_add_to_pollset, me_add_to_pollset_set,
+ me_shutdown, me_destroy, me_get_peer,
+};
+
+grpc_endpoint *grpc_mock_endpoint_create(void (*on_write)(gpr_slice slice)) {
+ grpc_mock_endpoint *m = gpr_malloc(sizeof(*m));
+ m->base.vtable = &vtable;
+ gpr_slice_buffer_init(&m->read_buffer);
+ gpr_mu_init(&m->mu);
+ m->on_write = on_write;
+ m->on_read = NULL;
+ return &m->base;
+}
+
+void grpc_mock_endpoint_put_read(grpc_exec_ctx *exec_ctx, grpc_endpoint *ep,
+ gpr_slice slice) {
+ grpc_mock_endpoint *m = (grpc_mock_endpoint *)ep;
+ gpr_mu_lock(&m->mu);
+ if (m->on_read != NULL) {
+ gpr_slice_buffer_add(m->on_read_out, slice);
+ grpc_exec_ctx_enqueue(exec_ctx, m->on_read, true, NULL);
+ m->on_read = NULL;
+ } else {
+ gpr_slice_buffer_add(&m->read_buffer, slice);
+ }
+ gpr_mu_unlock(&m->mu);
+}
diff --git a/test/core/util/mock_endpoint.h b/test/core/util/mock_endpoint.h
new file mode 100644
index 0000000000..051af9866b
--- /dev/null
+++ b/test/core/util/mock_endpoint.h
@@ -0,0 +1,43 @@
+/*
+ *
+ * Copyright 2016, Google Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+#ifndef MOCK_ENDPOINT_H
+#define MOCK_ENDPOINT_H
+
+#include "src/core/lib/iomgr/endpoint.h"
+
+grpc_endpoint *grpc_mock_endpoint_create(void (*on_write)(gpr_slice slice));
+void grpc_mock_endpoint_put_read(grpc_exec_ctx *exec_ctx,
+ grpc_endpoint *mock_endpoint, gpr_slice slice);
+
+#endif