2 * Copyright © 2014 Intel Corporation.
4 * Contact: Imran Zaman <imran.zaman@linux.intel.com>
6 * Permission to use, copy, modify, distribute, and sell this software and
7 * its documentation for any purpose is hereby granted without fee, provided
8 * that the above copyright notice appear in all copies and that both that
9 * copyright notice and this permission notice appear in supporting
10 * documentation, and that the name of the copyright holders not be used in
11 * advertising or publicity pertaining to distribution of the software
12 * without specific, written prior permission. The copyright holders make
13 * no representations about the suitability of this software for any
14 * purpose. It is provided "as is" without express or implied warranty.
16 * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
17 * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
18 * FITNESS, IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY
19 * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
20 * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
21 * CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
22 * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
31 #include "weston-test-runner.h"
33 #include "../shared/str-util.h"
35 TEST(test_weston_strtol)
39 char *end = NULL, *str = NULL;
41 ret = weston_strtol(NULL, NULL, 10, &val);
45 ret = weston_strtol(NULL, NULL, 10, NULL);
49 ret = weston_strtol(str, NULL, 10, &val);
53 ret = weston_strtol(str, &end, 10, &val);
57 str = "-12"; val = -1;
58 ret = weston_strtol(str, &end, 10, &val);
62 str = "0x12"; val = -1;
63 ret = weston_strtol(str, &end, 16, &val);
68 ret = weston_strtol(str, &end, 16, &val);
72 str = "-0x20"; val = -1;
73 ret = weston_strtol(str, &end, 16, &val);
77 str = "0012"; val = -1;
78 ret = weston_strtol(str, &end, 8, &val);
82 str = "0101"; val = -1;
83 ret = weston_strtol(str, &end, 2, &val);
87 str = "s12"; val = -1;
88 ret = weston_strtol(str, NULL, 10, &val);
92 ret = weston_strtol(str, &end, 10, &val);
95 str = "214748364789L"; val = -1;
96 ret = weston_strtol(str, NULL, 10, &val);
101 ret = weston_strtol(str, NULL, 10, &val);
102 assert(ret == false);
106 TEST(test_weston_strtoul)
109 unsigned long val = 0;
110 char *end = NULL, *str = NULL;
112 ret = weston_strtoul(NULL, NULL, 10, &val);
113 assert(ret == false);
116 ret = weston_strtoul(NULL, NULL, 10, NULL);
117 assert(ret == false);
120 ret = weston_strtoul(str, NULL, 10, &val);
124 ret = weston_strtoul(str, &end, 10, &val);
126 assert(*end == '\0');
128 str = "0x12"; val = 0;
129 ret = weston_strtoul(str, &end, 16, &val);
134 ret = weston_strtoul(str, &end, 16, &val);
138 str = "0012"; val = 0;
139 ret = weston_strtoul(str, &end, 8, &val);
143 str = "0101"; val = 0;
144 ret = weston_strtoul(str, &end, 2, &val);
148 str = "s15"; val = 0;
149 ret = weston_strtoul(str, NULL, 10, &val);
150 assert(ret == false);
153 ret = weston_strtoul(str, &end, 10, &val);
156 str = "429496729533UL"; val = 0;
157 ret = weston_strtoul(str, NULL, 10, &val);
158 assert(ret == false);
162 ret = weston_strtoul(str, NULL, 10, &val);
163 assert(ret == false);
166 str = " -1234"; val = 0;
167 ret = weston_strtoul(str, NULL, 10, &val);
168 assert(ret == false);
172 ret = weston_strtoul(str, NULL, 10, &val);
173 assert(ret == false);
177 TEST(test_weston_strtoi)
181 char *end = NULL, *str = NULL;
183 ret = weston_strtoi(NULL, NULL, 10, &val);
184 assert(ret == false);
187 ret = weston_strtoi(NULL, NULL, 10, NULL);
188 assert(ret == false);
191 ret = weston_strtoi(str, NULL, 10, &val);
195 ret = weston_strtoi(str, &end, 10, &val);
197 assert(*end == '\0');
199 str = "-12"; val = -1;
200 ret = weston_strtoi(str, &end, 10, &val);
204 str = "0x12"; val = -1;
205 ret = weston_strtoi(str, &end, 16, &val);
210 ret = weston_strtoi(str, &end, 16, &val);
214 str = "-0x20"; val = -1;
215 ret = weston_strtoi(str, &end, 16, &val);
217 assert(val == -0x20);
219 str = "0012"; val = -1;
220 ret = weston_strtoi(str, &end, 8, &val);
224 str = "0101"; val = -1;
225 ret = weston_strtoi(str, &end, 2, &val);
229 str = "-5"; val = -1;
230 ret = weston_strtoi(str, &end, 2, &val);
234 str = "s12"; val = -1;
235 ret = weston_strtoi(str, NULL, 10, &val);
236 assert(ret == false);
239 ret = weston_strtoi(str, &end, 10, &val);
242 str = "214748364789L"; val = -1;
243 ret = weston_strtoi(str, NULL, 10, &val);
244 assert(ret == false);
248 ret = weston_strtoi(str, NULL, 10, &val);
249 assert(ret == false);
253 TEST(test_weston_strtoui)
256 unsigned int val = 0;
257 char *end = NULL, *str = NULL;
259 ret = weston_strtoui(NULL, NULL, 10, &val);
260 assert(ret == false);
263 ret = weston_strtoui(NULL, NULL, 10, NULL);
264 assert(ret == false);
267 ret = weston_strtoui(str, NULL, 10, &val);
271 ret = weston_strtoui(str, &end, 10, &val);
273 assert(*end == '\0');
275 str = "0x12"; val = 0;
276 ret = weston_strtoui(str, &end, 16, &val);
281 ret = weston_strtoui(str, &end, 16, &val);
285 str = "0012"; val = 0;
286 ret = weston_strtoui(str, &end, 8, &val);
290 str = "0101"; val = 0;
291 ret = weston_strtoui(str, &end, 2, &val);
295 str = "s15"; val = 0;
296 ret = weston_strtoui(str, NULL, 10, &val);
297 assert(ret == false);
300 ret = weston_strtoui(str, &end, 10, &val);
303 str = "429496729533UL"; val = 0;
304 ret = weston_strtoui(str, NULL, 10, &val);
305 assert(ret == false);
309 ret = weston_strtoui(str, NULL, 10, &val);
310 assert(ret == false);
313 str = " -1234"; val = 0;
314 ret = weston_strtoui(str, NULL, 10, &val);
315 assert(ret == false);
319 ret = weston_strtoui(str, NULL, 10, &val);
320 assert(ret == false);