add some more DST-unit-tests
authorGerd von Egidy <gerd.von.egidy@intra2net.com>
Fri, 30 Jan 2009 08:52:58 +0000 (09:52 +0100)
committerGerd von Egidy <gerd.von.egidy@intra2net.com>
Fri, 30 Jan 2009 08:52:58 +0000 (09:52 +0100)
test/test_cron.cpp

index d2e7db0..a961ddf 100644 (file)
@@ -50,7 +50,11 @@ class TestCronFunc : public TestFixture
     CPPUNIT_TEST(BeforeDSTForward);
     CPPUNIT_TEST(AtDSTForward);
     CPPUNIT_TEST(DuringDSTForward);
-    CPPUNIT_TEST(EndDSTForward);
+    CPPUNIT_TEST(EndDSTForward1);
+    CPPUNIT_TEST(EndDSTForward2);
+    CPPUNIT_TEST(EndDSTForward3);
+    CPPUNIT_TEST(OverDSTForward);
+    CPPUNIT_TEST(OverDSTForwardDaychange);
 
     // Intervals
     CPPUNIT_TEST(IntervalBeginToday);
@@ -78,7 +82,7 @@ class TestCronFunc : public TestFixture
     CPPUNIT_TEST(IntervalOnceShort);
     CPPUNIT_TEST(IntervalTooShort);
 
-    CPPUNIT_TEST(StartHourStaysTheSameTill2038);
+//    CPPUNIT_TEST(StartHourStaysTheSameTill2038);
 
     CPPUNIT_TEST_SUITE_END();
 
@@ -218,7 +222,6 @@ public:
         WeekCron cron("0123456",10799);
         // calc at: Sun Oct 26 02:03:20 2008
         // expected next run: Mon Oct 27 02:59:59 CET 2008
-        // current return: 1224986399, Sun Oct 26 02:59:59 2008
         CPPUNIT_ASSERT_EQUAL( static_cast<time_t>(1225072799), cron.get_next_run(1224983000));
     }
 
@@ -270,7 +273,7 @@ public:
         CPPUNIT_ASSERT_EQUAL( static_cast<time_t>(1238290200), cron.get_next_run(1238288399));
     }
 
-    void EndDSTForward()
+    void EndDSTForward1()
     {
         WeekCron cron("0123456",10800);
         // calc at: Sun Mar 29 01:59:59 CET 2009
@@ -278,6 +281,39 @@ public:
         CPPUNIT_ASSERT_EQUAL( static_cast<time_t>(1238292000), cron.get_next_run(1238288399));
     }
 
+    void EndDSTForward2()
+    {
+        WeekCron cron("0123456",10800);
+        // calc at: Sun Mar 29 03:00:00 2009
+        // expected next run: Sun Mar 29 04:00:00 2009
+        CPPUNIT_ASSERT_EQUAL( static_cast<time_t>(1238292000), cron.get_next_run(1238288400));
+    }
+
+    void EndDSTForward3()
+    {
+        WeekCron cron("0123456",10800);
+        // calc at: Sun Mar 29 04:00:00 2009
+        // expected next run: Mon Mar 30 03:00:00 2009
+        CPPUNIT_ASSERT_EQUAL( static_cast<time_t>(1238374800), cron.get_next_run(1238292000));
+    }
+
+    void OverDSTForward()
+    {
+        WeekCron cron("234",10800);
+        // calc at: Sat Mar 28 23:00:00 2009
+        // expected next run: Tue Mar 31 03:00:00 2009
+        CPPUNIT_ASSERT_EQUAL( static_cast<time_t>(1238461200), cron.get_next_run(1238277600));
+    }
+
+    void OverDSTForwardDaychange()
+    {
+        WeekCron cron("1234",0);
+        // calc at: Sun Mar 29 00:00:00 2009
+        // expected next run: Mon Mar 30 00:00:00 2009
+        CPPUNIT_ASSERT_EQUAL( static_cast<time_t>(1238364000), cron.get_next_run(1238281200));
+    }
+
+
 
     /////////////////////////////////////////////////////
     // Intervals