Mercurial > irccd
annotate tests/test-util.c @ 1089:16e66403ea66
plugins: substitute IRCCD_VERSION in Javascript plugins
author | David Demelier <markand@malikania.fr> |
---|---|
date | Wed, 21 Jul 2021 15:33:17 +0200 |
parents | 243f9f51b0ff |
children | f06e9761cc90 |
rev | line source |
---|---|
934
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
1 /* |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
2 * test-util.c -- test util.h functions |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
3 * |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
4 * Copyright (c) 2013-2021 David Demelier <markand@malikania.fr> |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
5 * |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
6 * Permission to use, copy, modify, and/or distribute this software for any |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
7 * purpose with or without fee is hereby granted, provided that the above |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
8 * copyright notice and this permission notice appear in all copies. |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
9 * |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
11 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
12 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
13 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
15 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
17 */ |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
18 |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
19 #define GREATEST_USE_ABBREVS 0 |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
20 #include <greatest.h> |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
21 |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
22 #include <irccd/util.h> |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
23 |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
24 /* Make sure to run this test with sanitizers enabled. */ |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
25 |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
26 GREATEST_TEST |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
27 basics_size(void) |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
28 { |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
29 int array[10] = {0}; |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
30 |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
31 GREATEST_ASSERT_EQ(10, IRC_UTIL_SIZE(array)); |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
32 GREATEST_PASS(); |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
33 } |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
34 |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
35 GREATEST_TEST |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
36 basics_malloc(void) |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
37 { |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
38 int *array; |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
39 |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
40 array = irc_util_malloc(sizeof (*array) * 10); |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
41 memset(array, 0, sizeof (*array) * 10); |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
42 |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
43 GREATEST_PASS(); |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
44 } |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
45 |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
46 GREATEST_TEST |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
47 basics_calloc(void) |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
48 { |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
49 int *array; |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
50 |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
51 array = irc_util_calloc(10, sizeof (*array)); |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
52 memset(array, 0, sizeof (*array) * 10); |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
53 |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
54 GREATEST_PASS(); |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
55 } |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
56 |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
57 GREATEST_TEST |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
58 basics_realloc(void) |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
59 { |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
60 int *array = NULL; |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
61 |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
62 array = irc_util_realloc(array, sizeof (*array) * 10); |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
63 memset(array, 0, sizeof (*array) * 10); |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
64 |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
65 GREATEST_PASS(); |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
66 } |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
67 |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
68 GREATEST_TEST |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
69 basics_reallocarray(void) |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
70 { |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
71 int *array = NULL; |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
72 |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
73 array = irc_util_calloc(10, sizeof (*array)); |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
74 array = irc_util_reallocarray(array, 20, sizeof (*array)); |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
75 memset(array, 0, sizeof (*array) * 20); |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
76 |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
77 GREATEST_PASS(); |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
78 } |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
79 |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
80 GREATEST_TEST |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
81 basics_memdup(void) |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
82 { |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
83 int tab[] = { 1, 2, 3, 4 }; |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
84 int *copy; |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
85 |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
86 copy = irc_util_memdup(tab, sizeof (tab)); |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
87 GREATEST_ASSERT(memcmp(tab, copy, sizeof (tab)) == 0); |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
88 GREATEST_PASS(); |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
89 } |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
90 |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
91 GREATEST_TEST |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
92 basics_strdup(void) |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
93 { |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
94 char *out; |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
95 |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
96 out = irc_util_strdup("hello"); |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
97 GREATEST_ASSERT_STR_EQ("hello", out); |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
98 GREATEST_PASS(); |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
99 } |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
100 |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
101 GREATEST_TEST |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
102 basics_basename(void) |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
103 { |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
104 GREATEST_ASSERT_STR_EQ("irccd", irc_util_basename("/usr/local/bin/irccd")); |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
105 GREATEST_ASSERT_STR_EQ("irccd", irc_util_basename("irccd")); |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
106 GREATEST_PASS(); |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
107 } |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
108 |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
109 GREATEST_TEST |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
110 basics_dirname(void) |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
111 { |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
112 GREATEST_ASSERT_STR_EQ("/usr/local/bin", irc_util_dirname("/usr/local/bin/irccd")); |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
113 GREATEST_ASSERT_STR_EQ(".", irc_util_dirname("irccd")); |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
114 GREATEST_PASS(); |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
115 } |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
116 |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
117 GREATEST_SUITE(suite_basics) |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
118 { |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
119 GREATEST_RUN_TEST(basics_size); |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
120 GREATEST_RUN_TEST(basics_malloc); |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
121 GREATEST_RUN_TEST(basics_calloc); |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
122 GREATEST_RUN_TEST(basics_realloc); |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
123 GREATEST_RUN_TEST(basics_reallocarray); |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
124 GREATEST_RUN_TEST(basics_memdup); |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
125 GREATEST_RUN_TEST(basics_strdup); |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
126 GREATEST_RUN_TEST(basics_dirname); |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
127 GREATEST_RUN_TEST(basics_basename); |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
128 } |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
129 |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
130 GREATEST_MAIN_DEFS(); |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
131 |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
132 int |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
133 main(int argc, char **argv) |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
134 { |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
135 GREATEST_MAIN_BEGIN(); |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
136 GREATEST_RUN_SUITE(suite_basics); |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
137 GREATEST_MAIN_END(); |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
138 |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
139 return 0; |
243f9f51b0ff
irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
140 } |