annotate tests/test-jsapi-timer.c @ 1183:1845a0509a93

misc: update copyright years
author David Demelier <markand@malikania.fr>
date Wed, 01 Feb 2023 12:43:11 +0100
parents f06e9761cc90
children 67fa43998a91
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
963
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
1 /*
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
2 * test-jsapi-timer.c -- test Irccd.System API
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
3 *
1183
1845a0509a93 misc: update copyright years
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
4 * Copyright (c) 2013-2023 David Demelier <markand@malikania.fr>
963
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
5 *
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
6 * Permission to use, copy, modify, and/or distribute this software for any
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
7 * purpose with or without fee is hereby granted, provided that the above
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
8 * copyright notice and this permission notice appear in all copies.
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
9 *
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
11 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
12 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
13 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
15 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
17 */
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
18
1076
99dccafade22 tests: resurrect test-jsapi-timer
David Demelier <markand@malikania.fr>
parents: 963
diff changeset
19 #include <poll.h>
1132
6f85c4743494 tests: fix broken tests because of SIGUSR1
David Demelier <markand@malikania.fr>
parents: 1076
diff changeset
20 #include <signal.h>
963
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
21
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
22 #define GREATEST_USE_ABBREVS 0
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
23 #include <greatest.h>
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
24
1076
99dccafade22 tests: resurrect test-jsapi-timer
David Demelier <markand@malikania.fr>
parents: 963
diff changeset
25 #include <irccd/irccd.h>
963
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
26 #include <irccd/js-plugin.h>
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
27 #include <irccd/plugin.h>
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
28
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
29 static struct irc_plugin *plugin;
1076
99dccafade22 tests: resurrect test-jsapi-timer
David Demelier <markand@malikania.fr>
parents: 963
diff changeset
30 static duk_context *ctx;
963
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
31
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
32 static void
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
33 setup(void *udata)
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
34 {
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
35 (void)udata;
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
36
1076
99dccafade22 tests: resurrect test-jsapi-timer
David Demelier <markand@malikania.fr>
parents: 963
diff changeset
37 plugin = js_plugin_open("timer", TOP "/tests/data/timer.js");
99dccafade22 tests: resurrect test-jsapi-timer
David Demelier <markand@malikania.fr>
parents: 963
diff changeset
38 ctx = js_plugin_get_context(plugin);
963
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
39 }
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
40
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
41 static void
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
42 teardown(void *udata)
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
43 {
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
44 (void)udata;
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
45
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
46 irc_plugin_finish(plugin);
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
47
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
48 plugin = NULL;
1076
99dccafade22 tests: resurrect test-jsapi-timer
David Demelier <markand@malikania.fr>
parents: 963
diff changeset
49 ctx = NULL;
963
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
50 }
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
51
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
52 static void
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
53 set_type(const char *name)
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
54 {
1076
99dccafade22 tests: resurrect test-jsapi-timer
David Demelier <markand@malikania.fr>
parents: 963
diff changeset
55 duk_get_global_string(ctx, "Irccd");
99dccafade22 tests: resurrect test-jsapi-timer
David Demelier <markand@malikania.fr>
parents: 963
diff changeset
56 duk_get_prop_string(ctx, -1, "Timer");
99dccafade22 tests: resurrect test-jsapi-timer
David Demelier <markand@malikania.fr>
parents: 963
diff changeset
57 duk_get_prop_string(ctx, -1, name);
99dccafade22 tests: resurrect test-jsapi-timer
David Demelier <markand@malikania.fr>
parents: 963
diff changeset
58 duk_put_global_string(ctx, "type");
99dccafade22 tests: resurrect test-jsapi-timer
David Demelier <markand@malikania.fr>
parents: 963
diff changeset
59 duk_pop_n(ctx, 2);
963
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
60
1076
99dccafade22 tests: resurrect test-jsapi-timer
David Demelier <markand@malikania.fr>
parents: 963
diff changeset
61 irc_plugin_load(plugin);
963
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
62 }
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
63
1076
99dccafade22 tests: resurrect test-jsapi-timer
David Demelier <markand@malikania.fr>
parents: 963
diff changeset
64 GREATEST_TEST
99dccafade22 tests: resurrect test-jsapi-timer
David Demelier <markand@malikania.fr>
parents: 963
diff changeset
65 basics_single(void)
963
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
66 {
1076
99dccafade22 tests: resurrect test-jsapi-timer
David Demelier <markand@malikania.fr>
parents: 963
diff changeset
67 time_t start = time(NULL);
99dccafade22 tests: resurrect test-jsapi-timer
David Demelier <markand@malikania.fr>
parents: 963
diff changeset
68 struct pollfd fd;
963
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
69
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
70 set_type("Single");
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
71
1076
99dccafade22 tests: resurrect test-jsapi-timer
David Demelier <markand@malikania.fr>
parents: 963
diff changeset
72 while (difftime(time(NULL), start) < 3) {
99dccafade22 tests: resurrect test-jsapi-timer
David Demelier <markand@malikania.fr>
parents: 963
diff changeset
73 irc_bot_prepare(&fd);
99dccafade22 tests: resurrect test-jsapi-timer
David Demelier <markand@malikania.fr>
parents: 963
diff changeset
74 poll(&fd, 1, 1);
99dccafade22 tests: resurrect test-jsapi-timer
David Demelier <markand@malikania.fr>
parents: 963
diff changeset
75 irc_bot_flush(&fd);
963
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
76 }
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
77
1076
99dccafade22 tests: resurrect test-jsapi-timer
David Demelier <markand@malikania.fr>
parents: 963
diff changeset
78 GREATEST_ASSERT(duk_get_global_string(ctx, "count"));
99dccafade22 tests: resurrect test-jsapi-timer
David Demelier <markand@malikania.fr>
parents: 963
diff changeset
79 GREATEST_ASSERT_EQ(duk_get_int(ctx, -1), 1);
99dccafade22 tests: resurrect test-jsapi-timer
David Demelier <markand@malikania.fr>
parents: 963
diff changeset
80 GREATEST_PASS();
963
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
81 }
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
82
1076
99dccafade22 tests: resurrect test-jsapi-timer
David Demelier <markand@malikania.fr>
parents: 963
diff changeset
83 GREATEST_TEST
99dccafade22 tests: resurrect test-jsapi-timer
David Demelier <markand@malikania.fr>
parents: 963
diff changeset
84 basics_repeat(void)
963
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
85 {
1076
99dccafade22 tests: resurrect test-jsapi-timer
David Demelier <markand@malikania.fr>
parents: 963
diff changeset
86 time_t start = time(NULL);
99dccafade22 tests: resurrect test-jsapi-timer
David Demelier <markand@malikania.fr>
parents: 963
diff changeset
87 struct pollfd fd;
963
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
88
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
89 set_type("Repeat");
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
90
1076
99dccafade22 tests: resurrect test-jsapi-timer
David Demelier <markand@malikania.fr>
parents: 963
diff changeset
91 while (difftime(time(NULL), start) < 3) {
99dccafade22 tests: resurrect test-jsapi-timer
David Demelier <markand@malikania.fr>
parents: 963
diff changeset
92 irc_bot_prepare(&fd);
99dccafade22 tests: resurrect test-jsapi-timer
David Demelier <markand@malikania.fr>
parents: 963
diff changeset
93 poll(&fd, 1, 1);
99dccafade22 tests: resurrect test-jsapi-timer
David Demelier <markand@malikania.fr>
parents: 963
diff changeset
94 irc_bot_flush(&fd);
963
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
95 }
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
96
1076
99dccafade22 tests: resurrect test-jsapi-timer
David Demelier <markand@malikania.fr>
parents: 963
diff changeset
97 GREATEST_ASSERT(duk_get_global_string(ctx, "count"));
99dccafade22 tests: resurrect test-jsapi-timer
David Demelier <markand@malikania.fr>
parents: 963
diff changeset
98 GREATEST_ASSERT(duk_get_int(ctx, -1) >= 5);
99dccafade22 tests: resurrect test-jsapi-timer
David Demelier <markand@malikania.fr>
parents: 963
diff changeset
99 GREATEST_PASS();
99dccafade22 tests: resurrect test-jsapi-timer
David Demelier <markand@malikania.fr>
parents: 963
diff changeset
100 }
99dccafade22 tests: resurrect test-jsapi-timer
David Demelier <markand@malikania.fr>
parents: 963
diff changeset
101
99dccafade22 tests: resurrect test-jsapi-timer
David Demelier <markand@malikania.fr>
parents: 963
diff changeset
102 GREATEST_SUITE(suite_basics)
99dccafade22 tests: resurrect test-jsapi-timer
David Demelier <markand@malikania.fr>
parents: 963
diff changeset
103 {
99dccafade22 tests: resurrect test-jsapi-timer
David Demelier <markand@malikania.fr>
parents: 963
diff changeset
104 GREATEST_SET_SETUP_CB(setup, NULL);
99dccafade22 tests: resurrect test-jsapi-timer
David Demelier <markand@malikania.fr>
parents: 963
diff changeset
105 GREATEST_SET_TEARDOWN_CB(teardown, NULL);
99dccafade22 tests: resurrect test-jsapi-timer
David Demelier <markand@malikania.fr>
parents: 963
diff changeset
106 GREATEST_RUN_TEST(basics_single);
99dccafade22 tests: resurrect test-jsapi-timer
David Demelier <markand@malikania.fr>
parents: 963
diff changeset
107 GREATEST_RUN_TEST(basics_repeat);
963
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
108 }
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
109
1076
99dccafade22 tests: resurrect test-jsapi-timer
David Demelier <markand@malikania.fr>
parents: 963
diff changeset
110 GREATEST_MAIN_DEFS();
963
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
111
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
112 int
1076
99dccafade22 tests: resurrect test-jsapi-timer
David Demelier <markand@malikania.fr>
parents: 963
diff changeset
113 main(int argc, char **argv)
963
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
114 {
1076
99dccafade22 tests: resurrect test-jsapi-timer
David Demelier <markand@malikania.fr>
parents: 963
diff changeset
115 irc_bot_init();
99dccafade22 tests: resurrect test-jsapi-timer
David Demelier <markand@malikania.fr>
parents: 963
diff changeset
116
99dccafade22 tests: resurrect test-jsapi-timer
David Demelier <markand@malikania.fr>
parents: 963
diff changeset
117 GREATEST_MAIN_BEGIN();
99dccafade22 tests: resurrect test-jsapi-timer
David Demelier <markand@malikania.fr>
parents: 963
diff changeset
118 GREATEST_RUN_SUITE(suite_basics);
99dccafade22 tests: resurrect test-jsapi-timer
David Demelier <markand@malikania.fr>
parents: 963
diff changeset
119 GREATEST_MAIN_END();
99dccafade22 tests: resurrect test-jsapi-timer
David Demelier <markand@malikania.fr>
parents: 963
diff changeset
120
99dccafade22 tests: resurrect test-jsapi-timer
David Demelier <markand@malikania.fr>
parents: 963
diff changeset
121 return 0;
963
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
122 }