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";
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);