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);
CPPUNIT_ASSERT_EQUAL( static_cast<time_t>(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<time_t>(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<time_t>(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<time_t>(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<time_t>(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<time_t>(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<time_t>(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<time_t>(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<time_t>(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<time_t>(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<time_t>(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<time_t>(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<time_t>(1224984600), cron.get_next_run(1224984540));
+ }
+
void StartHourStaysTheSameTill2038()
{
int daysec = 79200;