File: TestTimeFrame.cpp

package info (click to toggle)
ember 0.7.2%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 22,176 kB
  • ctags: 18,979
  • sloc: cpp: 97,414; sh: 11,095; xml: 1,884; makefile: 946; objc: 245; ansic: 19
file content (72 lines) | stat: -rw-r--r-- 2,050 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
#include <cppunit/extensions/TestFactoryRegistry.h>
#include <cppunit/ui/text/TestRunner.h>
#include <cppunit/extensions/HelperMacros.h>
#include <cppunit/BriefTestProgressListener.h>
#include <cppunit/TestResult.h>

#include "framework/TimeFrame.h"

#include <boost/thread.hpp>
#include <boost/date_time.hpp>

namespace Ember
{

class TimeFrameTestCase: public CppUnit::TestFixture
{
CPPUNIT_TEST_SUITE(TimeFrameTestCase);
	CPPUNIT_TEST(testElapsedTime);
	CPPUNIT_TEST(testRemainingTime);

	CPPUNIT_TEST_SUITE_END()
	;

public:
	void testElapsedTime()
	{
		TimeFrame tested = TimeFrame(boost::posix_time::microseconds(10));
		const boost::posix_time::ptime start = boost::posix_time::microsec_clock::local_time();
		boost::this_thread::sleep(boost::posix_time::microseconds(5));

		boost::posix_time::time_duration local_elapsed = (boost::posix_time::microsec_clock::local_time() - start);
		boost::posix_time::time_duration elapsed = tested.getElapsedTime();
		CPPUNIT_ASSERT(elapsed >= local_elapsed);
	}

	void testRemainingTime()
	{
		TimeFrame tested = TimeFrame(boost::posix_time::microseconds(10));
		boost::this_thread::sleep(boost::posix_time::microseconds(5));

		boost::posix_time::time_duration remaining = tested.getRemainingTime();
		CPPUNIT_ASSERT(remaining <= boost::posix_time::microseconds(5));
	}

	void testRemainingTimeTruncAtZero()
	{
		TimeFrame tested = TimeFrame(boost::posix_time::microseconds(2));
		boost::this_thread::sleep(boost::posix_time::microseconds(5));

		CPPUNIT_ASSERT(tested.getRemainingTime() == boost::posix_time::microseconds(0));
	}

};

}

CPPUNIT_TEST_SUITE_REGISTRATION( Ember::TimeFrameTestCase);

int main(int argc, char **argv)
{
	CppUnit::TextUi::TestRunner runner;
	CppUnit::TestFactoryRegistry &registry = CppUnit::TestFactoryRegistry::getRegistry();
	runner.addTest(registry.makeTest());

	// Shows a message as each test starts
	CppUnit::BriefTestProgressListener listener;
	runner.eventManager().addListener(&listener);

	bool wasSuccessful = runner.run("", false);
	return !wasSuccessful;
}