]> granicus.if.org Git - neomutt/commitdiff
test: add regex tests for degenerate cases
authorRichard Russon <rich@flatcap.org>
Mon, 29 Apr 2019 13:46:56 +0000 (14:46 +0100)
committerRichard Russon <rich@flatcap.org>
Tue, 30 Apr 2019 10:22:04 +0000 (11:22 +0100)
12 files changed:
test/regex/mutt_regex_compile.c
test/regex/mutt_regex_free.c
test/regex/mutt_regex_new.c
test/regex/mutt_regexlist_add.c
test/regex/mutt_regexlist_free.c
test/regex/mutt_regexlist_match.c
test/regex/mutt_regexlist_remove.c
test/regex/mutt_replacelist_add.c
test/regex/mutt_replacelist_apply.c
test/regex/mutt_replacelist_free.c
test/regex/mutt_replacelist_match.c
test/regex/mutt_replacelist_remove.c

index 609aa7d4684652aac61e8a3fed81f89dd7424367..4956f9ccc29dcadb7b394b9faefa2f9944b33a76 100644 (file)
@@ -28,4 +28,8 @@
 void test_mutt_regex_compile(void)
 {
   // struct Regex *mutt_regex_compile(const char *str, int flags);
+
+  {
+    TEST_CHECK(!mutt_regex_compile(NULL, 0));
+  }
 }
index e3f0f8787805012843cca20316b65753f956517c..57418cfb31ffb7a6cfac016d24f98f7802cf8392 100644 (file)
 void test_mutt_regex_free(void)
 {
   // void mutt_regex_free(struct Regex **r);
+
+  {
+    mutt_regex_free(NULL);
+    TEST_CHECK_(1, "mutt_regex_free(NULL)");
+  }
+
+  {
+    struct Regex *regex = NULL;
+    mutt_regex_free(&regex);
+    TEST_CHECK_(1, "mutt_regex_free(&regex)");
+  }
 }
index a33d1aec1416acab60e27ce921f56ce176d40459..31f8288ade1b2471e08bc254a6c03f5e3603f64a 100644 (file)
 void test_mutt_regex_new(void)
 {
   // struct Regex *mutt_regex_new(const char *str, int flags, struct Buffer *err);
+
+  {
+    struct Buffer buf = { 0 };
+    TEST_CHECK(!mutt_regex_new(NULL, 0, &buf));
+  }
+
+  {
+    TEST_CHECK(mutt_regex_new("apple", 0, NULL) != NULL);
+  }
 }
index 20a1af66dd597c8813c10e2f40b5582049e8650c..d30166b5e7eec457fee523cb3f556c4f98c8e8ae 100644 (file)
 void test_mutt_regexlist_add(void)
 {
   // int mutt_regexlist_add(struct RegexList *rl, const char *str, int flags, struct Buffer *err);
+
+  {
+    struct Buffer buf = { 0 };
+    TEST_CHECK(mutt_regexlist_add(NULL, "apple", 0, &buf) == 0);
+  }
+
+  {
+    struct RegexList regexlist = { 0 };
+    struct Buffer buf = { 0 };
+    TEST_CHECK(mutt_regexlist_add(&regexlist, NULL, 0, &buf) == 0);
+  }
+
+  {
+    struct RegexList regexlist = STAILQ_HEAD_INITIALIZER(regexlist);
+    TEST_CHECK(mutt_regexlist_add(&regexlist, "apple", 0, NULL) == 0);
+  }
 }
index 6b4093a10dc6e58aa7f108413877e2147ab8e0a8..0bd78a36a9f95f97ebdbb762a13078cc499d4b5d 100644 (file)
@@ -28,4 +28,9 @@
 void test_mutt_regexlist_free(void)
 {
   // void mutt_regexlist_free(struct RegexList *rl);
+
+  {
+    mutt_regexlist_free(NULL);
+    TEST_CHECK_(1, "mutt_regexlist_free(NULL)");
+  }
 }
index 529fcef7eecd688bc20c030ee31b91986cdefd56..fc2a447c757b3e8c44294fe9d6409c2d59c04add 100644 (file)
 void test_mutt_regexlist_match(void)
 {
   // bool mutt_regexlist_match(struct RegexList *rl, const char *str);
+
+  {
+    TEST_CHECK(!mutt_regexlist_match(NULL, "apple"));
+  }
+
+  {
+    struct RegexList regexlist = { 0 };
+    TEST_CHECK(!mutt_regexlist_match(&regexlist, NULL));
+  }
 }
index c155e964d90c39a18e6c596d8e2dbf3a7a6e4d13..27f5fa46d3adaa9943aaf72ace5b3b3f5b217f03 100644 (file)
 void test_mutt_regexlist_remove(void)
 {
   // int mutt_regexlist_remove(struct RegexList *rl, const char *str);
+
+  {
+    TEST_CHECK(mutt_regexlist_remove(NULL, "apple") != 0);
+  }
+
+  {
+    struct RegexList regexlist = { 0 };
+    TEST_CHECK(mutt_regexlist_remove(&regexlist, NULL) != 0);
+  }
 }
index 62d208e46cf178223fc90fe7a35371fd831b71ee..ab1a7b8fdecf880c780484368069345db143d2fe 100644 (file)
 void test_mutt_replacelist_add(void)
 {
   // int mutt_replacelist_add(struct ReplaceList *rl, const char *pat, const char *templ, struct Buffer *err);
+
+  {
+    struct Buffer buf = { 0 };
+    TEST_CHECK(mutt_replacelist_add(NULL, "apple", "banana", &buf) == 0);
+  }
+
+  {
+    struct ReplaceList replacelist = { 0 };
+    struct Buffer buf = { 0 };
+    TEST_CHECK(mutt_replacelist_add(&replacelist, NULL, "banana", &buf) == 0);
+  }
+
+  {
+    struct ReplaceList replacelist = { 0 };
+    struct Buffer buf = { 0 };
+    TEST_CHECK(mutt_replacelist_add(&replacelist, "apple", NULL, &buf) == 0);
+  }
+
+  {
+    struct ReplaceList replacelist = STAILQ_HEAD_INITIALIZER(replacelist);
+    TEST_CHECK(mutt_replacelist_add(&replacelist, "apple", "banana", NULL) == 0);
+  }
 }
index 11d82b186d3717803305d0636bb7db5b154edb08..3b96e58b0ffb9aebf180c81c4f2454c451ad6379 100644 (file)
 void test_mutt_replacelist_apply(void)
 {
   // char *mutt_replacelist_apply(struct ReplaceList *rl, char *buf, size_t buflen, const char *str);
+
+  {
+    char buf[32] = { 0 };
+    TEST_CHECK(mutt_replacelist_apply(NULL, buf, sizeof(buf), "apple") == buf);
+  }
+
+  {
+    struct ReplaceList replacelist = { 0 };
+    TEST_CHECK(mutt_replacelist_apply(&replacelist, NULL, 10, "apple") != NULL);
+  }
+
+  {
+    struct ReplaceList replacelist = { 0 };
+    char buf[32] = { 0 };
+    TEST_CHECK(mutt_replacelist_apply(&replacelist, buf, sizeof(buf), NULL) == buf);
+  }
 }
index eb2709de794ea24117f8f0c744284e061ca17f72..99d1d299267b8f12be09f34fbce8f81d932d3b9c 100644 (file)
@@ -28,4 +28,9 @@
 void test_mutt_replacelist_free(void)
 {
   // void mutt_replacelist_free(struct ReplaceList *rl);
+
+  {
+    mutt_replacelist_free(NULL);
+    TEST_CHECK_(1, "mutt_replacelist_free(NULL)");
+  }
 }
index a92aaad7a09aa5d4255ca1da57cb58d58730f0ca..0441edfea83b234f1d3c649b067fae82d6af1122 100644 (file)
 void test_mutt_replacelist_match(void)
 {
   // bool mutt_replacelist_match(struct ReplaceList *rl, char *buf, size_t buflen, const char *str);
+
+  {
+    char buf[32] = { 0 };
+    TEST_CHECK(!mutt_replacelist_match(NULL, buf, sizeof(buf), "apple"));
+  }
+
+  {
+    struct ReplaceList replacelist = { 0 };
+    TEST_CHECK(!mutt_replacelist_match(&replacelist, NULL, 10, "apple"));
+  }
+
+  {
+    struct ReplaceList replacelist = { 0 };
+    char buf[32] = { 0 };
+    TEST_CHECK(!mutt_replacelist_match(&replacelist, buf, sizeof(buf), NULL));
+  }
 }
index 8aed66b1dcc2d0cab51c0db9ff18be47ebb1523d..9aa682b5c01d84880c8872574df7926718e566f6 100644 (file)
 void test_mutt_replacelist_remove(void)
 {
   // int mutt_replacelist_remove(struct ReplaceList *rl, const char *pat);
+
+  {
+    TEST_CHECK(mutt_replacelist_remove(NULL, "apple") == 0);
+  }
+
+  {
+    struct ReplaceList replacelist = { 0 };
+    TEST_CHECK(mutt_replacelist_remove(&replacelist, NULL) == 0);
+  }
 }