From: Aki Tuomi Date: Mon, 26 Jan 2026 11:06:17 +0000 (+0200) Subject: lib-mail: Add test case for dot i/ostream to test dot before newline X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=32744d913158cc61ad476bd891f96db4d3e51e8f;p=thirdparty%2Fdovecot%2Fcore.git lib-mail: Add test case for dot i/ostream to test dot before newline --- diff --git a/src/lib-mail/test-istream-dot.c b/src/lib-mail/test-istream-dot.c index 171581092f..29f01c5f53 100644 --- a/src/lib-mail/test-istream-dot.c +++ b/src/lib-mail/test-istream-dot.c @@ -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 } }; diff --git a/src/lib-mail/test-ostream-dot.c b/src/lib-mail/test-ostream-dot.c index 9ddb563cee..b80094fd25 100644 --- a/src/lib-mail/test-ostream-dot.c +++ b/src/lib-mail/test-ostream-dot.c @@ -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" },