downstream: ivi-shell: configure the ivi surface when created
[profile/ivi/weston-ivi-shell.git] / tests / strutil-test.c
1 /*
2  * Copyright © 2014 Intel Corporation.
3  *
4  * Contact: Imran Zaman <imran.zaman@linux.intel.com>
5  *
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.
15  *
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.
23  */
24
25 #include "config.h"
26
27 #include <stdio.h>
28 #include <stdlib.h>
29 #include <assert.h>
30
31 #include "weston-test-runner.h"
32
33 #include "../shared/str-util.h"
34
35 TEST(test_weston_strtol)
36 {
37         bool ret;
38         long val = -1;
39         char *end = NULL, *str = NULL;
40
41         ret = weston_strtol(NULL, NULL, 10, &val);
42         assert(ret == false);
43         assert(val == -1);
44
45         ret = weston_strtol(NULL, NULL, 10, NULL);
46         assert(ret == false);
47
48         str = "12";
49         ret = weston_strtol(str, NULL, 10, &val);
50         assert(ret == true);
51         assert(val == 12);
52
53         ret = weston_strtol(str, &end, 10, &val);
54         assert(end != NULL);
55         assert(*end == '\0');
56
57         str = "-12"; val = -1;
58         ret = weston_strtol(str, &end, 10, &val);
59         assert(ret == true);
60         assert(val == -12);
61
62         str = "0x12"; val = -1;
63         ret = weston_strtol(str, &end, 16, &val);
64         assert(ret == true);
65         assert(val == 0x12);
66
67         str = "A"; val = -1;
68         ret = weston_strtol(str, &end, 16, &val);
69         assert(ret == true);
70         assert(val == 10);
71
72         str = "-0x20"; val = -1;
73         ret = weston_strtol(str, &end, 16, &val);
74         assert(ret == true);
75         assert(val == -0x20);
76
77         str = "0012"; val = -1;
78         ret = weston_strtol(str, &end, 8, &val);
79         assert(ret == true);
80         assert(val == 10);
81
82         str = "0101"; val = -1;
83         ret = weston_strtol(str, &end, 2, &val);
84         assert(ret == true);
85         assert(val == 5);
86
87         str = "s12"; val = -1;
88         ret = weston_strtol(str, NULL, 10, &val);
89         assert(ret == false);
90         assert(val == -1);
91
92         ret = weston_strtol(str, &end, 10, &val);
93         assert(end == str);
94
95         str = "214748364789L"; val = -1;
96         ret = weston_strtol(str, NULL, 10, &val);
97         assert(ret == false);
98         assert(val == -1);
99
100         str = ""; val = -1;
101         ret = weston_strtol(str, NULL, 10, &val);
102         assert(ret == false);
103         assert(val == -1);
104 }
105
106 TEST(test_weston_strtoul)
107 {
108         bool ret;
109         unsigned long val = 0;
110         char *end = NULL, *str = NULL;
111
112         ret = weston_strtoul(NULL, NULL, 10, &val);
113         assert(ret == false);
114         assert(val == 0);
115
116         ret = weston_strtoul(NULL, NULL, 10, NULL);
117         assert(ret == false);
118
119         str = "15";
120         ret = weston_strtoul(str, NULL, 10, &val);
121         assert(ret == true);
122         assert(val == 15);
123
124         ret = weston_strtoul(str, &end, 10, &val);
125         assert(end != NULL);
126         assert(*end == '\0');
127
128         str = "0x12"; val = 0;
129         ret = weston_strtoul(str, &end, 16, &val);
130         assert(ret == true);
131         assert(val == 18);
132
133         str = "A"; val = 0;
134         ret = weston_strtoul(str, &end, 16, &val);
135         assert(ret == true);
136         assert(val == 10);
137
138         str = "0012"; val = 0;
139         ret = weston_strtoul(str, &end, 8, &val);
140         assert(ret == true);
141         assert(val == 10);
142
143         str = "0101"; val = 0;
144         ret = weston_strtoul(str, &end, 2, &val);
145         assert(ret == true);
146         assert(val == 5);
147
148         str = "s15"; val = 0;
149         ret = weston_strtoul(str, NULL, 10, &val);
150         assert(ret == false);
151         assert(val == 0);
152
153         ret = weston_strtoul(str, &end, 10, &val);
154         assert(end == str);
155
156         str = "429496729533UL"; val = 0;
157         ret = weston_strtoul(str, NULL, 10, &val);
158         assert(ret == false);
159         assert(val == 0);
160
161         str = "-1"; val = 0;
162         ret = weston_strtoul(str, NULL, 10, &val);
163         assert(ret == false);
164         assert(val == 0);
165
166         str = "    -1234"; val = 0;
167         ret = weston_strtoul(str, NULL, 10, &val);
168         assert(ret == false);
169         assert(val == 0);
170
171         str = ""; val = 0;
172         ret = weston_strtoul(str, NULL, 10, &val);
173         assert(ret == false);
174         assert(val == 0);
175 }
176
177 TEST(test_weston_strtoi)
178 {
179         bool ret;
180         int val = -1;
181         char *end = NULL, *str = NULL;
182
183         ret = weston_strtoi(NULL, NULL, 10, &val);
184         assert(ret == false);
185         assert(val == -1);
186
187         ret = weston_strtoi(NULL, NULL, 10, NULL);
188         assert(ret == false);
189
190         str = "12";
191         ret = weston_strtoi(str, NULL, 10, &val);
192         assert(ret == true);
193         assert(val == 12);
194
195         ret = weston_strtoi(str, &end, 10, &val);
196         assert(end != NULL);
197         assert(*end == '\0');
198
199         str = "-12"; val = -1;
200         ret = weston_strtoi(str, &end, 10, &val);
201         assert(ret == true);
202         assert(val == -12);
203
204         str = "0x12"; val = -1;
205         ret = weston_strtoi(str, &end, 16, &val);
206         assert(ret == true);
207         assert(val == 0x12);
208
209         str = "A"; val = -1;
210         ret = weston_strtoi(str, &end, 16, &val);
211         assert(ret == true);
212         assert(val == 10);
213
214         str = "-0x20"; val = -1;
215         ret = weston_strtoi(str, &end, 16, &val);
216         assert(ret == true);
217         assert(val == -0x20);
218
219         str = "0012"; val = -1;
220         ret = weston_strtoi(str, &end, 8, &val);
221         assert(ret == true);
222         assert(val == 10);
223
224         str = "0101"; val = -1;
225         ret = weston_strtoi(str, &end, 2, &val);
226         assert(ret == true);
227         assert(val == 5);
228
229         str = "-5"; val = -1;
230         ret = weston_strtoi(str, &end, 2, &val);
231         assert(ret == true);
232         assert(val == -5);
233
234         str = "s12"; val = -1;
235         ret = weston_strtoi(str, NULL, 10, &val);
236         assert(ret == false);
237         assert(val == -1);
238
239         ret = weston_strtoi(str, &end, 10, &val);
240         assert(end == str);
241
242         str = "214748364789L"; val = -1;
243         ret = weston_strtoi(str, NULL, 10, &val);
244         assert(ret == false);
245         assert(val == -1);
246
247         str = ""; val = -1;
248         ret = weston_strtoi(str, NULL, 10, &val);
249         assert(ret == false);
250         assert(val == -1);
251 }
252
253 TEST(test_weston_strtoui)
254 {
255         bool ret;
256         unsigned int val = 0;
257         char *end = NULL, *str = NULL;
258
259         ret = weston_strtoui(NULL, NULL, 10, &val);
260         assert(ret == false);
261         assert(val == 0);
262
263         ret = weston_strtoui(NULL, NULL, 10, NULL);
264         assert(ret == false);
265
266         str = "15";
267         ret = weston_strtoui(str, NULL, 10, &val);
268         assert(ret == true);
269         assert(val == 15);
270
271         ret = weston_strtoui(str, &end, 10, &val);
272         assert(end != NULL);
273         assert(*end == '\0');
274
275         str = "0x12"; val = 0;
276         ret = weston_strtoui(str, &end, 16, &val);
277         assert(ret == true);
278         assert(val == 18);
279
280         str = "A"; val = 0;
281         ret = weston_strtoui(str, &end, 16, &val);
282         assert(ret == true);
283         assert(val == 10);
284
285         str = "0012"; val = 0;
286         ret = weston_strtoui(str, &end, 8, &val);
287         assert(ret == true);
288         assert(val == 10);
289
290         str = "0101"; val = 0;
291         ret = weston_strtoui(str, &end, 2, &val);
292         assert(ret == true);
293         assert(val == 5);
294
295         str = "s15"; val = 0;
296         ret = weston_strtoui(str, NULL, 10, &val);
297         assert(ret == false);
298         assert(val == 0);
299
300         ret = weston_strtoui(str, &end, 10, &val);
301         assert(end == str);
302
303         str = "429496729533UL"; val = 0;
304         ret = weston_strtoui(str, NULL, 10, &val);
305         assert(ret == false);
306         assert(val == 0);
307
308         str = "-1"; val = 0;
309         ret = weston_strtoui(str, NULL, 10, &val);
310         assert(ret == false);
311         assert(val == 0);
312
313         str = "    -1234"; val = 0;
314         ret = weston_strtoui(str, NULL, 10, &val);
315         assert(ret == false);
316         assert(val == 0);
317
318         str = ""; val = 0;
319         ret = weston_strtoui(str, NULL, 10, &val);
320         assert(ret == false);
321         assert(val == 0);
322 }