From: Gerd von Egidy Date: Fri, 30 Jan 2009 11:04:43 +0000 (+0100) Subject: even more (interval-) unit tests X-Git-Tag: v2.6~136^2~7 X-Git-Url: http://developer.intra2net.com/git/?a=commitdiff_plain;h=c9954768fd784cb04b29286394b122ee94d09866;p=libi2ncommon even more (interval-) unit tests --- diff --git a/test/test_cron.cpp b/test/test_cron.cpp index d55ea93..d51c97b 100644 --- a/test/test_cron.cpp +++ b/test/test_cron.cpp @@ -81,6 +81,18 @@ class TestCronFunc : public TestFixture CPPUNIT_TEST(IntervalAfterOnce); CPPUNIT_TEST(IntervalOnceShort); CPPUNIT_TEST(IntervalTooShort); + CPPUNIT_TEST(IntervalOverDSTBackwards1); + CPPUNIT_TEST(IntervalOverDSTBackwards2); + CPPUNIT_TEST(IntervalOverDSTBackwards3); + CPPUNIT_TEST(IntervalOverDSTBackwards4); + CPPUNIT_TEST(IntervalInFirstDSTBackwards1); + CPPUNIT_TEST(IntervalInFirstDSTBackwards2); + CPPUNIT_TEST(IntervalInSecondDSTBackwards1); + CPPUNIT_TEST(IntervalInSecondDSTBackwards2); + CPPUNIT_TEST(IntervalOutFirstDSTBackwards1); + CPPUNIT_TEST(IntervalOutFirstDSTBackwards2); + CPPUNIT_TEST(IntervalOutFirstDSTBackwards3); + CPPUNIT_TEST(IntervalOutFirstDSTBackwards4); CPPUNIT_TEST(StartHourStaysTheSameTill2038); @@ -463,6 +475,102 @@ public: CPPUNIT_ASSERT_EQUAL( static_cast(1233183600), cron.get_next_run(1233097200)); } + void IntervalOverDSTBackwards1() + { + WeekCron cron("0123456",0,14400,60); + // calc at: Sun Oct 26 01:59:59 2008 + // expected next run: Sun Oct 26 02:00:00 2008 + CPPUNIT_ASSERT_EQUAL( static_cast(1224979200), cron.get_next_run(1224979199)); + } + + void IntervalOverDSTBackwards2() + { + WeekCron cron("0123456",0,14400,60); + // calc at: Sun Oct 26 02:29:59 2008 + // expected next run: Sun Oct 26 02:30:00 2008 + CPPUNIT_ASSERT_EQUAL( static_cast(1224981000), cron.get_next_run(1224980999)); + } + + void IntervalOverDSTBackwards3() + { + WeekCron cron("0123456",0,14400,60); + // calc at: Sun Oct 26 02:59:59 2008 + // expected next run: Sun Oct 26 02:00:00 2008 + CPPUNIT_ASSERT_EQUAL( static_cast(1224982800), cron.get_next_run(1224982799)); + } + + void IntervalOverDSTBackwards4() + { + WeekCron cron("0123456",0,14400,60); + // calc at: Sun Oct 26 02:59:59 2008 + // expected next run: Mon Oct 27 00:00:00 2008 + CPPUNIT_ASSERT_EQUAL( static_cast(1225062000), cron.get_next_run(1224986399)); + } + + void IntervalInFirstDSTBackwards1() + { + WeekCron cron("0123456",0,9000,60); + // calc at: Sun Oct 26 02:28:59 2008 + // expected next run: Sun Oct 26 02:29:00 2008 + CPPUNIT_ASSERT_EQUAL( static_cast(1224980940), cron.get_next_run(1224980939)); + } + + void IntervalInFirstDSTBackwards2() + { + WeekCron cron("0123456",0,9000,60); + // calc at: Sun Oct 26 02:29:01 2008 + // expected next run: Mon Oct 27 00:00:00 2008 + CPPUNIT_ASSERT_EQUAL( static_cast(1225062000), cron.get_next_run(1224980941)); + } + + void IntervalInSecondDSTBackwards1() + { + WeekCron cron("0123456",0,12600,60); + // calc at: Sun Oct 26 02:28:59 2008 + // expected next run: Sun Oct 26 02:29:00 2008 + CPPUNIT_ASSERT_EQUAL( static_cast(1224984540), cron.get_next_run(1224984539)); + } + + void IntervalInSecondDSTBackwards2() + { + WeekCron cron("0123456",0,12600,60); + // calc at: Sun Oct 26 02:29:01 2008 + // expected next run: Mon Oct 27 00:00:00 2008 + CPPUNIT_ASSERT_EQUAL( static_cast(1225062000), cron.get_next_run(1224984541)); + } + + void IntervalOutFirstDSTBackwards1() + { + WeekCron cron("0123456",9000,18000,60); + // calc at: Sun Oct 26 02:29:00 2008 + // expected next run: Sun Oct 26 02:30:00 2008 + CPPUNIT_ASSERT_EQUAL( static_cast(1224981000), cron.get_next_run(1224980940)); + } + + void IntervalOutFirstDSTBackwards2() + { + WeekCron cron("0123456",9000,18000,60); + // calc at: Sun Oct 26 02:30:00 2008 + // expected next run: Sun Oct 26 02:31:00 2008 + CPPUNIT_ASSERT_EQUAL( static_cast(1224981060), cron.get_next_run(1224981000)); + } + + void IntervalOutFirstDSTBackwards3() + { + WeekCron cron("0123456",9000,18000,60); + // calc at: Sun Oct 26 02:59:59 CEST 2008 + // expected next run: Sun Oct 26 02:00:00 CET 2008 + CPPUNIT_ASSERT_EQUAL( static_cast(1224979200), cron.get_next_run(1224979199)); + } + + void IntervalOutFirstDSTBackwards4() + { + WeekCron cron("0123456",9000,18000,60); + // calc at: Sun Oct 26 02:29:00 2008 + // expected next run: Sun Oct 26 02:30:00 2008 + CPPUNIT_ASSERT_EQUAL( static_cast(1224984600), cron.get_next_run(1224984540)); + } + void StartHourStaysTheSameTill2038() { int daysec = 79200;