mirror of
https://github.com/cesanta/mongoose.git
synced 2025-08-05 21:18:32 +08:00
Add message sequence test
This commit is contained in:
parent
1dfc748e87
commit
93ff3e4d1f
@ -916,16 +916,31 @@ static void f4(struct mg_connection *c, int ev, void *ev_data, void *fn_data) {
|
||||
}
|
||||
}
|
||||
|
||||
static void f4c(struct mg_connection *c, int ev, void *ev_data, void *fn_data) {
|
||||
if (ev == MG_EV_CONNECT) {
|
||||
mg_printf(c, "GET /foo/bar HTTP/1.0\n\n");
|
||||
} else if (ev == MG_EV_HTTP_MSG) {
|
||||
struct mg_http_message *hm = (struct mg_http_message *) ev_data;
|
||||
ASSERT(mg_strcmp(hm->body, mg_str("/foo/bar/abcdef")) == 0);
|
||||
strcat((char *) fn_data, "m");
|
||||
} else if (ev == MG_EV_HTTP_CHUNK) {
|
||||
strcat((char *) fn_data, "f");
|
||||
} else if (ev == MG_EV_CLOSE) {
|
||||
strcat((char *) fn_data, "c");
|
||||
}
|
||||
}
|
||||
|
||||
static void test_http_no_content_length(void) {
|
||||
char messages[10] = {0};
|
||||
char buf1[10] = {0}, buf2[10] = {0};
|
||||
struct mg_mgr mgr;
|
||||
const char *url = "http://127.0.0.1:12348";
|
||||
char buf[FETCH_BUF_SIZE];
|
||||
int i;
|
||||
mg_mgr_init(&mgr);
|
||||
mg_http_listen(&mgr, url, f4, (void *) messages);
|
||||
ASSERT(fetch(&mgr, buf, url, "GET /foo/bar HTTP/1.0\r\n\n") == 200);
|
||||
ASSERT(cmpbody(buf, "/foo/bar/abcdef") == 0);
|
||||
ASSERT(strcmp(messages, "mc") == 0); // Check that EV_CLOSE comes last
|
||||
mg_http_listen(&mgr, url, f4, (void *) buf1);
|
||||
mg_http_connect(&mgr, url, f4c, (void *) buf2);
|
||||
for (i = 0; i < 100 && strchr(buf2, 'c') == NULL; i++) mg_mgr_poll(&mgr, 1);
|
||||
ASSERT(strcmp(buf1, "mc") == 0);
|
||||
ASSERT(strcmp(buf2, "fcm") == 0); // See #1475
|
||||
mg_mgr_free(&mgr);
|
||||
ASSERT(mgr.conns == NULL);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user