Mercurial > irccd
annotate tests/js-timer/main.cpp @ 350:287e9ede5eef
Tests: unbreak some
author | David Demelier <markand@malikania.fr> |
---|---|
date | Mon, 14 Nov 2016 13:11:16 +0100 |
parents | 7227203a9a70 |
children | 15da984ce7ea |
rev | line source |
---|---|
0 | 1 /* |
2 * main.cpp -- test Irccd.Timer API | |
3 * | |
4 * Copyright (c) 2013-2016 David Demelier <markand@malikania.fr> | |
5 * | |
6 * Permission to use, copy, modify, and/or distribute this software for any | |
7 * purpose with or without fee is hereby granted, provided that the above | |
8 * copyright notice and this permission notice appear in all copies. | |
9 * | |
10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES | |
11 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF | |
12 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR | |
13 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES | |
14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN | |
15 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF | |
16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | |
17 */ | |
18 | |
350 | 19 int main() { } |
20 | |
21 #if 0 | |
22 | |
0 | 23 #include <gtest/gtest.h> |
24 | |
95
1125d90b3b44
Misc: switch to .hpp, #477
David Demelier <markand@malikania.fr>
parents:
75
diff
changeset
|
25 #include <irccd/elapsed-timer.hpp> |
1125d90b3b44
Misc: switch to .hpp, #477
David Demelier <markand@malikania.fr>
parents:
75
diff
changeset
|
26 #include <irccd/irccd.hpp> |
127
77f950caab35
Irccd: implement RuleService, #498
David Demelier <markand@malikania.fr>
parents:
95
diff
changeset
|
27 #include <irccd/logger.hpp> |
131
77c90336ba56
Irccd: initial Plugin split, #501
David Demelier <markand@malikania.fr>
parents:
128
diff
changeset
|
28 #include <irccd/plugin-js.hpp> |
350 | 29 #include <irccd/service.hpp> |
95
1125d90b3b44
Misc: switch to .hpp, #477
David Demelier <markand@malikania.fr>
parents:
75
diff
changeset
|
30 #include <irccd/system.hpp> |
0 | 31 |
32 using namespace irccd; | |
33 | |
34 TEST(Basic, single) | |
35 { | |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
190
diff
changeset
|
36 Irccd irccd; |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
190
diff
changeset
|
37 ElapsedTimer timer; |
0 | 38 |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
190
diff
changeset
|
39 auto plugin = std::make_shared<JsPlugin>("timer", IRCCD_TESTS_DIRECTORY "/timer-single.js"); |
0 | 40 |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
190
diff
changeset
|
41 plugin->onLoad(irccd); |
250 | 42 irccd.plugins().add(plugin); |
0 | 43 |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
190
diff
changeset
|
44 while (timer.elapsed() < 3000) { |
281 | 45 util::poller::poll(512, irccd); |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
190
diff
changeset
|
46 irccd.dispatch(); |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
190
diff
changeset
|
47 } |
0 | 48 |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
190
diff
changeset
|
49 ASSERT_TRUE(duk_get_global_string(plugin->context(), "count")); |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
190
diff
changeset
|
50 ASSERT_EQ(1, duk_get_int(plugin->context(), -1)); |
0 | 51 } |
52 | |
53 TEST(Basic, repeat) | |
54 { | |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
190
diff
changeset
|
55 Irccd irccd; |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
190
diff
changeset
|
56 ElapsedTimer timer; |
0 | 57 |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
190
diff
changeset
|
58 auto plugin = std::make_shared<JsPlugin>("timer", IRCCD_TESTS_DIRECTORY "/timer-repeat.js"); |
0 | 59 |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
190
diff
changeset
|
60 plugin->onLoad(irccd); |
250 | 61 irccd.plugins().add(plugin); |
0 | 62 |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
190
diff
changeset
|
63 while (timer.elapsed() < 3000) { |
281 | 64 util::poller::poll(512, irccd); |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
190
diff
changeset
|
65 irccd.dispatch(); |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
190
diff
changeset
|
66 } |
0 | 67 |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
190
diff
changeset
|
68 ASSERT_TRUE(duk_get_global_string(plugin->context(), "count")); |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
190
diff
changeset
|
69 ASSERT_GE(duk_get_int(plugin->context(), -1), 5); |
0 | 70 } |
71 | |
72 #if 0 | |
73 | |
74 /* | |
75 * XXX: currently disabled because it will break single-shot timers. | |
76 */ | |
77 | |
78 TEST(Basic, pending) | |
79 { | |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
190
diff
changeset
|
80 /* |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
190
diff
changeset
|
81 * This test ensure that if pending actions on a stopped timer are never executed. |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
190
diff
changeset
|
82 */ |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
190
diff
changeset
|
83 Irccd irccd; |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
190
diff
changeset
|
84 ElapsedTimer timer; |
0 | 85 |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
190
diff
changeset
|
86 auto plugin = std::make_shared<Plugin>("timer", IRCCD_TESTS_DIRECTORY "/timer-pending.js"); |
0 | 87 |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
190
diff
changeset
|
88 irccd.addPlugin(plugin); |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
190
diff
changeset
|
89 irccd.poll(); |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
190
diff
changeset
|
90 irccd.dispatch(); |
0 | 91 |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
190
diff
changeset
|
92 ASSERT_EQ(0, plugin->context().getGlobal<int>("count")); |
0 | 93 } |
94 | |
95 #endif | |
96 | |
97 int main(int argc, char **argv) | |
98 { | |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
190
diff
changeset
|
99 // Needed for some components. |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
190
diff
changeset
|
100 sys::setProgramName("irccd"); |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
190
diff
changeset
|
101 path::setApplicationPath(argv[0]); |
256
f04acabfbbe5
CMake: switch to NSIS with various fixes, closes #533
David Demelier <markand@malikania.fr>
parents:
250
diff
changeset
|
102 log::setLogger(std::make_unique<log::SilentLogger>()); |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
190
diff
changeset
|
103 log::setVerbose(true); |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
190
diff
changeset
|
104 testing::InitGoogleTest(&argc, argv); |
0 | 105 |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
190
diff
changeset
|
106 return RUN_ALL_TESTS(); |
0 | 107 } |
350 | 108 |
109 #endif |