diff --git a/test.c b/test.c index e1d1031..19efba3 100644 --- a/test.c +++ b/test.c @@ -29,6 +29,10 @@ struct message { enum { NONE=0, FIELD, VALUE } last_header_element; char headers [MAX_HEADERS][2][MAX_ELEMENT_SIZE]; int should_keep_alive; + + int message_begin_cb_called; + int headers_complete_cb_called; + int message_complete_cb_called; }; static struct message messages[5]; @@ -422,6 +426,8 @@ message_complete_cb (http_parser *parser) messages[num_messages].method = parser->method; messages[num_messages].status_code = parser->status_code; + messages[num_messages].message_complete_cb_called = TRUE; + num_messages++; return 0; } @@ -429,6 +435,14 @@ message_complete_cb (http_parser *parser) int message_begin_cb (http_parser *_) { + messages[num_messages].message_begin_cb_called = TRUE; + return 0; +} + +int +headers_complete_cb (http_parser *_) +{ + messages[num_messages].headers_complete_cb_called = TRUE; return 0; } @@ -449,7 +463,7 @@ parser_init (enum http_parser_type type) parser.on_fragment = fragment_cb; parser.on_query_string = query_string_cb; parser.on_body = body_cb; - parser.on_headers_complete = NULL; + parser.on_headers_complete = headers_complete_cb; parser.on_message_complete = message_complete_cb; } @@ -462,6 +476,10 @@ message_eq (int index, const struct message *expected) assert(m->method == expected->method); assert(m->status_code == expected->status_code); + assert(m->message_begin_cb_called); + assert(m->headers_complete_cb_called); + assert(m->message_complete_cb_called); + assert(0 == strcmp(m->body, expected->body)); assert(0 == strcmp(m->fragment, expected->fragment)); assert(0 == strcmp(m->query_string, expected->query_string));