Mercurial > hg > th-libs
comparison tests.c @ 465:6d44592cdab1
Improve tests slightly.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Sat, 02 Jun 2018 03:54:14 +0300 |
parents | 85fa3d333556 |
children | fe5b803ae449 |
comparison
equal
deleted
inserted
replaced
464:761724e01c02 | 465:6d44592cdab1 |
---|---|
308 test_start(&ctx, # fun "('%s', '%s')", str1, str2); \ | 308 test_start(&ctx, # fun "('%s', '%s')", str1, str2); \ |
309 test_result(&ctx, fun (str1, str2) == ret); \ | 309 test_result(&ctx, fun (str1, str2) == ret); \ |
310 test_end(&ctx); \ | 310 test_end(&ctx); \ |
311 } while (0) | 311 } while (0) |
312 | 312 |
313 #define TEST2C(fun, str1, str2, ret) do { \ | |
314 test_ctx ctx; test_init(&ctx); \ | |
315 test_start(&ctx, # fun "('%s', '%s')", str1, str2); \ | |
316 test_result(&ctx, (fun (str1, str2) != NULL) == ret); \ | |
317 test_end(&ctx); \ | |
318 } while (0) | |
319 | |
313 #define TEST3(fun, str1, str2, len, ret) do { \ | 320 #define TEST3(fun, str1, str2, len, ret) do { \ |
314 test_ctx ctx; test_init(&ctx); \ | 321 test_ctx ctx; test_init(&ctx); \ |
315 test_start(&ctx, # fun "('%s', '%s', %d)", str1, str2, len); \ | 322 test_start(&ctx, # fun "('%s', '%s', %d)", str1, str2, len); \ |
316 test_result(&ctx, ( fun (str1, str2, len) == 0) == ret); \ | 323 test_result(&ctx, ( fun (str1, str2, len) == 0) == ret); \ |
317 test_end(&ctx); \ | 324 test_end(&ctx); \ |
325 char buf[64], buf2[64]; | 332 char buf[64], buf2[64]; |
326 | 333 |
327 // | 334 // |
328 // Initialization | 335 // Initialization |
329 // | 336 // |
330 th_init("th-test", "th-libs unit tests", "0.0.1", NULL, NULL); | 337 th_init("th-test", "th-libs unit tests", "0.1", NULL, NULL); |
331 th_verbosityLevel = 0; | 338 th_verbosityLevel = 0; |
332 | 339 |
333 if (sizeof(char) != sizeof(unsigned char)) | 340 if (sizeof(char) != sizeof(unsigned char)) |
334 { | 341 { |
335 THERR("sizeof(char) != sizeof(unsigned char)???\n"); | 342 THERR("sizeof(char) != sizeof(unsigned char)???\n"); |
440 } | 447 } |
441 | 448 |
442 // | 449 // |
443 // String matching functions | 450 // String matching functions |
444 // | 451 // |
445 if (test_set_start("String matching #1")) | 452 if (test_set_start("String compare #1")) |
446 { | 453 { |
447 TEST2(th_strcasecmp, "aSdFq", "asdfq", TRUE); | 454 TEST2(th_strcasecmp, "aSdFq", "asdfq", TRUE); |
448 TEST2(th_strcasecmp, "aSdFq", "asFfq", FALSE); | 455 TEST2(th_strcasecmp, "aSdFq", "asFfq", FALSE); |
449 TEST2(th_strcasecmp, "abcde", "abcde", TRUE); | 456 TEST2(th_strcasecmp, "abcde", "abcde", TRUE); |
450 TEST2(th_strcasecmp, "öäå", "öäå", TRUE); | 457 TEST2(th_strcasecmp, "öäå", "öäå", TRUE); |
451 TEST2(th_strcasecmp, "aöäå", "aöäå", TRUE); | 458 TEST2(th_strcasecmp, "aöäå", "aöäå", TRUE); |
452 } | 459 } |
453 | 460 |
454 if (test_set_start("String matching #2")) | 461 if (test_set_start("String compare #2")) |
455 { | 462 { |
456 TEST3(th_strncasecmp, "aSdFq", "asFfqB", 4, FALSE); | 463 TEST3(th_strncasecmp, "aSdFq", "asFfqB", 4, FALSE); |
457 TEST3(th_strncasecmp, "aSdFq", "asFfqQ", 2, TRUE); | 464 TEST3(th_strncasecmp, "aSdFq", "asFfqQ", 2, TRUE); |
458 TEST3(th_strncasecmp, "aSdFq", "asDfq", 3, TRUE); | 465 TEST3(th_strncasecmp, "aSdFq", "asDfq", 3, TRUE); |
459 TEST3(th_strncasecmp, "aSdFq", "asDfq", 2, TRUE); | 466 TEST3(th_strncasecmp, "aSdFq", "asDfq", 2, TRUE); |
460 TEST3(th_strncasecmp, "aSdFq", "asDfq", 0, TRUE); | 467 TEST3(th_strncasecmp, "aSdFq", "asDfq", 0, TRUE); |
461 TEST3(th_strncasecmp, "aSdFq", "QsDfq", 0, TRUE); | 468 TEST3(th_strncasecmp, "aSdFq", "QsDfq", 0, TRUE); |
462 TEST3(th_strncasecmp, "aSdFq", "QsDfq", 1, FALSE); | 469 TEST3(th_strncasecmp, "aSdFq", "QsDfq", 1, FALSE); |
463 } | 470 } |
464 | 471 |
465 if (test_set_start("String matching #3")) | 472 if (test_set_start("String compare #3")) |
473 { | |
474 TEST2C(th_strrcasecmp, "foo aSdFq", " asdfq", TRUE); | |
475 TEST2C(th_strrcasecmp, "aSdFq", " asdfq", FALSE); | |
476 TEST2C(th_strrcasecmp, "foo aSdFq baz", "asdfq", FALSE); | |
477 } | |
478 | |
479 if (test_set_start("String matching #1")) | |
466 { | 480 { |
467 TEST2B(th_strmatch, "abba ABBAkukka lol", "*lol", TRUE); | 481 TEST2B(th_strmatch, "abba ABBAkukka lol", "*lol", TRUE); |
468 TEST2B(th_strmatch, "abba ABBAkukka lol", "*lo*", TRUE); | 482 TEST2B(th_strmatch, "abba ABBAkukka lol", "*lo*", TRUE); |
469 TEST2B(th_strmatch, "abba ABBAkukka lol", "*lo", FALSE); | 483 TEST2B(th_strmatch, "abba ABBAkukka lol", "*lo", FALSE); |
470 TEST2B(th_strmatch, "abba ABBAkukka lol", "abba", FALSE); | 484 TEST2B(th_strmatch, "abba ABBAkukka lol", "abba", FALSE); |
472 TEST2B(th_strmatch, "abba ABBAkukka lol", "abba*", TRUE); | 486 TEST2B(th_strmatch, "abba ABBAkukka lol", "abba*", TRUE); |
473 TEST2B(th_strmatch, "abba ABBAkukka lol", "abbak*", FALSE); | 487 TEST2B(th_strmatch, "abba ABBAkukka lol", "abbak*", FALSE); |
474 TEST2B(th_strmatch, "abba ABBAöökukka lol", "*abbaö?", FALSE); | 488 TEST2B(th_strmatch, "abba ABBAöökukka lol", "*abbaö?", FALSE); |
475 } | 489 } |
476 | 490 |
477 if (test_set_start("String matching #4")) | 491 if (test_set_start("String matching #2")) |
478 { | 492 { |
479 TEST2B(th_strcasematch, "abba ABBAkukka lol", "abbak*", FALSE); | 493 TEST2B(th_strcasematch, "abba ABBAkukka lol", "abbak*", FALSE); |
480 TEST2B(th_strcasematch, "abba ABBAkukka lol", "*abbak*", TRUE); | 494 TEST2B(th_strcasematch, "abba ABBAkukka lol", "*abbak*", TRUE); |
481 TEST2B(th_strcasematch, "abba ABBAkukka lol", "*ab?ak*", TRUE); | 495 TEST2B(th_strcasematch, "abba ABBAkukka lol", "*ab?ak*", TRUE); |
482 TEST2B(th_strcasematch, "abba ABBAkukka lol", "*abbak?", FALSE); | 496 TEST2B(th_strcasematch, "abba ABBAkukka lol", "*abbak?", FALSE); |