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