Branch Coverage

picohttpparser-git/picohttpparser.c
Criterion Covered Total %
branch 78 170 45.8


line true false branch
49 208 49 if (likely(buf_end - buf >= 16)) {
51 2227 48 for (i = 0; i < 16; i++, ++buf) {
52 160 2067 if (unlikely((unsigned char)*buf <= '\015')
53 0 160 && (*buf == '\015' || *buf == '\012')) {
0 0 && (*buf == '\015' || *buf == '\012')) {
59 0 272 CHECK_EOF();
60 49 223 if (unlikely((unsigned char)*buf <= '\015')
61 0 49 && (*buf == '\015' || *buf == '\012')) {
0 0 && (*buf == '\015' || *buf == '\012')) {
68 209 0 if (*buf == '\015') {
70 0 209 EXPECT_CHAR('\012');
0 209 EXPECT_CHAR('\012');
85 0 0 buf = last_len < 3 ? buf : buf + last_len - 3;
88 0 0 CHECK_EOF();
89 0 0 if (*buf == '\015') {
91 0 0 CHECK_EOF();
92 0 0 EXPECT_CHAR('\012');
0 0 EXPECT_CHAR('\012');
94 0 0 } else if (*buf == '\012') {
101 0 0 if (ret_cnt == 2) {
115 0 56 CHECK_EOF();
116 56 0 if (! ('0' <= *buf && *buf <= '9')) {
0 56 if (! ('0' <= *buf && *buf <= '9')) {
122 0 112 CHECK_EOF();
123 56 56 if ('0' <= *buf && *buf <= '9') {
56 0 if ('0' <= *buf && *buf <= '9') {
138 0 57 EXPECT_CHAR('H'); EXPECT_CHAR('T'); EXPECT_CHAR('T'); EXPECT_CHAR('P');
1 56 EXPECT_CHAR('H'); EXPECT_CHAR('T'); EXPECT_CHAR('T'); EXPECT_CHAR('P');
0 56 EXPECT_CHAR('H'); EXPECT_CHAR('T'); EXPECT_CHAR('T'); EXPECT_CHAR('P');
0 56 EXPECT_CHAR('H'); EXPECT_CHAR('T'); EXPECT_CHAR('T'); EXPECT_CHAR('P');
0 56 EXPECT_CHAR('H'); EXPECT_CHAR('T'); EXPECT_CHAR('T'); EXPECT_CHAR('P');
0 56 EXPECT_CHAR('H'); EXPECT_CHAR('T'); EXPECT_CHAR('T'); EXPECT_CHAR('P');
0 56 EXPECT_CHAR('H'); EXPECT_CHAR('T'); EXPECT_CHAR('T'); EXPECT_CHAR('P');
0 56 EXPECT_CHAR('H'); EXPECT_CHAR('T'); EXPECT_CHAR('T'); EXPECT_CHAR('P');
139 0 56 EXPECT_CHAR('/'); EXPECT_CHAR('1'); EXPECT_CHAR('.');
0 56 EXPECT_CHAR('/'); EXPECT_CHAR('1'); EXPECT_CHAR('.');
0 56 EXPECT_CHAR('/'); EXPECT_CHAR('1'); EXPECT_CHAR('.');
0 56 EXPECT_CHAR('/'); EXPECT_CHAR('1'); EXPECT_CHAR('.');
0 56 EXPECT_CHAR('/'); EXPECT_CHAR('1'); EXPECT_CHAR('.');
0 56 EXPECT_CHAR('/'); EXPECT_CHAR('1'); EXPECT_CHAR('.');
149 1 264 CHECK_EOF();
150 55 209 if (*buf == '\015') {
152 0 55 EXPECT_CHAR('\012');
0 55 EXPECT_CHAR('\012');
154 0 209 } else if (*buf == '\012') {
158 0 209 if (*num_headers == max_headers) {
162 154 55 if (*num_headers == 0 || ! (*buf == ' ' || *buf == '\t')) {
154 0 if (*num_headers == 0 || ! (*buf == ' ' || *buf == '\t')) {
154 0 if (*num_headers == 0 || ! (*buf == ' ' || *buf == '\t')) {
167 0 1951 CHECK_EOF();
168 209 1742 if (*buf == ':') {
170 0 1742 } else if (*buf < ' ') {
178 0 418 CHECK_EOF();
179 209 209 if (! (*buf == ' ' || *buf == '\t')) {
209 0 if (! (*buf == ' ' || *buf == '\t')) {
187 0 209 if ((buf = get_token_to_eol(buf, buf_end, &headers[*num_headers].value,
203 0 57 CHECK_EOF();
204 0 57 if (*buf == '\015') {
206 0 0 EXPECT_CHAR('\012');
0 0 EXPECT_CHAR('\012');
207 0 57 } else if (*buf == '\012') {
212 0 235 ADVANCE_TOKEN(*method, *method_len);
57 178 ADVANCE_TOKEN(*method, *method_len);
178 0 ADVANCE_TOKEN(*method, *method_len);
0 178 ADVANCE_TOKEN(*method, *method_len);
214 0 323 ADVANCE_TOKEN(*path, *path_len);
57 266 ADVANCE_TOKEN(*path, *path_len);
266 0 ADVANCE_TOKEN(*path, *path_len);
0 266 ADVANCE_TOKEN(*path, *path_len);
216 1 56 if ((buf = parse_http_version(buf, buf_end, minor_version, ret)) == NULL) {
219 56 0 if (*buf == '\015') {
221 0 56 EXPECT_CHAR('\012');
0 56 EXPECT_CHAR('\012');
222 0 0 } else if (*buf == '\012') {
250 0 57 if (last_len != 0 && is_complete(buf, buf_end, last_len, &r) == NULL) {
0 0 if (last_len != 0 && is_complete(buf, buf_end, last_len, &r) == NULL) {
254 2 55 if ((buf = parse_request(buf, buf_end, method, method_len, path, path_len,
272 0 0 if ((buf = parse_http_version(buf, buf_end, minor_version, ret)) == NULL) {
276 0 0 if (*buf++ != ' ') {
281 0 0 if ((buf = parse_int(buf, buf_end, status, ret)) == NULL) {
285 0 0 if (*buf++ != ' ') {
290 0 0 if ((buf = get_token_to_eol(buf, buf_end, msg, msg_len, ret)) == NULL) {
314 0 0 if (last_len != 0 && is_complete(buf, buf_end, last_len, &r) == NULL) {
0 0 if (last_len != 0 && is_complete(buf, buf_end, last_len, &r) == NULL) {
318 0 0 if ((buf = parse_response(buf, buf_end, minor_version, status, msg, msg_len,