2 * GRUB -- GRand Unified Bootloader
3 * Copyright (C) 2012 Free Software Foundation, Inc.
5 * GRUB is free software: you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation, either version 3 of the License, or
8 * (at your option) any later version.
10 * GRUB is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
15 * You should have received a copy of the GNU General Public License
16 * along with GRUB. If not, see <http://www.gnu.org/licenses/>.
21 #include <grub/test.h>
22 #include <grub/misc.h>
24 GRUB_MOD_LICENSE ("GPLv3+");
26 #define MSG "cmp test failed"
28 /* Functional test main method. */
33 const char *s2 = "aa";
34 const char *s3 = "รข";
36 grub_test_assert (grub_strlen (s1) == 1, MSG);
37 grub_test_assert (grub_strlen (s2) == 2, MSG);
38 grub_test_assert (grub_strlen (s3) == 2, MSG);
40 grub_test_assert (grub_strcmp (s1, s1) == 0, MSG);
41 grub_test_assert (grub_strcmp (s1, s2) < 0, MSG);
42 grub_test_assert (grub_strcmp (s1, s3) < 0, MSG);
44 grub_test_assert (grub_strcmp (s2, s1) > 0, MSG);
45 grub_test_assert (grub_strcmp (s2, s2) == 0, MSG);
46 grub_test_assert (grub_strcmp (s2, s3) < 0, MSG);
48 grub_test_assert (grub_strcmp (s3, s1) > 0, MSG);
49 grub_test_assert (grub_strcmp (s3, s2) > 0, MSG);
50 grub_test_assert (grub_strcmp (s3, s3) == 0, MSG);
52 grub_test_assert (grub_strcasecmp (s1, s1) == 0, MSG);
53 grub_test_assert (grub_strcasecmp (s1, s2) < 0, MSG);
54 grub_test_assert (grub_strcasecmp (s1, s3) < 0, MSG);
56 grub_test_assert (grub_strcasecmp (s2, s1) > 0, MSG);
57 grub_test_assert (grub_strcasecmp (s2, s2) == 0, MSG);
58 grub_test_assert (grub_strcasecmp (s2, s3) < 0, MSG);
60 grub_test_assert (grub_strcasecmp (s3, s1) > 0, MSG);
61 grub_test_assert (grub_strcasecmp (s3, s2) > 0, MSG);
62 grub_test_assert (grub_strcasecmp (s3, s3) == 0, MSG);
64 grub_test_assert (grub_memcmp (s1, s1, 2) == 0, MSG);
65 grub_test_assert (grub_memcmp (s1, s2, 2) < 0, MSG);
66 grub_test_assert (grub_memcmp (s1, s3, 2) < 0, MSG);
68 grub_test_assert (grub_memcmp (s2, s1, 2) > 0, MSG);
69 grub_test_assert (grub_memcmp (s2, s2, 2) == 0, MSG);
70 grub_test_assert (grub_memcmp (s2, s3, 2) < 0, MSG);
72 grub_test_assert (grub_memcmp (s3, s1, 2) > 0, MSG);
73 grub_test_assert (grub_memcmp (s3, s2, 2) > 0, MSG);
74 grub_test_assert (grub_memcmp (s3, s3, 2) == 0, MSG);
76 grub_test_assert (grub_memcmp (s1, s1, 1) == 0, MSG);
77 grub_test_assert (grub_memcmp (s1, s2, 1) == 0, MSG);
78 grub_test_assert (grub_memcmp (s1, s3, 1) < 0, MSG);
80 grub_test_assert (grub_memcmp (s2, s1, 1) == 0, MSG);
81 grub_test_assert (grub_memcmp (s2, s2, 1) == 0, MSG);
82 grub_test_assert (grub_memcmp (s2, s3, 1) < 0, MSG);
84 grub_test_assert (grub_memcmp (s3, s1, 1) > 0, MSG);
85 grub_test_assert (grub_memcmp (s3, s2, 1) > 0, MSG);
86 grub_test_assert (grub_memcmp (s3, s3, 1) == 0, MSG);
88 grub_test_assert (grub_strncmp (s1, s1, 2) == 0, MSG);
89 grub_test_assert (grub_strncmp (s1, s2, 2) < 0, MSG);
90 grub_test_assert (grub_strncmp (s1, s3, 2) < 0, MSG);
92 grub_test_assert (grub_strncmp (s2, s1, 2) > 0, MSG);
93 grub_test_assert (grub_strncmp (s2, s2, 2) == 0, MSG);
94 grub_test_assert (grub_strncmp (s2, s3, 2) < 0, MSG);
96 grub_test_assert (grub_strncmp (s3, s1, 2) > 0, MSG);
97 grub_test_assert (grub_strncmp (s3, s2, 2) > 0, MSG);
98 grub_test_assert (grub_strncmp (s3, s3, 2) == 0, MSG);
100 grub_test_assert (grub_strncmp (s1, s1, 1) == 0, MSG);
101 grub_test_assert (grub_strncmp (s1, s2, 1) == 0, MSG);
102 grub_test_assert (grub_strncmp (s1, s3, 1) < 0, MSG);
104 grub_test_assert (grub_strncmp (s2, s1, 1) == 0, MSG);
105 grub_test_assert (grub_strncmp (s2, s2, 1) == 0, MSG);
106 grub_test_assert (grub_strncmp (s2, s3, 1) < 0, MSG);
108 grub_test_assert (grub_strncmp (s3, s1, 1) > 0, MSG);
109 grub_test_assert (grub_strncmp (s3, s2, 1) > 0, MSG);
110 grub_test_assert (grub_strncmp (s3, s3, 1) == 0, MSG);
112 grub_test_assert (grub_strncasecmp (s1, s1, 2) == 0, MSG);
113 grub_test_assert (grub_strncasecmp (s1, s2, 2) < 0, MSG);
114 grub_test_assert (grub_strncasecmp (s1, s3, 2) < 0, MSG);
116 grub_test_assert (grub_strncasecmp (s2, s1, 2) > 0, MSG);
117 grub_test_assert (grub_strncasecmp (s2, s2, 2) == 0, MSG);
118 grub_test_assert (grub_strncasecmp (s2, s3, 2) < 0, MSG);
120 grub_test_assert (grub_strncasecmp (s3, s1, 2) > 0, MSG);
121 grub_test_assert (grub_strncasecmp (s3, s2, 2) > 0, MSG);
122 grub_test_assert (grub_strncasecmp (s3, s3, 2) == 0, MSG);
124 grub_test_assert (grub_strncasecmp (s1, s1, 1) == 0, MSG);
125 grub_test_assert (grub_strncasecmp (s1, s2, 1) == 0, MSG);
126 grub_test_assert (grub_strncasecmp (s1, s3, 1) < 0, MSG);
128 grub_test_assert (grub_strncasecmp (s2, s1, 1) == 0, MSG);
129 grub_test_assert (grub_strncasecmp (s2, s2, 1) == 0, MSG);
130 grub_test_assert (grub_strncasecmp (s2, s3, 1) < 0, MSG);
132 grub_test_assert (grub_strncasecmp (s3, s1, 1) > 0, MSG);
133 grub_test_assert (grub_strncasecmp (s3, s2, 1) > 0, MSG);
134 grub_test_assert (grub_strncasecmp (s3, s3, 1) == 0, MSG);
136 grub_test_assert (strlen (s1) == 1, MSG);
137 grub_test_assert (strlen (s2) == 2, MSG);
138 grub_test_assert (strlen (s3) == 2, MSG);
140 grub_test_assert (strcmp (s1, s1) == 0, MSG);
141 grub_test_assert (strcmp (s1, s2) < 0, MSG);
142 grub_test_assert (strcmp (s1, s3) < 0, MSG);
144 grub_test_assert (strcmp (s2, s1) > 0, MSG);
145 grub_test_assert (strcmp (s2, s2) == 0, MSG);
146 grub_test_assert (strcmp (s2, s3) < 0, MSG);
148 grub_test_assert (strcmp (s3, s1) > 0, MSG);
149 grub_test_assert (strcmp (s3, s2) > 0, MSG);
150 grub_test_assert (strcmp (s3, s3) == 0, MSG);
152 grub_test_assert (memcmp (s1, s1, 2) == 0, MSG);
153 grub_test_assert (memcmp (s1, s2, 2) < 0, MSG);
154 grub_test_assert (memcmp (s1, s3, 2) < 0, MSG);
156 grub_test_assert (memcmp (s2, s1, 2) > 0, MSG);
157 grub_test_assert (memcmp (s2, s2, 2) == 0, MSG);
158 grub_test_assert (memcmp (s2, s3, 2) < 0, MSG);
160 grub_test_assert (memcmp (s3, s1, 2) > 0, MSG);
161 grub_test_assert (memcmp (s3, s2, 2) > 0, MSG);
162 grub_test_assert (memcmp (s3, s3, 2) == 0, MSG);
164 grub_test_assert (memcmp (s1, s1, 1) == 0, MSG);
165 grub_test_assert (memcmp (s1, s2, 1) == 0, MSG);
166 grub_test_assert (memcmp (s1, s3, 1) < 0, MSG);
168 grub_test_assert (memcmp (s2, s1, 1) == 0, MSG);
169 grub_test_assert (memcmp (s2, s2, 1) == 0, MSG);
170 grub_test_assert (memcmp (s2, s3, 1) < 0, MSG);
172 grub_test_assert (memcmp (s3, s1, 1) > 0, MSG);
173 grub_test_assert (memcmp (s3, s2, 1) > 0, MSG);
174 grub_test_assert (memcmp (s3, s3, 1) == 0, MSG);
176 grub_test_assert (strncmp (s1, s1, 2) == 0, MSG);
177 grub_test_assert (strncmp (s1, s2, 2) < 0, MSG);
178 grub_test_assert (strncmp (s1, s3, 2) < 0, MSG);
180 grub_test_assert (strncmp (s2, s1, 2) > 0, MSG);
181 grub_test_assert (strncmp (s2, s2, 2) == 0, MSG);
182 grub_test_assert (strncmp (s2, s3, 2) < 0, MSG);
184 grub_test_assert (strncmp (s3, s1, 2) > 0, MSG);
185 grub_test_assert (strncmp (s3, s2, 2) > 0, MSG);
186 grub_test_assert (strncmp (s3, s3, 2) == 0, MSG);
188 grub_test_assert (strncmp (s1, s1, 1) == 0, MSG);
189 grub_test_assert (strncmp (s1, s2, 1) == 0, MSG);
190 grub_test_assert (strncmp (s1, s3, 1) < 0, MSG);
192 grub_test_assert (strncmp (s2, s1, 1) == 0, MSG);
193 grub_test_assert (strncmp (s2, s2, 1) == 0, MSG);
194 grub_test_assert (strncmp (s2, s3, 1) < 0, MSG);
196 grub_test_assert (strncmp (s3, s1, 1) > 0, MSG);
197 grub_test_assert (strncmp (s3, s2, 1) > 0, MSG);
198 grub_test_assert (strncmp (s3, s3, 1) == 0, MSG);
200 grub_test_assert (strncasecmp (s1, s1, 2) == 0, MSG);
201 grub_test_assert (strncasecmp (s1, s2, 2) < 0, MSG);
202 grub_test_assert (strncasecmp (s1, s3, 2) < 0, MSG);
204 grub_test_assert (strncasecmp (s2, s1, 2) > 0, MSG);
205 grub_test_assert (strncasecmp (s2, s2, 2) == 0, MSG);
206 grub_test_assert (strncasecmp (s2, s3, 2) < 0, MSG);
208 grub_test_assert (strncasecmp (s3, s1, 2) > 0, MSG);
209 grub_test_assert (strncasecmp (s3, s2, 2) > 0, MSG);
210 grub_test_assert (strncasecmp (s3, s3, 2) == 0, MSG);
212 grub_test_assert (strncasecmp (s1, s1, 1) == 0, MSG);
213 grub_test_assert (strncasecmp (s1, s2, 1) == 0, MSG);
214 grub_test_assert (strncasecmp (s1, s3, 1) < 0, MSG);
216 grub_test_assert (strncasecmp (s2, s1, 1) == 0, MSG);
217 grub_test_assert (strncasecmp (s2, s2, 1) == 0, MSG);
218 grub_test_assert (strncasecmp (s2, s3, 1) < 0, MSG);
220 grub_test_assert (strncasecmp (s3, s1, 1) > 0, MSG);
221 grub_test_assert (strncasecmp (s3, s2, 1) > 0, MSG);
222 grub_test_assert (strncasecmp (s3, s3, 1) == 0, MSG);
225 /* Register example_test method as a functional test. */
226 GRUB_UNIT_TEST ("cmp_test", cmp_test);