Mercurial > molko
annotate tests/test-util.c @ 329:ea4a3af71c18
rpg: change save_stmt_next API
author | David Demelier <markand@malikania.fr> |
---|---|
date | Mon, 04 Oct 2021 13:30:09 +0200 |
parents | d01e83210ca2 |
children | f5a5bbb77122 |
rev | line source |
---|---|
287
75d2fdf96064
util: nrand no longer contains upper range
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
1 /* |
75d2fdf96064
util: nrand no longer contains upper range
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
2 * test-util.c -- test utilities |
75d2fdf96064
util: nrand no longer contains upper range
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
3 * |
314 | 4 * Copyright (c) 2020-2021 David Demelier <markand@malikania.fr> |
287
75d2fdf96064
util: nrand no longer contains upper range
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
5 * |
75d2fdf96064
util: nrand no longer contains upper range
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
6 * Permission to use, copy, modify, and/or distribute this software for any |
75d2fdf96064
util: nrand no longer contains upper range
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
7 * purpose with or without fee is hereby granted, provided that the above |
75d2fdf96064
util: nrand no longer contains upper range
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
8 * copyright notice and this permission notice appear in all copies. |
75d2fdf96064
util: nrand no longer contains upper range
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
9 * |
75d2fdf96064
util: nrand no longer contains upper range
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES |
75d2fdf96064
util: nrand no longer contains upper range
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
11 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF |
75d2fdf96064
util: nrand no longer contains upper range
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
12 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR |
75d2fdf96064
util: nrand no longer contains upper range
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
13 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES |
75d2fdf96064
util: nrand no longer contains upper range
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN |
75d2fdf96064
util: nrand no longer contains upper range
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
15 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF |
75d2fdf96064
util: nrand no longer contains upper range
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
75d2fdf96064
util: nrand no longer contains upper range
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
17 */ |
75d2fdf96064
util: nrand no longer contains upper range
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
18 |
75d2fdf96064
util: nrand no longer contains upper range
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
19 #include <stdbool.h> |
75d2fdf96064
util: nrand no longer contains upper range
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
20 |
75d2fdf96064
util: nrand no longer contains upper range
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
21 #define GREATEST_USE_ABBREVS 0 |
75d2fdf96064
util: nrand no longer contains upper range
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
22 #include <greatest.h> |
75d2fdf96064
util: nrand no longer contains upper range
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
23 |
75d2fdf96064
util: nrand no longer contains upper range
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
24 #include <core/util.h> |
75d2fdf96064
util: nrand no longer contains upper range
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
25 |
75d2fdf96064
util: nrand no longer contains upper range
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
26 GREATEST_TEST |
75d2fdf96064
util: nrand no longer contains upper range
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
27 nrand_simple(void) |
75d2fdf96064
util: nrand no longer contains upper range
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
28 { |
75d2fdf96064
util: nrand no longer contains upper range
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
29 bool found[10] = {false}; |
75d2fdf96064
util: nrand no longer contains upper range
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
30 |
75d2fdf96064
util: nrand no longer contains upper range
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
31 /* Only try from [2..5], util_nrand does not include upper range. */ |
75d2fdf96064
util: nrand no longer contains upper range
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
32 for (int i = 0; i < 100000; ++i) |
75d2fdf96064
util: nrand no longer contains upper range
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
33 found[util_nrand(2, 6)] = true; |
75d2fdf96064
util: nrand no longer contains upper range
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
34 |
75d2fdf96064
util: nrand no longer contains upper range
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
35 GREATEST_ASSERT_EQ(false, found[0]); |
75d2fdf96064
util: nrand no longer contains upper range
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
36 GREATEST_ASSERT_EQ(false, found[1]); |
75d2fdf96064
util: nrand no longer contains upper range
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
37 GREATEST_ASSERT_EQ(true, found[2]); |
75d2fdf96064
util: nrand no longer contains upper range
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
38 GREATEST_ASSERT_EQ(true, found[3]); |
75d2fdf96064
util: nrand no longer contains upper range
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
39 GREATEST_ASSERT_EQ(true, found[4]); |
75d2fdf96064
util: nrand no longer contains upper range
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
40 GREATEST_ASSERT_EQ(true, found[5]); |
75d2fdf96064
util: nrand no longer contains upper range
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
41 GREATEST_ASSERT_EQ(false, found[7]); |
75d2fdf96064
util: nrand no longer contains upper range
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
42 GREATEST_ASSERT_EQ(false, found[8]); |
75d2fdf96064
util: nrand no longer contains upper range
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
43 GREATEST_ASSERT_EQ(false, found[9]); |
75d2fdf96064
util: nrand no longer contains upper range
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
44 |
75d2fdf96064
util: nrand no longer contains upper range
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
45 GREATEST_PASS(); |
75d2fdf96064
util: nrand no longer contains upper range
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
46 } |
75d2fdf96064
util: nrand no longer contains upper range
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
47 |
75d2fdf96064
util: nrand no longer contains upper range
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
48 GREATEST_SUITE(suite_nrand) |
75d2fdf96064
util: nrand no longer contains upper range
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
49 { |
75d2fdf96064
util: nrand no longer contains upper range
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
50 GREATEST_RUN_TEST(nrand_simple); |
75d2fdf96064
util: nrand no longer contains upper range
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
51 } |
75d2fdf96064
util: nrand no longer contains upper range
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
52 |
75d2fdf96064
util: nrand no longer contains upper range
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
53 GREATEST_MAIN_DEFS(); |
75d2fdf96064
util: nrand no longer contains upper range
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
54 |
75d2fdf96064
util: nrand no longer contains upper range
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
55 int |
75d2fdf96064
util: nrand no longer contains upper range
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
56 main(int argc, char **argv) |
75d2fdf96064
util: nrand no longer contains upper range
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
57 { |
75d2fdf96064
util: nrand no longer contains upper range
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
58 GREATEST_MAIN_BEGIN(); |
75d2fdf96064
util: nrand no longer contains upper range
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
59 GREATEST_RUN_SUITE(suite_nrand); |
75d2fdf96064
util: nrand no longer contains upper range
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
60 GREATEST_MAIN_END(); |
75d2fdf96064
util: nrand no longer contains upper range
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
61 |
75d2fdf96064
util: nrand no longer contains upper range
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
62 return 0; |
75d2fdf96064
util: nrand no longer contains upper range
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
63 } |