Skip to content
Snippets Groups Projects
Commit 9366684d authored by Craig Tiller's avatar Craig Tiller
Browse files

Expand corpus, add test

parent b33d5cde
No related branches found
No related tags found
No related merge requests found
...@@ -178,6 +178,32 @@ static void test_fails(grpc_slice_split_mode split_mode, char *response) { ...@@ -178,6 +178,32 @@ static void test_fails(grpc_slice_split_mode split_mode, char *response) {
gpr_free(slices); gpr_free(slices);
} }
static const uint8_t failed_test1[] = {
0x9e,0x48,0x54,0x54,0x50,0x2f,0x31,0x2e,0x30,0x4a,0x48,0x54,0x54,0x30,0x32,0x16,0xa,0x2f,0x48,0x20,0x31,0x2e,0x31,0x20,0x32,0x30,0x31,0x54,0x54,0xb9,0x32,0x31,0x2e,0x20,0x32,0x30,0x20,
};
typedef struct {
const char *name;
const uint8_t * data;
size_t length;
} failed_test;
#define FAILED_TEST(name) {#name, name, sizeof(name)}
failed_test failed_tests[] = {
FAILED_TEST(failed_test1),
};
static void test_doesnt_crash(failed_test t) {
gpr_log(GPR_DEBUG, "Run previously failed test: %s", t.name);
grpc_http_parser p;
grpc_http_parser_init(&p);
gpr_slice slice = gpr_slice_from_copied_buffer((const char*)t.data,t.length);
grpc_http_parser_parse(&p, slice);
gpr_slice_unref(slice);
grpc_http_parser_destroy(&p);
}
int main(int argc, char **argv) { int main(int argc, char **argv) {
size_t i; size_t i;
const grpc_slice_split_mode split_modes[] = {GRPC_SLICE_SPLIT_IDENTITY, const grpc_slice_split_mode split_modes[] = {GRPC_SLICE_SPLIT_IDENTITY,
...@@ -186,6 +212,10 @@ int main(int argc, char **argv) { ...@@ -186,6 +212,10 @@ int main(int argc, char **argv) {
grpc_test_init(argc, argv); grpc_test_init(argc, argv);
for (i=0; i<GPR_ARRAY_SIZE(failed_tests); i++) {
test_doesnt_crash(failed_tests[i]);
}
for (i = 0; i < GPR_ARRAY_SIZE(split_modes); i++) { for (i = 0; i < GPR_ARRAY_SIZE(split_modes); i++) {
test_succeeds(split_modes[i], test_succeeds(split_modes[i],
"HTTP/1.0 200 OK\r\n" "HTTP/1.0 200 OK\r\n"
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment