瀏覽代碼

Reqrite request parsing (Step 16/?)

bel2125 8 年之前
父節點
當前提交
68ceddce4b
共有 2 個文件被更改,包括 21 次插入3 次删除
  1. 12 1
      test/private.c
  2. 9 2
      test/public_server.c

+ 12 - 1
test/private.c

@@ -71,6 +71,10 @@ START_TEST(test_parse_http_message)
 
 	char req11[] = "GET /\r\nError: X\r\n\r\n";
 
+	char req12[] =
+	    "POST /a/b/c.d?e=f&g HTTP/1.1\r\nKey1: val1\r\nKey2: val2\r\n\r\nBODY";
+
+
 	int lenreq1 = (int)strlen(req1);
 	int lenreq2 = (int)strlen(req2);
 	int lenreq3 = (int)strlen(req3);
@@ -82,6 +86,8 @@ START_TEST(test_parse_http_message)
 	int lenreq9 = (int)strlen(req9);
 	int lenreq10 = (int)strlen(req10);
 	int lenreq11 = (int)strlen(req11);
+	int lenreq12 = (int)strlen(req12);
+	int lenhdr12 = lenreq12 - 4; /* length without body */
 
 
 	ck_assert_int_eq(0, get_http_header_len(empty, 0));
@@ -100,7 +106,7 @@ START_TEST(test_parse_http_message)
 
 
 	ck_assert_int_eq(lenreq3, get_http_header_len(req3, lenreq3));
-        ck_assert_int_eq(lenreq3, parse_http_request(req3, lenreq3, &ri));
+	ck_assert_int_eq(lenreq3, parse_http_request(req3, lenreq3, &ri));
 
 
 	/* Multiline header are obsolete, so return an error
@@ -144,6 +150,11 @@ START_TEST(test_parse_http_message)
 
 
 	ck_assert_int_eq(-1, parse_http_request(req11, lenreq11, &ri));
+
+
+	ck_assert_int_gt(lenreq12, lenhdr12);
+	ck_assert_int_eq(lenhdr12, get_http_header_len(req12, lenreq12));
+	ck_assert_int_eq(lenhdr12, parse_http_request(req12, lenreq12, &ri));
 }
 END_TEST
 

+ 9 - 2
test/public_server.c

@@ -3996,6 +3996,10 @@ test_mg_store_body_put_delete_handler(struct mg_connection *conn, void *ignored)
 		          path,
 		          (long)rc);
 		mg_close_connection(conn);
+
+		/* Debug output for tests */
+		printf("mg_store_body(%s) failed (ret: %ld)\n", path, (long)rc);
+
 		return 500;
 	}
 
@@ -4008,6 +4012,9 @@ test_mg_store_body_put_delete_handler(struct mg_connection *conn, void *ignored)
 	          (long)rc);
 	mg_close_connection(conn);
 
+	/* Debug output for tests */
+	printf("mg_store_body(%s) OK (%ld bytes)\n", path, (long)rc);
+
 	return 200;
 }
 
@@ -4101,9 +4108,9 @@ START_TEST(test_mg_store_body)
 	ck_assert_ptr_ne(client_ri->request_uri, NULL);
 	ck_assert_str_eq(client_ri->request_uri, "200");
 
-	/* Nothing left to read */
+	/* Read PUT response */
 	r = mg_read(client, client_data_buf, sizeof(client_data_buf) - 1);
-        ck_assert_int_eq(r, 0); /* TODO: Check why this was _gt in prev version */
+	ck_assert_int_gt(r, 0);
 	client_data_buf[r] = 0;
 
 	sprintf(check_data, "(%i bytes saved)", test_mg_store_body_con_len);