From bb1ee91509e962a130979ba6d8293a333bf4640e Mon Sep 17 00:00:00 2001 From: Tatsuhiro Tsujikawa Date: Sun, 5 Oct 2008 15:24:17 +0000 Subject: [PATCH] 2008-10-06 Tatsuhiro Tsujikawa Added test for Time::elapsed(time_t). * test/TimeTest.cc --- ChangeLog | 5 +++++ test/TimeTest.cc | 35 +++++++++++++++++++++++++++++++++-- 2 files changed, 38 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index c76fffcd..55d5ce69 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2008-10-06 Tatsuhiro Tsujikawa + + Added test for Time::elapsed(time_t). + * test/TimeTest.cc + 2008-10-05 Tatsuhiro Tsujikawa Fixed the bug in Time::elapsed(): Util::difftvsec() is used where diff --git a/test/TimeTest.cc b/test/TimeTest.cc index cb595306..4b55e239 100644 --- a/test/TimeTest.cc +++ b/test/TimeTest.cc @@ -1,8 +1,11 @@ #include "TimeA2.h" + +#include + +#include + #include "Exception.h" #include "Util.h" -#include -#include namespace aria2 { @@ -14,6 +17,7 @@ class TimeTest:public CppUnit::TestFixture { CPPUNIT_TEST(testParseRFC850Ext); CPPUNIT_TEST(testParseHTTPDate); CPPUNIT_TEST(testOperatorLess); + CPPUNIT_TEST(testElapsed); CPPUNIT_TEST_SUITE_END(); public: void setUp() {} @@ -25,6 +29,7 @@ public: void testParseRFC850Ext(); void testParseHTTPDate(); void testOperatorLess(); + void testElapsed(); }; @@ -82,4 +87,30 @@ void TimeTest::testOperatorLess() CPPUNIT_ASSERT(Time(tv2) < Time(tv1)); } +void TimeTest::testElapsed() +{ + struct timeval now; + gettimeofday(&now, 0); + { + struct timeval tv = now; + CPPUNIT_ASSERT(!Time(tv).elapsed(1)); + } + { + struct timeval tv; + suseconds_t usec = now.tv_usec+500000; + if(usec > 999999) { + tv.tv_sec = now.tv_sec+usec/1000000; + tv.tv_usec = usec%1000000; + } else { + tv.tv_sec = now.tv_sec; + tv.tv_usec = usec; + } + CPPUNIT_ASSERT(!Time(tv).elapsed(1)); + } + { + struct timeval tv = { now.tv_sec-1, now.tv_usec }; + CPPUNIT_ASSERT(Time(tv).elapsed(1)); + } +} + } // namespace aria2