X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Ftest%2Ftest-calendarspec.c;h=87e1da1258a703444a0988e48d3c875d91e7ac0f;hb=d5ce1cfce46b9cf4e990acdcbae367785a56ed5e;hp=b0fec8b28a1ed7898fb01685b19b836612e406da;hpb=36697dc0199e25f09b78090fcf5f1cf8a3648ffd;p=elogind.git diff --git a/src/test/test-calendarspec.c b/src/test/test-calendarspec.c index b0fec8b28..87e1da125 100644 --- a/src/test/test-calendarspec.c +++ b/src/test/test-calendarspec.c @@ -26,7 +26,7 @@ static void test_one(const char *input, const char *output) { CalendarSpec *c; - char *p; + _cleanup_free_ char *p = NULL, *q = NULL; usec_t u; char buf[FORMAT_TIMESTAMP_MAX]; int r; @@ -37,13 +37,17 @@ static void test_one(const char *input, const char *output) { printf("\"%s\" → \"%s\"\n", input, p); assert_se(streq(p, output)); - free(p); u = now(CLOCK_REALTIME); r = calendar_spec_next_usec(c, u, &u); printf("Next: %s\n", r < 0 ? strerror(-r) : format_timestamp(buf, sizeof(buf), u)); + calendar_spec_free(c); + assert_se(calendar_spec_from_string(p, &c) >= 0); + assert_se(calendar_spec_to_string(c, &q) >= 0); calendar_spec_free(c); + + assert_se(streq(q, p)); } int main(int argc, char* argv[]) { @@ -73,6 +77,10 @@ int main(int argc, char* argv[]) { test_one("daily", "*-*-* 00:00:00"); test_one("monthly", "*-*-01 00:00:00"); test_one("weekly", "Mon *-*-* 00:00:00"); + test_one("minutely", "*-*-* *:*:00"); + test_one("quarterly", "*-01,04,07,10-01 00:00:00"); + test_one("semi-annually", "*-01,07-01 00:00:00"); + test_one("annually", "*-01-01 00:00:00"); test_one("*:2/3", "*-*-* *:02/3:00"); assert_se(calendar_spec_from_string("test", &c) < 0);