From: Baptiste Daroussin Date: Fri, 17 Dec 2021 11:20:10 +0000 (+0100) Subject: test: add more tests X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=a6d28d2737ecc8ce5fc624ffbb6581b5e936b38f;p=thirdparty%2Fmlmmj.git test: add more tests --- diff --git a/tests/mlmmj.c b/tests/mlmmj.c index adb83515..8224a8d1 100644 --- a/tests/mlmmj.c +++ b/tests/mlmmj.c @@ -59,6 +59,8 @@ ATF_TC(write_data); ATF_TC(write_quit); ATF_TC(write_rset); ATF_TC(write_replyto); +ATF_TC(write_rcpt_to); +ATF_TC(write_mail_from); ATF_TC(mygetline); ATF_TC(unsubscribe); ATF_TC(lowercase); @@ -81,6 +83,8 @@ ATF_TC_HEAD(write_data, tc) {} ATF_TC_HEAD(write_quit, tc) {} ATF_TC_HEAD(write_rset, tc) {} ATF_TC_HEAD(write_replyto, tc) {} +ATF_TC_HEAD(write_rcpt_to, tc) {} +ATF_TC_HEAD(write_mail_from, tc) {} ATF_TC_HEAD(mygetline, tc) {} ATF_TC_HEAD(unsubscribe, tc) {} ATF_TC_HEAD(lowercase, tc) {} @@ -429,6 +433,37 @@ ATF_TC_BODY(write_replyto, tc) atf_tc_fail("Unexpected output"); } +ATF_TC_BODY(write_rcpt_to, tc) +{ + ATF_REQUIRE_EQ(write_rcpt_to(-1, "toto"), EACCES); + int fd = open("rcpt_to.txt", O_CREAT|O_WRONLY, 0644); + ATF_REQUIRE_EQ(write_rcpt_to(fd, "toto"), 0); + close(fd); + if (!atf_utils_compare_file("rcpt_to.txt", "RCPT TO:\r\n")) { + atf_utils_cat_file("rcpt_to.txt", ""); + atf_tc_fail("Unexpected output"); + } +} + +ATF_TC_BODY(write_mail_from, tc) +{ + ATF_REQUIRE_EQ(write_mail_from(-1, "toto", NULL), EACCES); + int fd = open("mail_from.txt", O_CREAT|O_WRONLY, 0644); + ATF_REQUIRE_EQ(write_mail_from(fd, "toto", NULL), 0); + close(fd); + if (!atf_utils_compare_file("mail_from.txt", "MAIL FROM:\r\n")) { + atf_utils_cat_file("mail_from.txt", ""); + atf_tc_fail("Unexpected output"); + } + fd = open("mail_from.txt", O_CREAT|O_WRONLY, 0644); + ATF_REQUIRE_EQ(write_mail_from(fd, "toto", "meh"), 0); + close(fd); + if (!atf_utils_compare_file("mail_from.txt", "MAIL FROM: meh\r\n")) { + atf_utils_cat_file("mail_from.txt", ""); + atf_tc_fail("Unexpected output"); + } +} + ATF_TC_BODY(mygetline, tc) { int fd = open("test", O_CREAT|O_RDWR, 0644); @@ -554,6 +589,7 @@ ATF_TC_BODY(controls, tc) atf_utils_wait(p, 1, "", "mlmmj: Unable to open list/control\n"); ATF_REQUIRE_EQ(rename("list/notcontrol", "list/control"), 0); ATF_REQUIRE_EQ(ctrlcontent(&list, "plop"), NULL); + ATF_REQUIRE_EQ(ctrlvalues(&list, "plop"), NULL); ATF_REQUIRE_STREQ(ctrlcontent(&list, "listaddress"), "test@test"); ATF_REQUIRE_EQ(ctrltimet(&list, "listaddress"), 0); ATF_REQUIRE_EQ(ctrltimet(&list, "plop"), 0); @@ -570,6 +606,21 @@ ATF_TC_BODY(controls, tc) ATF_REQUIRE_EQ(ctrlsizet(&list, "listaddress"), 0); ATF_REQUIRE_EQ(ctrlsizet(&list, "plop"), 0); ATF_REQUIRE_EQ(ctrlsizet(&list, "val"), 12); + + f = fopen("list/control/val", "w"); + fputs("line1\nline2\n\nline3\n",f); + fclose(f); + struct strlist *l = ctrlvalues(&list, "val"); + ATF_REQUIRE(l != NULL); + ATF_REQUIRE_EQ(l->count, 3); + ATF_REQUIRE_STREQ(l->strs[0], "line1"); + ATF_REQUIRE_STREQ(l->strs[1], "line2"); + ATF_REQUIRE_STREQ(l->strs[2], "line3"); + + ATF_REQUIRE_EQ(open_control_file(&list, "meh"), -1); + int fd = open_control_file(&list, "val"); + ATF_REQUIRE(fd != -1); + close(fd); } ATF_TP_ADD_TCS(tp) @@ -590,6 +641,8 @@ ATF_TP_ADD_TCS(tp) ATF_TP_ADD_TC(tp, write_quit); ATF_TP_ADD_TC(tp, write_rset); ATF_TP_ADD_TC(tp, write_replyto); + ATF_TP_ADD_TC(tp, write_rcpt_to); + ATF_TP_ADD_TC(tp, write_mail_from); ATF_TP_ADD_TC(tp, mygetline); ATF_TP_ADD_TC(tp, unsubscribe); ATF_TP_ADD_TC(tp, lowercase);