summaryrefslogtreecommitdiff
path: root/qpid/cpp/src/tests/TimerTest.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'qpid/cpp/src/tests/TimerTest.cpp')
-rw-r--r--qpid/cpp/src/tests/TimerTest.cpp44
1 files changed, 44 insertions, 0 deletions
diff --git a/qpid/cpp/src/tests/TimerTest.cpp b/qpid/cpp/src/tests/TimerTest.cpp
index fc5004dcb0..4a1a050390 100644
--- a/qpid/cpp/src/tests/TimerTest.cpp
+++ b/qpid/cpp/src/tests/TimerTest.cpp
@@ -21,6 +21,7 @@
*/
#include "qpid/sys/Timer.h"
#include "qpid/sys/Monitor.h"
+#include "qpid/Options.h"
#include "unit_test.h"
#include <math.h>
#include <iostream>
@@ -127,6 +128,49 @@ QPID_AUTO_TEST_CASE(testGeneral)
dynamic_pointer_cast<TestTask>(task4)->check(2);
}
+std::string toString(Duration d) { return boost::lexical_cast<std::string>(d); }
+Duration fromString(const std::string& str) { return boost::lexical_cast<Duration>(str); }
+
+QPID_AUTO_TEST_CASE(testOstreamInOut) {
+ std::string empty;
+ BOOST_CHECK_EQUAL(toString(Duration(TIME_SEC)), "1s");
+ BOOST_CHECK_EQUAL(toString(Duration(TIME_SEC*123.4)), "123.4s");
+ BOOST_CHECK_EQUAL(toString(Duration(TIME_MSEC*123.4)), "123.4ms");
+ BOOST_CHECK_EQUAL(toString(Duration(TIME_USEC*123.4)), "123.4us");
+ BOOST_CHECK_EQUAL(toString(Duration(TIME_NSEC*123)), "123ns");
+
+ BOOST_CHECK_EQUAL(fromString("123.4"), Duration(TIME_SEC*123.4));
+ BOOST_CHECK_EQUAL(fromString("123.4s"), Duration(TIME_SEC*123.4));
+ BOOST_CHECK_EQUAL(fromString("123ms"), Duration(TIME_MSEC*123));
+ BOOST_CHECK_EQUAL(fromString("123us"), Duration(TIME_USEC*123));
+ BOOST_CHECK_EQUAL(fromString("123ns"), Duration(TIME_NSEC*123));
+
+ Duration d = 0;
+ std::istringstream i;
+ std::string s;
+
+ i.str("123x");
+ i >> d;
+ BOOST_CHECK(i.fail());
+ BOOST_CHECK_EQUAL(d, 0);
+ BOOST_CHECK_EQUAL(i.str(), "123x");
+
+ i.str("xxx");
+ i >> d;
+ BOOST_CHECK(i.fail());
+ BOOST_CHECK_EQUAL(d, 0);
+ BOOST_CHECK_EQUAL(i.str(), "xxx");
+}
+
+QPID_AUTO_TEST_CASE(testOptionParse) {
+ Options opts;
+ Duration interval;
+ opts.addOptions()("interval", optValue(interval, "I"), "blah");
+ const char *args[] = { "fakeexe", "--interval", "123.4" };
+ opts.parse(sizeof(args)/sizeof(args[0]), args);
+ BOOST_CHECK_EQUAL(interval, Duration(TIME_SEC * 123.4));
+}
+
QPID_AUTO_TEST_SUITE_END()
}} // namespace qpid::tests