]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-mail: Updated test-message-header-parser unit test
authorTimo Sirainen <tss@iki.fi>
Thu, 16 Jul 2015 15:09:17 +0000 (18:09 +0300)
committerTimo Sirainen <tss@iki.fi>
Thu, 16 Jul 2015 15:09:17 +0000 (18:09 +0300)
src/lib-mail/test-message-header-parser.c

index 2533de6c2947576c219b368955a990ece1228cf3..9b8791cd925a5f891f84c2faeff0bc4b65d236a9 100644 (file)
@@ -239,12 +239,36 @@ static void test_message_header_parser_long_lines(void)
        test_end();
 }
 
+static void test_message_header_parser_extra_cr_in_eoh(void)
+{
+       static const char *str = "a:b\n\r\r\n";
+       struct message_header_parser_ctx *parser;
+       struct message_header_line *hdr;
+       struct istream *input;
+
+       test_begin("message header parser extra CR in EOH");
+
+       input = test_istream_create(str);
+       parser = message_parse_header_init(input, NULL, 0);
+       test_assert(message_parse_header_next(parser, &hdr) > 0 &&
+                   strcmp(hdr->name, "a") == 0);
+       test_assert(message_parse_header_next(parser, &hdr) > 0 &&
+                   strcmp(hdr->name, "\r") == 0 && hdr->middle_len == 0 &&
+                   hdr->value_len == 0 && !hdr->eoh);
+       test_assert(message_parse_header_next(parser, &hdr) < 0);
+       message_parse_header_deinit(&parser);
+       test_assert(input->stream_errno == 0);
+       i_stream_unref(&input);
+       test_end();
+}
+
 int main(void)
 {
        static void (*test_functions[])(void) = {
                test_message_header_parser,
                test_message_header_parser_partial,
                test_message_header_parser_long_lines,
+               test_message_header_parser_extra_cr_in_eoh,
                NULL
        };
        return test_run(test_functions);