nodejs / http-parser

http request/response parser for c
MIT License
6.32k stars 1.53k forks source link

fix test numbers #511

Closed derekargueta closed 4 years ago

derekargueta commented 4 years ago

42 is duplicated in request tests, and 20 is duplicated in response tests

bnoordhuis commented 4 years ago

Thanks. I'd be happy to merge this but if you want you can just remove all the defines, they're not actually used. IIRC, they were added as a kind of (not very effective) self-documentation.

derekargueta commented 4 years ago

@bnoordhuis sure I can take care of that clean up later tonight. Thanks for taking a look!

derekargueta commented 4 years ago

@bnoordhuis There seems to actually be a few tests that rely on these defines to index into the test case arrays. For example: https://github.com/nodejs/http-parser/blob/master/test.c#L4334

After removing the defines I got 20 compilation errors

cc  -I. -DHTTP_PARSER_STRICT=1  -Wall -Wextra -Werror -O0 -g  -c test.c -o test_g.o
test.c:4258:38: error: use of undeclared identifier 'NO_HEADERS_NO_BODY_404'
  test_message_count_body(&responses[NO_HEADERS_NO_BODY_404]);
                                     ^
test.c:4259:38: error: use of undeclared identifier 'TRAILING_SPACE_ON_CHUNKED_BODY'
  test_message_count_body(&responses[TRAILING_SPACE_ON_CHUNKED_BODY]);
                                     ^
test.c:4296:25: error: use of undeclared identifier 'TRAILING_SPACE_ON_CHUNKED_BODY'
  test_scan( &responses[TRAILING_SPACE_ON_CHUNKED_BODY]
                        ^
test.c:4297:25: error: use of undeclared identifier 'NO_BODY_HTTP10_KA_204'
           , &responses[NO_BODY_HTTP10_KA_204]
                        ^
test.c:4298:25: error: use of undeclared identifier 'NO_REASON_PHRASE'
           , &responses[NO_REASON_PHRASE]
                        ^
test.c:4302:25: error: use of undeclared identifier 'BONJOUR_MADAME_FR'
  test_scan( &responses[BONJOUR_MADAME_FR]
                        ^
test.c:4303:25: error: use of undeclared identifier 'UNDERSTORE_HEADER_KEY'
           , &responses[UNDERSTORE_HEADER_KEY]
                        ^
test.c:4304:25: error: use of undeclared identifier 'NO_CARRIAGE_RET'
           , &responses[NO_CARRIAGE_RET]
                        ^
test.c:4498:24: error: use of undeclared identifier 'GET_NO_HEADERS_NO_BODY'
  test_scan( &requests[GET_NO_HEADERS_NO_BODY]
                       ^
test.c:4499:24: error: use of undeclared identifier 'GET_ONE_HEADER_NO_BODY'
           , &requests[GET_ONE_HEADER_NO_BODY]
                       ^
test.c:4500:24: error: use of undeclared identifier 'GET_NO_HEADERS_NO_BODY'
           , &requests[GET_NO_HEADERS_NO_BODY]
                       ^
test.c:4504:24: error: use of undeclared identifier 'POST_CHUNKED_ALL_YOUR_BASE'
  test_scan( &requests[POST_CHUNKED_ALL_YOUR_BASE]
                       ^
test.c:4505:24: error: use of undeclared identifier 'POST_IDENTITY_BODY_WORLD'
           , &requests[POST_IDENTITY_BODY_WORLD]
                       ^
test.c:4506:24: error: use of undeclared identifier 'GET_FUNKY_CONTENT_LENGTH'
           , &requests[GET_FUNKY_CONTENT_LENGTH]
                       ^
test.c:4510:24: error: use of undeclared identifier 'TWO_CHUNKS_MULT_ZERO_END'
  test_scan( &requests[TWO_CHUNKS_MULT_ZERO_END]
                       ^
test.c:4511:24: error: use of undeclared identifier 'CHUNKED_W_TRAILING_HEADERS'
           , &requests[CHUNKED_W_TRAILING_HEADERS]
                       ^
test.c:4512:24: error: use of undeclared identifier 'CHUNKED_W_NONSENSE_AFTER_LENGTH'
           , &requests[CHUNKED_W_NONSENSE_AFTER_LENGTH]
                       ^
test.c:4516:24: error: use of undeclared identifier 'QUERY_URL_WITH_QUESTION_MARK_GET'
  test_scan( &requests[QUERY_URL_WITH_QUESTION_MARK_GET]
                       ^
test.c:4517:24: error: use of undeclared identifier 'PREFIX_NEWLINE_GET'
           , &requests[PREFIX_NEWLINE_GET ]
                       ^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
make: *** [test_g.o] Error 1

I think the defines would be preferable to hard-coded magic array indices, although it is pretty fragile :/

bnoordhuis commented 4 years ago

You're right. I missed those, sorry. Landed in 805a0d1, thanks!