diff tests/js-timer/main.cpp @ 488:7e273b7f4f92

Irccd: new coding style, closes #576
author David Demelier <markand@malikania.fr>
date Tue, 26 Sep 2017 17:18:47 +0200
parents 0b156b82b8c1
children 349fe29d86d5
line wrap: on
line diff
--- a/tests/js-timer/main.cpp	Fri Aug 11 13:45:42 2017 +0200
+++ b/tests/js-timer/main.cpp	Tue Sep 26 17:18:47 2017 +0200
@@ -16,96 +16,50 @@
  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  */
 
-#include <gtest/gtest.h>
+#define BOOST_TEST_MODULE "Timer Javascript API"
+#include <boost/test/unit_test.hpp>
+#include <boost/timer/timer.hpp>
 
-#include <irccd/elapsed-timer.hpp>
-#include <irccd/irccd.hpp>
-#include <irccd/logger.hpp>
-#include <irccd/mod-irccd.hpp>
-#include <irccd/mod-plugin.hpp>
-#include <irccd/mod-timer.hpp>
-#include <irccd/plugin-js.hpp>
-#include <irccd/service.hpp>
-#include <irccd/system.hpp>
-
-using namespace irccd;
+#include <irccd/js_plugin_module.hpp>
+#include <irccd/js_timer_module.hpp>
 
-class TestJsTimer : public testing::Test {
-protected:
-    Irccd m_irccd;
-    std::shared_ptr<JsPlugin> m_plugin;
+#include <js_test.hpp>
+
+namespace irccd {
 
-    void open(const std::string &file)
-    {
-        m_plugin = std::make_shared<JsPlugin>("timer", file);
-
-        IrccdModule().load(m_irccd, m_plugin);
-        PluginModule().load(m_irccd, m_plugin);
-        TimerModule().load(m_irccd, m_plugin);
-
-        m_plugin->onLoad(m_irccd);
-        m_irccd.plugins().add(m_plugin);
-    }
+class fixture : public js_test<js_plugin_module, js_timer_module> {
+public:
+    using js_test::js_test;
 };
 
-TEST_F(TestJsTimer, single)
+BOOST_AUTO_TEST_SUITE(js_timer_suite)
+
+BOOST_AUTO_TEST_CASE(single)
 {
-    open(DIRECTORY "/timer-single.js");
-
-    ElapsedTimer timer;
+    fixture f(DIRECTORY "/timer-single.js");
 
-    while (timer.elapsed() < 3000)
-        util::poller::poll(512, m_irccd);
+    boost::timer::cpu_timer timer;
 
-    ASSERT_TRUE(duk_get_global_string(m_plugin->context(), "count"));
-    ASSERT_EQ(1, duk_get_int(m_plugin->context(), -1));
+    while (timer.elapsed().wall / 1000000LL < 3000)
+        util::poller::poll(512, f.irccd_);
+
+    BOOST_TEST(duk_get_global_string(f.plugin_->context(), "count"));
+    BOOST_TEST(duk_get_int(f.plugin_->context(), -1) == 1);
 }
 
-TEST_F(TestJsTimer, repeat)
+BOOST_AUTO_TEST_CASE(repeat)
 {
-    open(DIRECTORY "/timer-repeat.js");
+    fixture f(DIRECTORY "/timer-repeat.js");
 
-    ElapsedTimer timer;
+    boost::timer::cpu_timer timer;
 
-    while (timer.elapsed() < 3000)
-        util::poller::poll(512, m_irccd);
+    while (timer.elapsed().wall / 1000000LL < 3000)
+        util::poller::poll(512, f.irccd_);
 
-    ASSERT_TRUE(duk_get_global_string(m_plugin->context(), "count"));
-    ASSERT_GE(duk_get_int(m_plugin->context(), -1), 5);
+    BOOST_TEST(duk_get_global_string(f.plugin_->context(), "count"));
+    BOOST_TEST(duk_get_int(f.plugin_->context(), -1) >= 5);
 }
 
-#if 0
-
-/*
- * XXX: currently disabled because it will break single-shot timers.
- */
-
-TEST(Basic, pending)
-{
-    /*
-     * This test ensure that if pending actions on a stopped timer are never executed.
-     */
-    Irccd irccd;
-    ElapsedTimer timer;
-
-    auto plugin = std::make_shared<Plugin>("timer", DIRECTORY "/timer-pending.js");
+BOOST_AUTO_TEST_SUITE_END()
 
-    irccd.addPlugin(plugin);
-    irccd.poll();
-    irccd.dispatch();
-
-    ASSERT_EQ(0, plugin->context().getGlobal<int>("count"));
-}
-
-#endif
-
-int main(int argc, char **argv)
-{
-    // Needed for some components.
-    sys::setProgramName("irccd");
-    log::setLogger(std::make_unique<log::SilentLogger>());
-    log::setVerbose(true);
-    testing::InitGoogleTest(&argc, argv);
-
-    return RUN_ALL_TESTS();
-}
+} // !irccd