From: Baptiste Daroussin Date: Thu, 16 Dec 2021 13:07:53 +0000 (+0100) Subject: test: add unit test for mygetline X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=f215c9550c3107908bfa0acaf9e4083f94e87512;p=thirdparty%2Fmlmmj.git test: add unit test for mygetline --- diff --git a/src/mygetline.c b/src/mygetline.c index 15566c45..334f35e9 100644 --- a/src/mygetline.c +++ b/src/mygetline.c @@ -31,7 +31,7 @@ #include "mygetline.h" #include "memory.h" -static char *mygetuntil(int fd, int eof) +char *mygetline(int fd) { size_t i = 0, res, buf_size = BUFSIZE; /* initial buffer size */ char *buf, ch; @@ -63,14 +63,9 @@ static char *mygetuntil(int fd, int eof) buf = myrealloc(buf, buf_size); } buf[i++] = ch; - if(eof != EOF && ch == eof) { + if(ch == '\n') { buf[i] = '\0'; return buf; } } } - -char *mygetline(int fd) -{ - return mygetuntil(fd, '\n'); -} diff --git a/tests/mlmmj.c b/tests/mlmmj.c index 7deaf4d8..486d7df9 100644 --- a/tests/mlmmj.c +++ b/tests/mlmmj.c @@ -40,6 +40,7 @@ #include "utils.h" #include "memory.h" #include "mail-functions.h" +#include "mygetline.h" ATF_TC(random_int); ATF_TC(statctrl); @@ -57,6 +58,7 @@ ATF_TC(write_data); ATF_TC(write_quit); ATF_TC(write_rset); ATF_TC(write_replyto); +ATF_TC(mygetline); ATF_TC_HEAD(random_int, tc) { } ATF_TC_HEAD(statctrl, tc) { } @@ -74,6 +76,7 @@ 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(mygetline, tc) {} #ifndef NELEM #define NELEM(array) (sizeof(array) / sizeof((array)[0])) @@ -390,6 +393,29 @@ ATF_TC_BODY(write_replyto, tc) atf_tc_fail("Unexpected output"); } +ATF_TC_BODY(mygetline, tc) +{ + int fd = open("test", O_CREAT|O_RDWR, 0644); + ATF_REQUIRE(mygetline(fd) == NULL); + dprintf(fd, "a"); + lseek (fd, 0, SEEK_SET); + char *res = mygetline(fd); + ATF_REQUIRE(res != NULL); + ATF_REQUIRE_STREQ(res, "a"); + for (int i = 0; i < BUFSIZ + 2; i++) + dprintf(fd, "a"); + lseek (fd, 0, SEEK_SET); + res = mygetline(fd); + ATF_REQUIRE(res != NULL); + dprintf(fd, "\nab\n"); + lseek (fd, 0, SEEK_SET); + res = mygetline(fd); + res = mygetline(fd); + ATF_REQUIRE(res != NULL); + ATF_REQUIRE_STREQ(res, "ab\n"); + close(fd); +} + ATF_TP_ADD_TCS(tp) { ATF_TP_ADD_TC(tp, random_int); @@ -408,6 +434,7 @@ 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, mygetline); return (atf_no_error()); }