Mercurial > hg > th-libs
changeset 263:423771158575
Add more tests.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Wed, 17 Feb 2016 13:28:01 +0200 |
parents | e459a28ee1be |
children | 9b6fd2953d8c |
files | tests.c |
diffstat | 1 files changed, 34 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/tests.c Wed Feb 17 13:27:23 2016 +0200 +++ b/tests.c Wed Feb 17 13:28:01 2016 +0200 @@ -42,10 +42,15 @@ } else { - THPRINT(0, "%s: ", test_str_header); + THPRINT(0, "%s: FAIL\n", test_str_header); if (fmt != NULL) + { + THPRINT(0, " - "); THPRINT_V(0, fmt, ap); - THPRINT(0, "\n%s\n", test_str_res); + THPRINT(0, "\n"); + } + if (test_str_res != NULL) + THPRINT(0, "%s\n", test_str_res); tests_failed++; } } @@ -73,6 +78,7 @@ int ret1, ret2; va_list tmp; + // Test basic *printf() functionality test_start("th_vsnprintf('%s', %s)", fmt, msg); memset(buf1, SET_SENTINEL_BYTE, SET_BUF_SIZE+2); buf1[SET_BUF_SIZE+1] = 0; @@ -89,6 +95,7 @@ test_result_msg((unsigned char) buf1[len] == SET_SENTINEL_BYTE, "buffer #1 overflow, sentinel 0x%02x", buf1[len]); test_result_msg((unsigned char) buf2[len] == SET_SENTINEL_BYTE, "buffer #2 overflow, sentinel 0x%02x", buf2[len]); + // Test th_strdup_vprintf() test_start("th_strdup_vprintf('%s')", fmt); char *str = th_strdup_vprintf(fmt, ap); test_result_msg(str != NULL, "result NULL"); @@ -99,7 +106,6 @@ void test_snprintf(const char *fmt, ...) { va_list ap, tmp; - THPRINT(1, "----------------------------------------------\n"); va_start(ap, fmt); va_copy(tmp, ap); test_snprintf_do(0, fmt, tmp, "0"); va_copy(tmp, ap); test_snprintf_do(1, fmt, tmp, "1"); @@ -120,7 +126,7 @@ // Initialization // th_init("th-test", "th-libs unit tests", "0.0.1", NULL, NULL); - th_verbosityLevel = 0; + th_verbosityLevel = 1; if (sizeof(char) != sizeof(unsigned char)) { @@ -153,7 +159,30 @@ test_snprintf("%c", 'x'); test_snprintf("", 'x'); - THPRINT(0, "printf() family function tests.\n"); + // + // String matching functions + // + THPRINT(0, "string matching function tests.\n"); + +#define TEST2(fun, str1, str2, ret) do { \ + test_start(# fun "('%s', '%s')", str1, str2); \ + test_result(( fun (str1, str2) == 0) == ret); \ + } while (0) + +#define TEST3(fun, str1, str2, len, ret) do { \ + test_start(# fun "('%s', '%s', %d)", str1, str2, len); \ + test_result(( fun (str1, str2, len) == 0) == ret); \ + } while (0) + + TEST2(th_strcasecmp, "aSdFq", "asdfq", TRUE); + TEST2(th_strcasecmp, "aSdFq", "asFfq", FALSE); + TEST3(th_strncasecmp, "aSdFq", "asFfq", 4, FALSE); + TEST3(th_strncasecmp, "aSdFq", "asFfq", 2, TRUE); + TEST3(th_strncasecmp, "aSdFq", "asDfq", 3, TRUE); + TEST3(th_strncasecmp, "aSdFq", "asDfq", 2, TRUE); + TEST3(th_strncasecmp, "aSdFq", "asDfq", 0, TRUE); + TEST3(th_strncasecmp, "aSdFq", "QsDfq", 0, TRUE); + TEST3(th_strncasecmp, "aSdFq", "QsDfq", 1, FALSE); // // Print summary and exit