]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-mail: Add test case for dot i/ostream to test dot before newline
authorAki Tuomi <aki.tuomi@open-xchange.com>
Mon, 26 Jan 2026 11:06:17 +0000 (13:06 +0200)
committeraki.tuomi <aki.tuomi@open-xchange.com>
Fri, 6 Feb 2026 13:08:57 +0000 (13:08 +0000)
src/lib-mail/test-istream-dot.c
src/lib-mail/test-ostream-dot.c

index 171581092ff928847e0c8a0138480c6ee44c1fde..29f01c5f53a7ce5b1b09ceb416d2227eee7169ab 100644 (file)
@@ -177,6 +177,7 @@ static void test_istream_dot_error(const char *input_str,
 }
 
 static const struct dot_test tests[] = {
+       { LOOSE_EOT, "foo.\nfoo\n..foo\n..\n.\n", "foo.\nfoo\n.foo\n.\n", "" },
        { LOOSE_EOT, "..foo\n..\n.foo\n.\nfoo", ".foo\n.\nfoo\n", "foo" },
        { LOOSE_EOT, "\r\n.\rfoo\n.\n", "\r\n\rfoo\n", "" },
        { LOOSE_EOT, "\n.\r\n", "\n", "" },
@@ -184,6 +185,7 @@ static const struct dot_test tests[] = {
        { LOOSE_EOT, ".\n", "", "" },
 
        { STRICT_EOT, "..foo\r\n..\r\n.foo\r\n.\r\nfoo", ".foo\r\n.\r\nfoo\r\n", "foo" },
+       { STRICT_EOT, "foo.\r\nfoo\r\n..foo\r\n..\r\n.\r\n", "foo.\r\nfoo\r\n.foo\r\n.\r\n", "" },
        { STRICT_EOT, "\r.\r\n.\r\n", "\r.\r\n", "" },
        { STRICT_EOT, "\n\r.\r\r\n.\r\n", "\n\r.\r\r\n", "" },
        { STRICT_EOT, "\r\n.\r\n", "\r\n", "" },
@@ -213,6 +215,7 @@ static const struct dot_test tests[] = {
        { NO_EOT, "\n.\rx", NULL, NULL },
        { NO_EOT, "\n..\r\n", NULL, NULL },
        { NO_EOT, "..foo\r\nbar\r\nbaz", NULL, NULL },
+       { NO_EOT, "foo.\r\n", NULL, NULL },
 
        { END_OF_TESTS, NULL, NULL, NULL }
 };
index 9ddb563cee8f2a1fc72d42e21af85c04ecdbb729..b80094fd2544c9ddc70d887b9752ba4ea834ab7d 100644 (file)
@@ -57,6 +57,10 @@ static void test_ostream_dot(void)
                { "foo\n.\n", "foo\r\n..\r\n.\r\n" },
                { ".foo\r\n.\r\nfoo\r\n", "..foo\r\n..\r\nfoo\r\n.\r\n" },
                { ".foo\n.\nfoo\n", "..foo\r\n..\r\nfoo\r\n.\r\n" },
+               {
+                       "foo.\r\nfoo\r\n.foo\r\n.",
+                       "foo.\r\nfoo\r\n..foo\r\n..\r\n.\r\n"
+               },
                { "\r\n", "\r\n.\r\n" },
                { "\n", "\r\n.\r\n" },
                { "", "\r\n.\r\n" },