Mercurial > irccd
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