#include <err.h>
#include <stdio.h>
#include <stdlib.h>
+#include <errno.h>
#include "chomp.h"
#include "mlmmj.h"
#include "controls.h"
#include "prepstdreply.h"
#include "strgen.h"
+#include "utils.h"
+#include "memory.h"
ATF_TC(random_int);
ATF_TC(statctrl);
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) { }
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]))
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);
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());
}