| 224 CX_TEST_ASSERT(len2 == 9); |
224 CX_TEST_ASSERT(len2 == 9); |
| 225 CX_TEST_ASSERT(len3 == 10); |
225 CX_TEST_ASSERT(len3 == 10); |
| 226 } |
226 } |
| 227 } |
227 } |
| 228 |
228 |
| 229 CX_TEST(test_strsubs) { |
229 CX_TEST(test_strsubs_cxs) { |
| 230 cxstring str = cx_str("A test string"); |
230 cxstring str = cx_str("A test string"); |
| 231 |
231 cxstring sub; |
| 232 CX_TEST_DO { |
232 |
| 233 cxstring sub = cx_strsubs(str, 0); |
233 CX_TEST_DO { |
| |
234 sub = cx_strsubs(str, 0); |
| 234 CX_TEST_ASSERT(0 == cx_strcmp(sub, str)); |
235 CX_TEST_ASSERT(0 == cx_strcmp(sub, str)); |
| 235 |
236 |
| 236 sub = cx_strsubs(str, 2); |
237 sub = cx_strsubs(str, 2); |
| 237 CX_TEST_ASSERT(0 == cx_strcmp(sub, cx_str("test string"))); |
238 CX_TEST_ASSERT(0 == cx_strcmp(sub, "test string")); |
| 238 |
239 |
| 239 sub = cx_strsubs(str, 7); |
240 sub = cx_strsubs(str, 7); |
| 240 CX_TEST_ASSERT(0 == cx_strcmp(sub, cx_str("string"))); |
241 CX_TEST_ASSERT(0 == cx_strcmp(sub, "string")); |
| 241 |
242 |
| 242 sub = cx_strsubs(str, 15); |
243 sub = cx_strsubs(str, 15); |
| 243 CX_TEST_ASSERT(0 == cx_strcmp(sub, cx_str(""))); |
244 CX_TEST_ASSERT(0 == cx_strcmp(sub, "")); |
| 244 |
245 |
| 245 sub = cx_strsubsl(str, 2, 4); |
246 sub = cx_strsubsl(str, 2, 4); |
| 246 CX_TEST_ASSERT(0 == cx_strcmp(sub, cx_str("test"))); |
247 CX_TEST_ASSERT(0 == cx_strcmp(sub, "test")); |
| 247 |
248 |
| 248 sub = cx_strsubsl(str, 7, 3); |
249 sub = cx_strsubsl(str, 7, 3); |
| 249 CX_TEST_ASSERT(0 == cx_strcmp(sub, cx_str("str"))); |
250 CX_TEST_ASSERT(0 == cx_strcmp(sub, "str")); |
| 250 |
251 |
| 251 sub = cx_strsubsl(str, 7, 20); |
252 sub = cx_strsubsl(str, 7, 20); |
| 252 CX_TEST_ASSERT(0 == cx_strcmp(sub, cx_str("string"))); |
253 CX_TEST_ASSERT(0 == cx_strcmp(sub, "string")); |
| 253 |
254 } |
| 254 // just for coverage, call the _m variant |
255 } |
| 255 cxmutstr m = cx_strsubs_m(cx_mutstrn(NULL, 0), 0); |
256 |
| 256 CX_TEST_ASSERT(0 == cx_strcmp(m, "")); |
257 CX_TEST(test_strsubs_cc) { |
| |
258 const char *str = "A test string"; |
| |
259 cxstring sub; |
| |
260 |
| |
261 CX_TEST_DO { |
| |
262 sub = cx_strsubs(str, 0); |
| |
263 CX_TEST_ASSERT(0 == cx_strcmp(sub, str)); |
| |
264 |
| |
265 sub = cx_strsubs(str, 2); |
| |
266 CX_TEST_ASSERT(0 == cx_strcmp(sub, "test string")); |
| |
267 |
| |
268 sub = cx_strsubs(str, 7); |
| |
269 CX_TEST_ASSERT(0 == cx_strcmp(sub, "string")); |
| |
270 |
| |
271 sub = cx_strsubs(str, 15); |
| |
272 CX_TEST_ASSERT(0 == cx_strcmp(sub, "")); |
| |
273 |
| |
274 sub = cx_strsubsl(str, 2, 4); |
| |
275 CX_TEST_ASSERT(0 == cx_strcmp(sub, "test")); |
| |
276 |
| |
277 sub = cx_strsubsl(str, 7, 3); |
| |
278 CX_TEST_ASSERT(0 == cx_strcmp(sub, "str")); |
| |
279 |
| |
280 sub = cx_strsubsl(str, 7, 20); |
| |
281 CX_TEST_ASSERT(0 == cx_strcmp(sub, "string")); |
| |
282 } |
| |
283 } |
| |
284 |
| |
285 CX_TEST(test_strsubs_cxms) { |
| |
286 cxmutstr str = cx_mutstr((char*)"A test string"); |
| |
287 cxmutstr sub; |
| |
288 |
| |
289 CX_TEST_DO { |
| |
290 sub = cx_strsubs(str, 0); |
| |
291 CX_TEST_ASSERT(0 == cx_strcmp(sub, str)); |
| |
292 |
| |
293 sub = cx_strsubs(str, 2); |
| |
294 CX_TEST_ASSERT(0 == cx_strcmp(sub, "test string")); |
| |
295 |
| |
296 sub = cx_strsubs(str, 7); |
| |
297 CX_TEST_ASSERT(0 == cx_strcmp(sub, "string")); |
| |
298 |
| |
299 sub = cx_strsubs(str, 15); |
| |
300 CX_TEST_ASSERT(0 == cx_strcmp(sub, "")); |
| |
301 |
| |
302 sub = cx_strsubsl(str, 2, 4); |
| |
303 CX_TEST_ASSERT(0 == cx_strcmp(sub, "test")); |
| |
304 |
| |
305 sub = cx_strsubsl(str, 7, 3); |
| |
306 CX_TEST_ASSERT(0 == cx_strcmp(sub, "str")); |
| |
307 |
| |
308 sub = cx_strsubsl(str, 7, 20); |
| |
309 CX_TEST_ASSERT(0 == cx_strcmp(sub, "string")); |
| |
310 } |
| |
311 } |
| |
312 |
| |
313 CX_TEST(test_strsubs_c) { |
| |
314 char *str = "A test string"; |
| |
315 cxmutstr sub; |
| |
316 |
| |
317 CX_TEST_DO { |
| |
318 sub = cx_strsubs(str, 0); |
| |
319 CX_TEST_ASSERT(0 == cx_strcmp(sub, str)); |
| |
320 |
| |
321 sub = cx_strsubs(str, 2); |
| |
322 CX_TEST_ASSERT(0 == cx_strcmp(sub, "test string")); |
| |
323 |
| |
324 sub = cx_strsubs(str, 7); |
| |
325 CX_TEST_ASSERT(0 == cx_strcmp(sub, "string")); |
| |
326 |
| |
327 sub = cx_strsubs(str, 15); |
| |
328 CX_TEST_ASSERT(0 == cx_strcmp(sub, "")); |
| |
329 |
| |
330 sub = cx_strsubsl(str, 2, 4); |
| |
331 CX_TEST_ASSERT(0 == cx_strcmp(sub, "test")); |
| |
332 |
| |
333 sub = cx_strsubsl(str, 7, 3); |
| |
334 CX_TEST_ASSERT(0 == cx_strcmp(sub, "str")); |
| |
335 |
| |
336 sub = cx_strsubsl(str, 7, 20); |
| |
337 CX_TEST_ASSERT(0 == cx_strcmp(sub, "string")); |
| 257 } |
338 } |
| 258 } |
339 } |
| 259 |
340 |
| 260 CX_TEST(test_strat) { |
341 CX_TEST(test_strat) { |
| 261 cxstring str = cx_str("Hello, World!"); |
342 cxstring str = cx_str("Hello, World!"); |
| 1564 cx_test_register(suite, test_strfree); |
1645 cx_test_register(suite, test_strfree); |
| 1565 cx_test_register(suite, test_strdup); |
1646 cx_test_register(suite, test_strdup); |
| 1566 cx_test_register(suite, test_strdup_shortened); |
1647 cx_test_register(suite, test_strdup_shortened); |
| 1567 cx_test_register(suite, test_strcpy); |
1648 cx_test_register(suite, test_strcpy); |
| 1568 cx_test_register(suite, test_strlen); |
1649 cx_test_register(suite, test_strlen); |
| 1569 cx_test_register(suite, test_strsubs); |
1650 cx_test_register(suite, test_strsubs_cxs); |
| |
1651 cx_test_register(suite, test_strsubs_cxms); |
| |
1652 cx_test_register(suite, test_strsubs_cc); |
| |
1653 cx_test_register(suite, test_strsubs_c); |
| 1570 cx_test_register(suite, test_strat); |
1654 cx_test_register(suite, test_strat); |
| 1571 cx_test_register(suite, test_strchr); |
1655 cx_test_register(suite, test_strchr); |
| 1572 cx_test_register(suite, test_strrchr); |
1656 cx_test_register(suite, test_strrchr); |
| 1573 cx_test_register(suite, test_strstr); |
1657 cx_test_register(suite, test_strstr); |
| 1574 cx_test_register(suite, test_strcmp); |
1658 cx_test_register(suite, test_strcmp); |