annotate tests/libcommon/js-elapsed-timer/main.cpp @ 63:96ba0c5cf893

Misc: update duktape.hpp to new style
author David Demelier <markand@malikania.fr>
date Fri, 16 Dec 2016 16:11:24 +0100
parents f30c84b4b9ed
children 858621081b95
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
20
787c2adb366c Client: add JavaScript bindings for ElapsedTimer, #464
David Demelier <markand@malikania.fr>
parents:
diff changeset
1 /*
787c2adb366c Client: add JavaScript bindings for ElapsedTimer, #464
David Demelier <markand@malikania.fr>
parents:
diff changeset
2 * main.cpp -- test ElapsedTimer (JavaScript binding)
787c2adb366c Client: add JavaScript bindings for ElapsedTimer, #464
David Demelier <markand@malikania.fr>
parents:
diff changeset
3 *
787c2adb366c Client: add JavaScript bindings for ElapsedTimer, #464
David Demelier <markand@malikania.fr>
parents:
diff changeset
4 * Copyright (c) 2013-2016 Malikania Authors
787c2adb366c Client: add JavaScript bindings for ElapsedTimer, #464
David Demelier <markand@malikania.fr>
parents:
diff changeset
5 *
787c2adb366c Client: add JavaScript bindings for ElapsedTimer, #464
David Demelier <markand@malikania.fr>
parents:
diff changeset
6 * Permission to use, copy, modify, and/or distribute this software for any
787c2adb366c Client: add JavaScript bindings for ElapsedTimer, #464
David Demelier <markand@malikania.fr>
parents:
diff changeset
7 * purpose with or without fee is hereby granted, provided that the above
787c2adb366c Client: add JavaScript bindings for ElapsedTimer, #464
David Demelier <markand@malikania.fr>
parents:
diff changeset
8 * copyright notice and this permission notice appear in all copies.
787c2adb366c Client: add JavaScript bindings for ElapsedTimer, #464
David Demelier <markand@malikania.fr>
parents:
diff changeset
9 *
787c2adb366c Client: add JavaScript bindings for ElapsedTimer, #464
David Demelier <markand@malikania.fr>
parents:
diff changeset
10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
787c2adb366c Client: add JavaScript bindings for ElapsedTimer, #464
David Demelier <markand@malikania.fr>
parents:
diff changeset
11 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
787c2adb366c Client: add JavaScript bindings for ElapsedTimer, #464
David Demelier <markand@malikania.fr>
parents:
diff changeset
12 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
787c2adb366c Client: add JavaScript bindings for ElapsedTimer, #464
David Demelier <markand@malikania.fr>
parents:
diff changeset
13 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
787c2adb366c Client: add JavaScript bindings for ElapsedTimer, #464
David Demelier <markand@malikania.fr>
parents:
diff changeset
14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
787c2adb366c Client: add JavaScript bindings for ElapsedTimer, #464
David Demelier <markand@malikania.fr>
parents:
diff changeset
15 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
787c2adb366c Client: add JavaScript bindings for ElapsedTimer, #464
David Demelier <markand@malikania.fr>
parents:
diff changeset
16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
787c2adb366c Client: add JavaScript bindings for ElapsedTimer, #464
David Demelier <markand@malikania.fr>
parents:
diff changeset
17 */
787c2adb366c Client: add JavaScript bindings for ElapsedTimer, #464
David Demelier <markand@malikania.fr>
parents:
diff changeset
18
787c2adb366c Client: add JavaScript bindings for ElapsedTimer, #464
David Demelier <markand@malikania.fr>
parents:
diff changeset
19 #include <thread>
787c2adb366c Client: add JavaScript bindings for ElapsedTimer, #464
David Demelier <markand@malikania.fr>
parents:
diff changeset
20
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
21 #define BOOST_TEST_MODULE "Javascript ElapsedTimer"
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
22 #include <boost/format.hpp>
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
23 #include <boost/test/unit_test.hpp>
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
24
42
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
25 #include <malikania/js_elapsed_timer.hpp>
20
787c2adb366c Client: add JavaScript bindings for ElapsedTimer, #464
David Demelier <markand@malikania.fr>
parents:
diff changeset
26
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
27 using boost::format;
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
28 using boost::str;
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
29
43
fabbe1759cec Misc: switch to mlk namespace, closes #589
David Demelier <markand@malikania.fr>
parents: 42
diff changeset
30 using namespace mlk;
20
787c2adb366c Client: add JavaScript bindings for ElapsedTimer, #464
David Demelier <markand@malikania.fr>
parents:
diff changeset
31 using namespace std::chrono_literals;
787c2adb366c Client: add JavaScript bindings for ElapsedTimer, #464
David Demelier <markand@malikania.fr>
parents:
diff changeset
32
787c2adb366c Client: add JavaScript bindings for ElapsedTimer, #464
David Demelier <markand@malikania.fr>
parents:
diff changeset
33 /*
787c2adb366c Client: add JavaScript bindings for ElapsedTimer, #464
David Demelier <markand@malikania.fr>
parents:
diff changeset
34 * For all tests, we tolerate 30 ms because some systems have bigger lags.
787c2adb366c Client: add JavaScript bindings for ElapsedTimer, #464
David Demelier <markand@malikania.fr>
parents:
diff changeset
35 */
787c2adb366c Client: add JavaScript bindings for ElapsedTimer, #464
David Demelier <markand@malikania.fr>
parents:
diff changeset
36 static constexpr int margin = 30;
787c2adb366c Client: add JavaScript bindings for ElapsedTimer, #464
David Demelier <markand@malikania.fr>
parents:
diff changeset
37
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
38 class test_elapsed_timer {
20
787c2adb366c Client: add JavaScript bindings for ElapsedTimer, #464
David Demelier <markand@malikania.fr>
parents:
diff changeset
39 protected:
63
96ba0c5cf893 Misc: update duktape.hpp to new style
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
40 dukx_context m_ctx;
20
787c2adb366c Client: add JavaScript bindings for ElapsedTimer, #464
David Demelier <markand@malikania.fr>
parents:
diff changeset
41
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
42 test_elapsed_timer()
42
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
43 {
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
44 duk_push_object(m_ctx);
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
45 duk_put_global_string(m_ctx, "Malikania");
42
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
46 mlk::dukx_load_elapsedtimer(m_ctx);
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
47 }
20
787c2adb366c Client: add JavaScript bindings for ElapsedTimer, #464
David Demelier <markand@malikania.fr>
parents:
diff changeset
48
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
49 inline void assert_range(int value, int expected) const
42
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
50 {
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
51 if (value < (expected - margin) || value > (expected + margin)) {
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
52 throw std::invalid_argument(
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
53 str(format("%d is bigger than [%d, %d]") % value % (expected - margin) % (expected + margin)));
42
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
54 }
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
55 }
20
787c2adb366c Client: add JavaScript bindings for ElapsedTimer, #464
David Demelier <markand@malikania.fr>
parents:
diff changeset
56 };
787c2adb366c Client: add JavaScript bindings for ElapsedTimer, #464
David Demelier <markand@malikania.fr>
parents:
diff changeset
57
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
58 BOOST_FIXTURE_TEST_SUITE(test_elapsed_timer_suite, test_elapsed_timer)
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
59
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
60 BOOST_AUTO_TEST_CASE(standard)
20
787c2adb366c Client: add JavaScript bindings for ElapsedTimer, #464
David Demelier <markand@malikania.fr>
parents:
diff changeset
61 {
42
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
62 try {
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
63 if (duk_peval_string(m_ctx, "timer = new Malikania.ElapsedTimer();") != 0) {
63
96ba0c5cf893 Misc: update duktape.hpp to new style
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
64 throw dukx_get_exception(m_ctx, -1);
42
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
65 }
20
787c2adb366c Client: add JavaScript bindings for ElapsedTimer, #464
David Demelier <markand@malikania.fr>
parents:
diff changeset
66
42
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
67 std::this_thread::sleep_for(300ms);
20
787c2adb366c Client: add JavaScript bindings for ElapsedTimer, #464
David Demelier <markand@malikania.fr>
parents:
diff changeset
68
42
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
69 if (duk_peval_string(m_ctx, "result = timer.elapsed();") != 0) {
63
96ba0c5cf893 Misc: update duktape.hpp to new style
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
70 throw dukx_get_exception(m_ctx, -1);
42
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
71 }
20
787c2adb366c Client: add JavaScript bindings for ElapsedTimer, #464
David Demelier <markand@malikania.fr>
parents:
diff changeset
72
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
73 duk_get_global_string(m_ctx, "result");
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
74 assert_range(duk_to_int(m_ctx, -1), 300);
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
75 duk_pop(m_ctx);
42
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
76 } catch (const std::exception &ex) {
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
77 BOOST_FAIL(ex.what());
42
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
78 }
20
787c2adb366c Client: add JavaScript bindings for ElapsedTimer, #464
David Demelier <markand@malikania.fr>
parents:
diff changeset
79 }
787c2adb366c Client: add JavaScript bindings for ElapsedTimer, #464
David Demelier <markand@malikania.fr>
parents:
diff changeset
80
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
81 BOOST_AUTO_TEST_CASE(reset)
20
787c2adb366c Client: add JavaScript bindings for ElapsedTimer, #464
David Demelier <markand@malikania.fr>
parents:
diff changeset
82 {
42
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
83 try {
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
84 if (duk_peval_string(m_ctx, "timer = new Malikania.ElapsedTimer();") != 0) {
63
96ba0c5cf893 Misc: update duktape.hpp to new style
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
85 throw dukx_get_exception(m_ctx, -1);
42
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
86 }
20
787c2adb366c Client: add JavaScript bindings for ElapsedTimer, #464
David Demelier <markand@malikania.fr>
parents:
diff changeset
87
42
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
88 std::this_thread::sleep_for(300ms);
20
787c2adb366c Client: add JavaScript bindings for ElapsedTimer, #464
David Demelier <markand@malikania.fr>
parents:
diff changeset
89
42
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
90 if (duk_peval_string(m_ctx, "timer.reset(); result = timer.elapsed();") != 0) {
63
96ba0c5cf893 Misc: update duktape.hpp to new style
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
91 throw dukx_get_exception(m_ctx, -1);
42
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
92 }
20
787c2adb366c Client: add JavaScript bindings for ElapsedTimer, #464
David Demelier <markand@malikania.fr>
parents:
diff changeset
93
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
94 duk_get_global_string(m_ctx, "result");
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
95 assert_range(duk_to_int(m_ctx, -1), 0);
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
96 duk_pop(m_ctx);
42
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
97 } catch (const std::exception &ex) {
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
98 BOOST_FAIL(ex.what());
42
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
99 }
20
787c2adb366c Client: add JavaScript bindings for ElapsedTimer, #464
David Demelier <markand@malikania.fr>
parents:
diff changeset
100 }
787c2adb366c Client: add JavaScript bindings for ElapsedTimer, #464
David Demelier <markand@malikania.fr>
parents:
diff changeset
101
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
102 BOOST_AUTO_TEST_CASE(pause)
20
787c2adb366c Client: add JavaScript bindings for ElapsedTimer, #464
David Demelier <markand@malikania.fr>
parents:
diff changeset
103 {
42
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
104 try {
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
105 if (duk_peval_string(m_ctx, "timer = new Malikania.ElapsedTimer();") != 0) {
63
96ba0c5cf893 Misc: update duktape.hpp to new style
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
106 throw dukx_get_exception(m_ctx, -1);
42
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
107 }
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
108
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
109 /*
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
110 * Simulate a pause in the game like this:
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
111 *
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
112 * start pause restart elapsed
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
113 * | 10ms |.5ms.| 6ms |
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
114 *
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
115 * Since the game was paused, the 5ms must not be totalized.
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
116 */
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
117 std::this_thread::sleep_for(10ms);
20
787c2adb366c Client: add JavaScript bindings for ElapsedTimer, #464
David Demelier <markand@malikania.fr>
parents:
diff changeset
118
42
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
119 if (duk_peval_string(m_ctx, "timer.pause();") != 0) {
63
96ba0c5cf893 Misc: update duktape.hpp to new style
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
120 throw dukx_get_exception(m_ctx, -1);
42
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
121 }
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
122
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
123 std::this_thread::sleep_for(5ms);
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
124
42
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
125 if (duk_peval_string(m_ctx, "timer.restart();") != 0) {
63
96ba0c5cf893 Misc: update duktape.hpp to new style
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
126 throw dukx_get_exception(m_ctx, -1);
42
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
127 }
20
787c2adb366c Client: add JavaScript bindings for ElapsedTimer, #464
David Demelier <markand@malikania.fr>
parents:
diff changeset
128
42
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
129 std::this_thread::sleep_for(6ms);
20
787c2adb366c Client: add JavaScript bindings for ElapsedTimer, #464
David Demelier <markand@malikania.fr>
parents:
diff changeset
130
42
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
131 if (duk_peval_string(m_ctx, "result = timer.elapsed()") != 0) {
63
96ba0c5cf893 Misc: update duktape.hpp to new style
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
132 throw dukx_get_exception(m_ctx, -1);
42
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
133 }
20
787c2adb366c Client: add JavaScript bindings for ElapsedTimer, #464
David Demelier <markand@malikania.fr>
parents:
diff changeset
134
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
135 duk_get_global_string(m_ctx, "result");
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
136 assert_range(duk_to_int(m_ctx, -1), 16);
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
137 duk_pop(m_ctx);
42
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
138 } catch (const std::exception &ex) {
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
139 BOOST_FAIL(ex.what());
42
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
140 }
20
787c2adb366c Client: add JavaScript bindings for ElapsedTimer, #464
David Demelier <markand@malikania.fr>
parents:
diff changeset
141 }
787c2adb366c Client: add JavaScript bindings for ElapsedTimer, #464
David Demelier <markand@malikania.fr>
parents:
diff changeset
142
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
143 BOOST_AUTO_TEST_CASE(doublecheck)
20
787c2adb366c Client: add JavaScript bindings for ElapsedTimer, #464
David Demelier <markand@malikania.fr>
parents:
diff changeset
144 {
42
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
145 try {
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
146 if (duk_peval_string(m_ctx, "timer = new Malikania.ElapsedTimer();") != 0) {
63
96ba0c5cf893 Misc: update duktape.hpp to new style
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
147 throw dukx_get_exception(m_ctx, -1);
42
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
148 }
20
787c2adb366c Client: add JavaScript bindings for ElapsedTimer, #464
David Demelier <markand@malikania.fr>
parents:
diff changeset
149
42
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
150 std::this_thread::sleep_for(50ms);
20
787c2adb366c Client: add JavaScript bindings for ElapsedTimer, #464
David Demelier <markand@malikania.fr>
parents:
diff changeset
151
42
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
152 if (duk_peval_string(m_ctx, "result = timer.elapsed()") != 0) {
63
96ba0c5cf893 Misc: update duktape.hpp to new style
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
153 throw dukx_get_exception(m_ctx, -1);
42
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
154 }
20
787c2adb366c Client: add JavaScript bindings for ElapsedTimer, #464
David Demelier <markand@malikania.fr>
parents:
diff changeset
155
42
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
156 std::this_thread::sleep_for(50ms);
20
787c2adb366c Client: add JavaScript bindings for ElapsedTimer, #464
David Demelier <markand@malikania.fr>
parents:
diff changeset
157
42
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
158 if (duk_peval_string(m_ctx, "result = timer.elapsed()") != 0) {
63
96ba0c5cf893 Misc: update duktape.hpp to new style
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
159 throw dukx_get_exception(m_ctx, -1);
42
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
160 }
20
787c2adb366c Client: add JavaScript bindings for ElapsedTimer, #464
David Demelier <markand@malikania.fr>
parents:
diff changeset
161
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
162 duk_get_global_string(m_ctx, "result");
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
163 assert_range(duk_to_int(m_ctx, -1), 100);
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
164 duk_pop(m_ctx);
42
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
165 } catch (const std::exception &ex) {
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
166 BOOST_FAIL(ex.what());
42
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
167 }
20
787c2adb366c Client: add JavaScript bindings for ElapsedTimer, #464
David Demelier <markand@malikania.fr>
parents:
diff changeset
168 }
787c2adb366c Client: add JavaScript bindings for ElapsedTimer, #464
David Demelier <markand@malikania.fr>
parents:
diff changeset
169
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
170 BOOST_AUTO_TEST_SUITE_END()