]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
Add test for memcmp issue.
authorVictor Julien <victor@inliniac.net>
Tue, 16 Dec 2014 18:41:32 +0000 (19:41 +0100)
committerVictor Julien <victor@inliniac.net>
Thu, 15 Jan 2015 10:35:07 +0000 (11:35 +0100)
src/util-memcmp.c

index f5ab3d095f0a9bbbf9f2291cd9b02b34ef6ba260..c1b03490da92dabafb14da0b219b8f75b6385ccb 100644 (file)
@@ -339,6 +339,46 @@ static int MemcmpTest17 (void)
     return 1;
 }
 
+struct MemcmpTest18Tests {
+    char *a;
+    char *b;
+    int result;
+} memcmp_tests18_tests[] = {
+        { "abcdefgh", "!bcdefgh", 1, },
+        { "?bcdefgh", "!bcdefgh", 1, },
+        { "!bcdefgh", "abcdefgh", 1, },
+        { "!bcdefgh", "?bcdefgh", 1, },
+        { "zbcdefgh", "bbcdefgh", 1, },
+
+        { "abcdefgh12345678", "!bcdefgh12345678", 1, },
+        { "?bcdefgh12345678", "!bcdefgh12345678", 1, },
+        { "!bcdefgh12345678", "abcdefgh12345678", 1, },
+        { "!bcdefgh12345678", "?bcdefgh12345678", 1, },
+        { "bbcdefgh12345678", "zbcdefgh12345678", 1, },
+
+        { "abcdefgh", "abcdefgh", 0, },
+        { "abcdefgh", "Abcdefgh", 0, },
+        { "abcdefgh12345678", "Abcdefgh12345678", 0, },
+
+        { NULL, NULL, 0 },
+
+    };
+
+static int MemcmpTest18 (void)
+{
+    struct MemcmpTest18Tests *t = memcmp_tests18_tests;
+
+    while (t && t->a != NULL) {
+
+        if (SCMemcmpLowercase(t->a, t->b, strlen(t->a)-1) != t->result)
+            return 0;
+        SCLogInfo("ok");
+        t++;
+    }
+
+    return 1;
+}
+
 #endif /* UNITTESTS */
 
 void MemcmpRegisterTests(void)
@@ -361,6 +401,7 @@ void MemcmpRegisterTests(void)
     UtRegisterTest("MemcmpTest15", MemcmpTest15, 1);
     UtRegisterTest("MemcmpTest16", MemcmpTest16, 1);
     UtRegisterTest("MemcmpTest17", MemcmpTest17, 1);
+    UtRegisterTest("MemcmpTest18", MemcmpTest18, 1);
 #endif /* UNITTESTS */
 }