From: Baptiste Daroussin Date: Thu, 16 Dec 2021 11:28:01 +0000 (+0100) Subject: tests: add testing for strtoim family functions X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=37700a54ebb689497e373523463f253eef4aa8f9;p=thirdparty%2Fmlmmj.git tests: add testing for strtoim family functions --- diff --git a/tests/mlmmj.c b/tests/mlmmj.c index 028a71c4..8f8479c8 100644 --- a/tests/mlmmj.c +++ b/tests/mlmmj.c @@ -29,6 +29,7 @@ #include #include #include +#include #include "chomp.h" #include "mlmmj.h" @@ -36,6 +37,8 @@ #include "controls.h" #include "prepstdreply.h" #include "strgen.h" +#include "utils.h" +#include "memory.h" ATF_TC(random_int); ATF_TC(statctrl); @@ -44,6 +47,8 @@ ATF_TC(open_text); ATF_TC(chomp); ATF_TC(mydirname); ATF_TC(mybasename); +ATF_TC(strtoim); +ATF_TC(strtotimet); ATF_TC_HEAD(random_int, tc) { } ATF_TC_HEAD(statctrl, tc) { } @@ -52,6 +57,8 @@ ATF_TC_HEAD(open_text, tc) {} ATF_TC_HEAD(chomp, tc) {} ATF_TC_HEAD(mydirname, tc) {} ATF_TC_HEAD(mybasename, tc) {} +ATF_TC_HEAD(strtoim, tc) {} +ATF_TC_HEAD(strtotimet, tc) {} #ifndef NELEM #define NELEM(array) (sizeof(array) / sizeof((array)[0])) @@ -264,6 +271,39 @@ ATF_TC_BODY(mybasename, tc) ATF_REQUIRE_STREQ(mybasename(plop1), "file"); } +ATF_TC_BODY(strtoim, tc) +{ + const char *errp; + ATF_REQUIRE_EQ(strtoim("10", 0, 10, &errp), 10); + ATF_CHECK(errp == NULL); + ATF_REQUIRE_EQ(strtoim("10", 0, 9, &errp), 0); + ATF_REQUIRE(errp != NULL); + ATF_REQUIRE_STREQ(errp, "too large"); + ATF_REQUIRE_EQ(strtoim("-1", 0, 9, &errp), 0); + ATF_REQUIRE(errp != NULL); + ATF_REQUIRE_STREQ(errp, "too small"); + ATF_REQUIRE_EQ(strtoim("-1", 10, 9, &errp), 0); + ATF_REQUIRE(errp != NULL); + ATF_REQUIRE_STREQ(errp, "invalid"); + ATF_REQUIRE_EQ(strtoim("ba12", 0, 9, &errp), 0); + ATF_REQUIRE_EQ(errno, EINVAL); + ATF_REQUIRE(errp != NULL); + ATF_REQUIRE_STREQ(errp, "invalid"); +} + +ATF_TC_BODY(strtotimet, tc) +{ + const char *errp; + char *str; + ATF_REQUIRE_EQ(strtotimet("10", &errp), 10); + ATF_CHECK(errp == NULL); + asprintf(&str, "1%"PRIdMAX, INTMAX_MAX); + ATF_REQUIRE_EQ(strtotimet(str, &errp), 0); + myfree(str); + ATF_REQUIRE(errp != NULL); + ATF_REQUIRE_STREQ(errp, "too large"); +} + ATF_TP_ADD_TCS(tp) { ATF_TP_ADD_TC(tp, random_int); @@ -273,6 +313,8 @@ ATF_TP_ADD_TCS(tp) ATF_TP_ADD_TC(tp, chomp); ATF_TP_ADD_TC(tp, mydirname); ATF_TP_ADD_TC(tp, mybasename); + ATF_TP_ADD_TC(tp, strtoim); + ATF_TP_ADD_TC(tp, strtotimet); return (atf_no_error()); }