src/server/test/httpparser.c

Tue, 17 Feb 2026 13:03:39 +0100

author
Olaf Wintermann <olaf.wintermann@gmail.com>
date
Tue, 17 Feb 2026 13:03:39 +0100
changeset 677
3b8d3b37a4d5
parent 663
bd116bd44926
child 678
9908159eff0e
permissions
-rw-r--r--

add test_http_parser_process_full

662
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
1 /*
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
2 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
3 *
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
4 * Copyright 2026 Olaf Wintermann. All rights reserved.
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
5 *
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
6 * Redistribution and use in source and binary forms, with or without
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
7 * modification, are permitted provided that the following conditions are met:
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
8 *
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
9 * 1. Redistributions of source code must retain the above copyright
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
10 * notice, this list of conditions and the following disclaimer.
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
11 *
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
12 * 2. Redistributions in binary form must reproduce the above copyright
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
13 * notice, this list of conditions and the following disclaimer in the
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
14 * documentation and/or other materials provided with the distribution.
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
15 *
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
16 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
17 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
18 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
19 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
20 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
21 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
22 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
23 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
24 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
25 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
26 * POSSIBILITY OF SUCH DAMAGE.
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
27 */
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
28
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
29 #include "httpparser.h"
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
30
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
31 #include "../daemon/httpparser.h"
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
32
677
3b8d3b37a4d5 add test_http_parser_process_full
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 663
diff changeset
33 #include <cx/string.h>
3b8d3b37a4d5 add test_http_parser_process_full
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 663
diff changeset
34
662
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
35 CX_TEST(test_parse_request_line) {
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
36 CX_TEST_DO {
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
37 HttpParser parser;
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
38 memset(&parser, 0, sizeof(HttpParser));
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
39 parser.start_line = cx_mutstr("GET / HTTP/1.1\r\n");
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
40
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
41 int ret1 = parse_request_line(&parser);
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
42 CX_TEST_ASSERT(!ret1);
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
43 CX_TEST_ASSERT(!cx_strcmp(parser.method, "GET"));
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
44 CX_TEST_ASSERT(!cx_strcmp(parser.uri, "/"));
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
45 CX_TEST_ASSERT(!cx_strcmp(parser.httpv, "HTTP/1.1"));
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
46
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
47 memset(&parser, 0, sizeof(HttpParser));
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
48 parser.start_line = cx_mutstr("POST /longer/url/test/path/ HTTP/1.0\r\n");
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
49 int ret2 = parse_request_line(&parser);
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
50 CX_TEST_ASSERT(!ret2);
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
51 CX_TEST_ASSERT(!cx_strcmp(parser.method, "POST"));
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
52 CX_TEST_ASSERT(!cx_strcmp(parser.uri, "/longer/url/test/path/"));
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
53 CX_TEST_ASSERT(!cx_strcmp(parser.httpv, "HTTP/1.0"));
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
54
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
55 memset(&parser, 0, sizeof(HttpParser));
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
56 parser.start_line = cx_mutstr("G / v\r\n");
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
57 int ret3 = parse_request_line(&parser);
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
58 CX_TEST_ASSERT(!ret3);
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
59 CX_TEST_ASSERT(!cx_strcmp(parser.method, "G"));
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
60 CX_TEST_ASSERT(!cx_strcmp(parser.uri, "/"));
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
61 CX_TEST_ASSERT(!cx_strcmp(parser.httpv, "v"));
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
62
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
63 memset(&parser, 0, sizeof(HttpParser));
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
64 parser.start_line = cx_mutstr("HEAD /space HTTP/0.9 \r\n");
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
65 int ret4 = parse_request_line(&parser);
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
66 CX_TEST_ASSERT(!ret4);
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
67 CX_TEST_ASSERT(!cx_strcmp(parser.method, "HEAD"));
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
68 CX_TEST_ASSERT(!cx_strcmp(parser.uri, "/space"));
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
69 CX_TEST_ASSERT(!cx_strcmp(parser.httpv, "HTTP/0.9"));
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
70
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
71 // unix-style line break tests
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
72 memset(&parser, 0, sizeof(HttpParser));
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
73 parser.start_line = cx_mutstr("PROPFIND /collection/ HTTP/1.1\n");
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
74 int uret1 = parse_request_line(&parser);
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
75 CX_TEST_ASSERT(!uret1);
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
76 CX_TEST_ASSERT(!cx_strcmp(parser.method, "PROPFIND"));
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
77 CX_TEST_ASSERT(!cx_strcmp(parser.uri, "/collection/"));
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
78 CX_TEST_ASSERT(!cx_strcmp(parser.httpv, "HTTP/1.1"));
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
79
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
80 // negative tests
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
81 parser.start_line = cx_mutstr("\r\n");
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
82 int nret1 = parse_request_line(&parser);
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
83 CX_TEST_ASSERT(nret1);
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
84
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
85 parser.start_line = cx_mutstr("GET\r\n");
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
86 int nret2 = parse_request_line(&parser);
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
87 CX_TEST_ASSERT(nret2);
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
88
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
89 parser.start_line = cx_mutstr("GET /test\r\n");
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
90 int nret3 = parse_request_line(&parser);
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
91 CX_TEST_ASSERT(nret3);
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
92
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
93 parser.start_line = cx_mutstr("GET /test \r\n");
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
94 int nret4 = parse_request_line(&parser);
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
95 CX_TEST_ASSERT(nret4);
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
96
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
97 parser.start_line = cx_mutstr("/test HTTP/1.1\r\n");
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
98 int nret5 = parse_request_line(&parser);
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
99 CX_TEST_ASSERT(nret5);
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
100
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
101 parser.start_line = cx_mutstr("GET /uri HTTP/1.1 test\r\n");
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
102 int nret6 = parse_request_line(&parser);
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
103 CX_TEST_ASSERT(nret6);
663
bd116bd44926 fix error detection in parse_request_line/parse_response_line
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 662
diff changeset
104
bd116bd44926 fix error detection in parse_request_line/parse_response_line
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 662
diff changeset
105 parser.start_line = cx_mutstr(" /uri2 HTTP/1.1\r\n");
bd116bd44926 fix error detection in parse_request_line/parse_response_line
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 662
diff changeset
106 int nret7 = parse_request_line(&parser);
bd116bd44926 fix error detection in parse_request_line/parse_response_line
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 662
diff changeset
107 CX_TEST_ASSERT(nret7);
bd116bd44926 fix error detection in parse_request_line/parse_response_line
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 662
diff changeset
108
bd116bd44926 fix error detection in parse_request_line/parse_response_line
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 662
diff changeset
109 parser.start_line = cx_mutstr("GET HTTP/1.1\r\n");
bd116bd44926 fix error detection in parse_request_line/parse_response_line
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 662
diff changeset
110 int nret8 = parse_request_line(&parser);
bd116bd44926 fix error detection in parse_request_line/parse_response_line
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 662
diff changeset
111 CX_TEST_ASSERT(nret8);
662
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
112 }
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
113 }
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
114
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
115 CX_TEST(test_parse_response_line) {
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
116 CX_TEST_DO {
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
117 HttpParser parser;
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
118 memset(&parser, 0, sizeof(HttpParser));
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
119 parser.start_line = cx_mutstr("HTTP/1.1 200 OK\r\n");
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
120 parser.type = 1;
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
121
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
122 int ret1 = parse_response_line(&parser);
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
123 CX_TEST_ASSERT(!ret1);
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
124 CX_TEST_ASSERT(!cx_strcmp(parser.httpv, "HTTP/1.1"));
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
125 CX_TEST_ASSERT(!cx_strcmp(parser.msg, "OK"));
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
126 CX_TEST_ASSERT(parser.status == 200);
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
127
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
128 memset(&parser, 0, sizeof(HttpParser));
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
129 parser.start_line = cx_mutstr("HTTP/1.0 201 Created\r\n");
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
130 parser.type = 1;
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
131 int ret2 = parse_response_line(&parser);
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
132 CX_TEST_ASSERT(!ret2);
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
133 CX_TEST_ASSERT(!cx_strcmp(parser.httpv, "HTTP/1.0"));
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
134 CX_TEST_ASSERT(!cx_strcmp(parser.msg, "Created"));
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
135 CX_TEST_ASSERT(parser.status == 201);
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
136
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
137 memset(&parser, 0, sizeof(HttpParser));
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
138 parser.start_line = cx_mutstr("HTTP/0.9 204 No Content\r\n");
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
139 parser.type = 1;
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
140 int ret3 = parse_response_line(&parser);
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
141 CX_TEST_ASSERT(!ret3);
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
142 CX_TEST_ASSERT(!cx_strcmp(parser.httpv, "HTTP/0.9"));
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
143 CX_TEST_ASSERT(!cx_strcmp(parser.msg, "No Content"));
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
144 CX_TEST_ASSERT(parser.status == 204);
663
bd116bd44926 fix error detection in parse_request_line/parse_response_line
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 662
diff changeset
145
bd116bd44926 fix error detection in parse_request_line/parse_response_line
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 662
diff changeset
146 // negative tests
bd116bd44926 fix error detection in parse_request_line/parse_response_line
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 662
diff changeset
147 memset(&parser, 0, sizeof(HttpParser));
bd116bd44926 fix error detection in parse_request_line/parse_response_line
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 662
diff changeset
148 parser.start_line = cx_mutstr("HTTP/1.1 200\r\n");
bd116bd44926 fix error detection in parse_request_line/parse_response_line
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 662
diff changeset
149 parser.type = 1;
bd116bd44926 fix error detection in parse_request_line/parse_response_line
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 662
diff changeset
150 int nret1 = parse_response_line(&parser);
bd116bd44926 fix error detection in parse_request_line/parse_response_line
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 662
diff changeset
151 CX_TEST_ASSERT(nret1);
bd116bd44926 fix error detection in parse_request_line/parse_response_line
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 662
diff changeset
152
bd116bd44926 fix error detection in parse_request_line/parse_response_line
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 662
diff changeset
153 memset(&parser, 0, sizeof(HttpParser));
bd116bd44926 fix error detection in parse_request_line/parse_response_line
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 662
diff changeset
154 parser.start_line = cx_mutstr("\r\n");
bd116bd44926 fix error detection in parse_request_line/parse_response_line
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 662
diff changeset
155 parser.type = 1;
bd116bd44926 fix error detection in parse_request_line/parse_response_line
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 662
diff changeset
156 int nret2 = parse_response_line(&parser);
bd116bd44926 fix error detection in parse_request_line/parse_response_line
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 662
diff changeset
157 CX_TEST_ASSERT(nret2);
bd116bd44926 fix error detection in parse_request_line/parse_response_line
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 662
diff changeset
158
bd116bd44926 fix error detection in parse_request_line/parse_response_line
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 662
diff changeset
159 memset(&parser, 0, sizeof(HttpParser));
bd116bd44926 fix error detection in parse_request_line/parse_response_line
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 662
diff changeset
160 parser.start_line = cx_mutstr("200\r\n");
bd116bd44926 fix error detection in parse_request_line/parse_response_line
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 662
diff changeset
161 parser.type = 1;
bd116bd44926 fix error detection in parse_request_line/parse_response_line
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 662
diff changeset
162 int nret3 = parse_response_line(&parser);
bd116bd44926 fix error detection in parse_request_line/parse_response_line
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 662
diff changeset
163 CX_TEST_ASSERT(nret3);
bd116bd44926 fix error detection in parse_request_line/parse_response_line
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 662
diff changeset
164
bd116bd44926 fix error detection in parse_request_line/parse_response_line
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 662
diff changeset
165 memset(&parser, 0, sizeof(HttpParser));
bd116bd44926 fix error detection in parse_request_line/parse_response_line
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 662
diff changeset
166 parser.start_line = cx_mutstr("HTTP/1.1 2345 Test Message\r\n");
bd116bd44926 fix error detection in parse_request_line/parse_response_line
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 662
diff changeset
167 parser.type = 1;
bd116bd44926 fix error detection in parse_request_line/parse_response_line
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 662
diff changeset
168 int nret4 = parse_response_line(&parser);
bd116bd44926 fix error detection in parse_request_line/parse_response_line
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 662
diff changeset
169 CX_TEST_ASSERT(nret4);
bd116bd44926 fix error detection in parse_request_line/parse_response_line
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 662
diff changeset
170
bd116bd44926 fix error detection in parse_request_line/parse_response_line
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 662
diff changeset
171 memset(&parser, 0, sizeof(HttpParser));
bd116bd44926 fix error detection in parse_request_line/parse_response_line
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 662
diff changeset
172 parser.start_line = cx_mutstr("HTTP/1.1 xy1 OK\r\n");
bd116bd44926 fix error detection in parse_request_line/parse_response_line
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 662
diff changeset
173 parser.type = 1;
bd116bd44926 fix error detection in parse_request_line/parse_response_line
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 662
diff changeset
174 int nret5 = parse_response_line(&parser);
bd116bd44926 fix error detection in parse_request_line/parse_response_line
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 662
diff changeset
175 CX_TEST_ASSERT(nret5);
bd116bd44926 fix error detection in parse_request_line/parse_response_line
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 662
diff changeset
176
bd116bd44926 fix error detection in parse_request_line/parse_response_line
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 662
diff changeset
177 memset(&parser, 0, sizeof(HttpParser));
bd116bd44926 fix error detection in parse_request_line/parse_response_line
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 662
diff changeset
178 parser.start_line = cx_mutstr(" 200 OK\r\n");
bd116bd44926 fix error detection in parse_request_line/parse_response_line
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 662
diff changeset
179 parser.type = 1;
bd116bd44926 fix error detection in parse_request_line/parse_response_line
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 662
diff changeset
180 int nret6 = parse_response_line(&parser);
bd116bd44926 fix error detection in parse_request_line/parse_response_line
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 662
diff changeset
181 CX_TEST_ASSERT(nret6);
662
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
182 }
70fdf948b642 refactor HttpParser to support parsing of Http responses
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
183 }
677
3b8d3b37a4d5 add test_http_parser_process_full
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 663
diff changeset
184
3b8d3b37a4d5 add test_http_parser_process_full
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 663
diff changeset
185 CX_TEST_SUBROUTINE(test_http_parser_process, cxstring request, int chunksize) {
3b8d3b37a4d5 add test_http_parser_process_full
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 663
diff changeset
186 netbuf buf;
3b8d3b37a4d5 add test_http_parser_process_full
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 663
diff changeset
187 memset(&buf, 0, sizeof(netbuf));
3b8d3b37a4d5 add test_http_parser_process_full
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 663
diff changeset
188 buf.inbuf = (unsigned char*)request.ptr;
3b8d3b37a4d5 add test_http_parser_process_full
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 663
diff changeset
189 buf.maxsize = request.length;
3b8d3b37a4d5 add test_http_parser_process_full
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 663
diff changeset
190 HeaderArray *header = header_array_create();
3b8d3b37a4d5 add test_http_parser_process_full
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 663
diff changeset
191 HttpParser *parser = http_parser_new2(0, &buf, header);
3b8d3b37a4d5 add test_http_parser_process_full
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 663
diff changeset
192
3b8d3b37a4d5 add test_http_parser_process_full
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 663
diff changeset
193 while(buf.cursize < request.length) {
3b8d3b37a4d5 add test_http_parser_process_full
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 663
diff changeset
194 buf.cursize += chunksize;
3b8d3b37a4d5 add test_http_parser_process_full
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 663
diff changeset
195 if(buf.cursize > buf.maxsize) {
3b8d3b37a4d5 add test_http_parser_process_full
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 663
diff changeset
196 buf.cursize = buf.maxsize;
3b8d3b37a4d5 add test_http_parser_process_full
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 663
diff changeset
197 }
3b8d3b37a4d5 add test_http_parser_process_full
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 663
diff changeset
198
3b8d3b37a4d5 add test_http_parser_process_full
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 663
diff changeset
199 int ret = http_parser_process(parser);
3b8d3b37a4d5 add test_http_parser_process_full
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 663
diff changeset
200 if(buf.cursize < buf.maxsize) {
3b8d3b37a4d5 add test_http_parser_process_full
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 663
diff changeset
201 CX_TEST_ASSERT(ret == 1);
3b8d3b37a4d5 add test_http_parser_process_full
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 663
diff changeset
202 } else {
3b8d3b37a4d5 add test_http_parser_process_full
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 663
diff changeset
203 CX_TEST_ASSERT(ret == 0);
3b8d3b37a4d5 add test_http_parser_process_full
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 663
diff changeset
204 }
3b8d3b37a4d5 add test_http_parser_process_full
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 663
diff changeset
205 }
3b8d3b37a4d5 add test_http_parser_process_full
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 663
diff changeset
206 CX_TEST_ASSERT(http_parser_validate(parser));
3b8d3b37a4d5 add test_http_parser_process_full
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 663
diff changeset
207
3b8d3b37a4d5 add test_http_parser_process_full
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 663
diff changeset
208 http_parser_free(parser);
3b8d3b37a4d5 add test_http_parser_process_full
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 663
diff changeset
209 header_array_free(header);
3b8d3b37a4d5 add test_http_parser_process_full
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 663
diff changeset
210 }
3b8d3b37a4d5 add test_http_parser_process_full
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 663
diff changeset
211
3b8d3b37a4d5 add test_http_parser_process_full
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 663
diff changeset
212 CX_TEST(test_http_parser_process_full) {
3b8d3b37a4d5 add test_http_parser_process_full
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 663
diff changeset
213 CX_TEST_DO {
3b8d3b37a4d5 add test_http_parser_process_full
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 663
diff changeset
214 cxstring req0 = cx_str(
3b8d3b37a4d5 add test_http_parser_process_full
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 663
diff changeset
215 "GET / HTTP/1.1\r\n"
3b8d3b37a4d5 add test_http_parser_process_full
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 663
diff changeset
216 "Host: example.com\r\n"
3b8d3b37a4d5 add test_http_parser_process_full
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 663
diff changeset
217 "\r\n");
3b8d3b37a4d5 add test_http_parser_process_full
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 663
diff changeset
218
3b8d3b37a4d5 add test_http_parser_process_full
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 663
diff changeset
219 cxstring req1 = cx_str("GET /api/data?id=42 HTTP/1.1\r\n"
3b8d3b37a4d5 add test_http_parser_process_full
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 663
diff changeset
220 "Host: api.example.com\r\n"
3b8d3b37a4d5 add test_http_parser_process_full
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 663
diff changeset
221 "User-Agent: TestClient/1.0\r\n"
3b8d3b37a4d5 add test_http_parser_process_full
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 663
diff changeset
222 "Accept: application/json\r\n"
3b8d3b37a4d5 add test_http_parser_process_full
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 663
diff changeset
223 "Accept-Language: en-US,en;q=0.9\r\n"
3b8d3b37a4d5 add test_http_parser_process_full
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 663
diff changeset
224 "Connection: keep-alive\r\n"
3b8d3b37a4d5 add test_http_parser_process_full
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 663
diff changeset
225 "Cache-Control: no-cache\r\n"
3b8d3b37a4d5 add test_http_parser_process_full
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 663
diff changeset
226 "\r\n");
3b8d3b37a4d5 add test_http_parser_process_full
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 663
diff changeset
227
3b8d3b37a4d5 add test_http_parser_process_full
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 663
diff changeset
228 cxstring req2 = cx_str("GET /search?q=network+testing HTTP/1.1\r\n"
3b8d3b37a4d5 add test_http_parser_process_full
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 663
diff changeset
229 "Host: www.example.com\r\n"
3b8d3b37a4d5 add test_http_parser_process_full
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 663
diff changeset
230 "User-Agent: Mozilla/5.0 (X11; Linux x86_64) TestBrowser/99.0\r\n"
3b8d3b37a4d5 add test_http_parser_process_full
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 663
diff changeset
231 "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8\r\n"
3b8d3b37a4d5 add test_http_parser_process_full
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 663
diff changeset
232 "Accept-Language: en-US,en;q=0.9,de;q=0.8\r\n"
3b8d3b37a4d5 add test_http_parser_process_full
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 663
diff changeset
233 "Accept-Encoding: gzip, deflate, br\r\n"
3b8d3b37a4d5 add test_http_parser_process_full
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 663
diff changeset
234 "Connection: keep-alive\r\n"
3b8d3b37a4d5 add test_http_parser_process_full
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 663
diff changeset
235 "Cache-Control: max-age=0\r\n"
3b8d3b37a4d5 add test_http_parser_process_full
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 663
diff changeset
236 "Upgrade-Insecure-Requests: 1\r\n"
3b8d3b37a4d5 add test_http_parser_process_full
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 663
diff changeset
237 "Pragma: no-cache\r\n"
3b8d3b37a4d5 add test_http_parser_process_full
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 663
diff changeset
238 "DNT: 1\r\n"
3b8d3b37a4d5 add test_http_parser_process_full
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 663
diff changeset
239 "Sec-Fetch-Dest: document\r\n"
3b8d3b37a4d5 add test_http_parser_process_full
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 663
diff changeset
240 "Sec-Fetch-Mode: navigate\r\n"
3b8d3b37a4d5 add test_http_parser_process_full
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 663
diff changeset
241 "Sec-Fetch-Site: none\r\n"
3b8d3b37a4d5 add test_http_parser_process_full
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 663
diff changeset
242 "Sec-Fetch-User: ?1\r\n"
3b8d3b37a4d5 add test_http_parser_process_full
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 663
diff changeset
243 "Referer: https://www.example.com/\r\n"
3b8d3b37a4d5 add test_http_parser_process_full
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 663
diff changeset
244 "X-Forwarded-For: 203.0.113.195\r\n"
3b8d3b37a4d5 add test_http_parser_process_full
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 663
diff changeset
245 "X-Request-ID: 123e4567-e89b-12d3-a456-426614174000\r\n"
3b8d3b37a4d5 add test_http_parser_process_full
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 663
diff changeset
246 "\r\n");
3b8d3b37a4d5 add test_http_parser_process_full
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 663
diff changeset
247
3b8d3b37a4d5 add test_http_parser_process_full
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 663
diff changeset
248 CX_TEST_CALL_SUBROUTINE(test_http_parser_process, req0, req0.length);
3b8d3b37a4d5 add test_http_parser_process_full
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 663
diff changeset
249 CX_TEST_CALL_SUBROUTINE(test_http_parser_process, req1, req1.length);
3b8d3b37a4d5 add test_http_parser_process_full
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 663
diff changeset
250 CX_TEST_CALL_SUBROUTINE(test_http_parser_process, req2, req2.length);
3b8d3b37a4d5 add test_http_parser_process_full
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 663
diff changeset
251 }
3b8d3b37a4d5 add test_http_parser_process_full
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 663
diff changeset
252 }

mercurial