]> granicus.if.org Git - neomutt/commitdiff
test: add charset 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 09:49:17 +0000 (10:49 +0100)
16 files changed:
test/charset/mutt_ch_canonical_charset.c
test/charset/mutt_ch_charset_lookup.c
test/charset/mutt_ch_check.c
test/charset/mutt_ch_check_charset.c
test/charset/mutt_ch_choose.c
test/charset/mutt_ch_chscmp.c
test/charset/mutt_ch_convert_nonmime_string.c
test/charset/mutt_ch_convert_string.c
test/charset/mutt_ch_fgetconv.c
test/charset/mutt_ch_fgetconv_close.c
test/charset/mutt_ch_fgetconv_open.c
test/charset/mutt_ch_fgetconvs.c
test/charset/mutt_ch_iconv_lookup.c
test/charset/mutt_ch_iconv_open.c
test/charset/mutt_ch_lookup_add.c
test/charset/mutt_ch_set_charset.c

index d818fef1ff00e0f89dc03c69fb85864183e0c249..3ff47271e824290d7b8124b18c99ac7c7e4f9ded 100644 (file)
 void test_mutt_ch_canonical_charset(void)
 {
   // void mutt_ch_canonical_charset(char *buf, size_t buflen, const char *name);
+
+  {
+    mutt_ch_canonical_charset(NULL, 10, "apple");
+    TEST_CHECK_(1, "mutt_ch_canonical_charset(NULL, 10, \"apple\")");
+  }
+
+  {
+    char buf[32] = { 0 };
+    mutt_ch_canonical_charset(buf, sizeof(buf), NULL);
+    TEST_CHECK_(1, "mutt_ch_canonical_charset(&buf, sizeof(buf), NULL)");
+  }
 }
index 169d04ed704b256613db542d10486b5a20ed7554..ef372d34dc57686f1d47f3914e54a5a81b064510 100644 (file)
@@ -28,4 +28,8 @@
 void test_mutt_ch_charset_lookup(void)
 {
   // const char *mutt_ch_charset_lookup(const char *chs);
+
+  {
+    TEST_CHECK(!mutt_ch_charset_lookup(NULL));
+  }
 }
index 2c5b9c21d85e443e0a2f143fb6eb817e04944b59..5ad211504e9e8f3ecbd17eb90bf6d63c313576bf 100644 (file)
 void test_mutt_ch_check(void)
 {
   // int mutt_ch_check(const char *s, size_t slen, const char *from, const char *to);
+
+  {
+    TEST_CHECK(mutt_ch_check(NULL, 10, "apple", "banana") != 0);
+  }
+
+  {
+    char buf[32] = { 0 };
+    TEST_CHECK(mutt_ch_check(buf, sizeof(buf), NULL, "banana") != 0);
+  }
+
+  {
+    char buf[32] = { 0 };
+    TEST_CHECK(mutt_ch_check(buf, sizeof(buf), "apple", NULL) != 0);
+  }
 }
index 7882352aac64ef2f63b71f6a21546504055005af..43e525a19202db32ddd8ee0fa6988d69bca3af8f 100644 (file)
@@ -28,4 +28,8 @@
 void test_mutt_ch_check_charset(void)
 {
   // bool mutt_ch_check_charset(const char *cs, bool strict);
+
+  {
+    TEST_CHECK(!mutt_ch_check_charset(NULL, false));
+  }
 }
index 2e4dac3e85a6440bc239f0e07295cc7920dc4847..9b0577edca21773443aaac861847d3c6594ec8cc 100644 (file)
 void test_mutt_ch_choose(void)
 {
   // char *mutt_ch_choose(const char *fromcode, const char *charsets, const char *u, size_t ulen, char **d, size_t *dlen);
+
+  {
+    char buf_in[32] = { 0 };
+    char *buf_out = NULL;
+    size_t buflen = 0;
+    TEST_CHECK(mutt_ch_choose(NULL, "banana", buf_in, sizeof(buf_in), &buf_out, &buflen) != NULL);
+  }
+
+  {
+    char buf_in[32] = { 0 };
+    char *buf_out = NULL;
+    size_t buflen = 0;
+    TEST_CHECK(!mutt_ch_choose("apple", NULL, buf_in, sizeof(buf_in), &buf_out, &buflen));
+  }
+
+  {
+    char *buf_out = NULL;
+    size_t buflen = 0;
+    TEST_CHECK(mutt_ch_choose("apple", "banana", NULL, 10, &buf_out, &buflen) != NULL);
+  }
+
+  {
+    char buf_in[32] = { 0 };
+    size_t buflen = 0;
+    TEST_CHECK(!mutt_ch_choose("apple", "banana", buf_in, sizeof(buf_in), NULL, &buflen));
+  }
+
+  {
+    char buf_in[32] = { 0 };
+    char *buf_out = NULL;
+    TEST_CHECK(mutt_ch_choose("apple", "banana", buf_in, sizeof(buf_in), &buf_out, NULL) != NULL);
+  }
 }
index 6f9a5718d4673cdd572e8e33a8f8cae1412217c4..2a58409214f7225c7da8873be2aa40d1d74a55b5 100644 (file)
 void test_mutt_ch_chscmp(void)
 {
   // bool mutt_ch_chscmp(const char *cs1, const char *cs2);
+
+  {
+    TEST_CHECK(!mutt_ch_chscmp(NULL, "banana"));
+  }
+
+  {
+    TEST_CHECK(!mutt_ch_chscmp("apple", NULL));
+  }
 }
index 8a4d5024a9463f3923093e9221a6f1324b171019..4fe661f1756f9e84bd032c2914f62bfbed52440e 100644 (file)
@@ -28,4 +28,8 @@
 void test_mutt_ch_convert_nonmime_string(void)
 {
   // int mutt_ch_convert_nonmime_string(char **ps);
+
+  {
+    TEST_CHECK(mutt_ch_convert_nonmime_string(NULL) != 0);
+  }
 }
index 1b1a9dff47071a3a5344461d72ed147034ffdb2d..33f7f179ed50865db99e87919800f77ddfd8c0cb 100644 (file)
 void test_mutt_ch_convert_string(void)
 {
   // int mutt_ch_convert_string(char **ps, const char *from, const char *to, int flags);
+
+  {
+    char *ps = strdup("apple");
+    TEST_CHECK(mutt_ch_convert_string(NULL, "apple", "banana", 0) != 0);
+    free(ps);
+  }
+
+  {
+    char *ps = NULL;
+    TEST_CHECK(mutt_ch_convert_string(&ps, "apple", "banana", 0) == 0);
+  }
+
+  {
+    char *ps = strdup("apple");
+    TEST_CHECK(mutt_ch_convert_string(&ps, NULL, "banana", 0) != 0);
+    free(ps);
+  }
+
+  {
+    char *ps = strdup("apple");
+    TEST_CHECK(mutt_ch_convert_string(&ps, "apple", NULL, 0) != 0);
+    free(ps);
+  }
 }
index 437b1edb68dd0241c35799a50a14c3a0ebd8e9fc..806ea00766fe16b17fc01203077b4ce82444431c 100644 (file)
@@ -28,4 +28,8 @@
 void test_mutt_ch_fgetconv(void)
 {
   // int mutt_ch_fgetconv(struct FgetConv *fc);
+
+  {
+    TEST_CHECK(mutt_ch_fgetconv(NULL) == EOF);
+  }
 }
index caca33bb18349158b3e4cb58611bd2d0fae04c5b..c7018ee4782ab24515530439b16d9f8e221b147b 100644 (file)
 void test_mutt_ch_fgetconv_close(void)
 {
   // void mutt_ch_fgetconv_close(struct FgetConv **fc);
+
+  {
+    mutt_ch_fgetconv_close(NULL);
+    TEST_CHECK_(1, "mutt_ch_fgetconv_close(NULL)");
+  }
+
+  {
+    struct FgetConv *fgetconv = NULL;
+    mutt_ch_fgetconv_close(&fgetconv);
+    TEST_CHECK_(1, "mutt_ch_fgetconv_close(&fgetconv)");
+  }
 }
index 714393bd1f71a164d16384e38e88136212039450..6fb0796448cb8a2f4d45f2b56174e8a1a4f9c37a 100644 (file)
 void test_mutt_ch_fgetconv_open(void)
 {
   // struct FgetConv *mutt_ch_fgetconv_open(FILE *fp, const char *from, const char *to, int flags);
+
+  {
+    TEST_CHECK(mutt_ch_fgetconv_open(NULL, "apple", "banana", 0) != NULL);
+  }
+
+  {
+    FILE fp = { 0 };
+    TEST_CHECK(mutt_ch_fgetconv_open(&fp, NULL, "banana", 0) != NULL);
+  }
+
+  {
+    FILE fp = { 0 };
+    TEST_CHECK(mutt_ch_fgetconv_open(&fp, "apple", NULL, 0) != NULL);
+  }
 }
index 879113bd064fef37d586b4b8f97e615f9b439f5c..313638b4e24b3178acd26a1affa13d87293cf33f 100644 (file)
 void test_mutt_ch_fgetconvs(void)
 {
   // char *mutt_ch_fgetconvs(char *buf, size_t buflen, struct FgetConv *fc);
+
+  {
+    struct FgetConv fgetconv = { 0 };
+    TEST_CHECK(!mutt_ch_fgetconvs(NULL, 10, &fgetconv));
+  }
+
+  {
+    char buf[32] = { 0 };
+    TEST_CHECK(!mutt_ch_fgetconvs(buf, sizeof(buf), NULL));
+  }
 }
index fcc26f61ef6a646c21f04843740bc95b1329f4d7..48e2d627bb416e01b4f188260ec5892703d8eca8 100644 (file)
@@ -28,4 +28,8 @@
 void test_mutt_ch_iconv_lookup(void)
 {
   // const char *mutt_ch_iconv_lookup(const char *chs);
+
+  {
+    TEST_CHECK(!mutt_ch_iconv_lookup(NULL));
+  }
 }
index 9a245cee9c0af3804830aa7075cfd7ac68e7b92f..6f426bb371ba77cc4a92a52d56913b04e355b2eb 100644 (file)
 void test_mutt_ch_iconv_open(void)
 {
   // iconv_t mutt_ch_iconv_open(const char *tocode, const char *fromcode, int flags);
+
+  {
+    TEST_CHECK(mutt_ch_iconv_open(NULL, "banana", 0) != NULL);
+  }
+
+  {
+    TEST_CHECK(mutt_ch_iconv_open("apple", NULL, 0) != NULL);
+  }
 }
index 77672757e6b9682167f10a46f0e13538f132fad7..f3d4ecfd416e47a25b269673aceace967957ce55 100644 (file)
 void test_mutt_ch_lookup_add(void)
 {
   // bool mutt_ch_lookup_add(enum LookupType type, const char *pat, const char *replace, struct Buffer *err);
+
+  {
+    struct Buffer buf = { 0 };
+    TEST_CHECK(!mutt_ch_lookup_add(0, NULL, "banana", &buf));
+  }
+
+  {
+    struct Buffer buf = { 0 };
+    TEST_CHECK(!mutt_ch_lookup_add(0, "apple", NULL, &buf));
+  }
+
+  {
+    TEST_CHECK(mutt_ch_lookup_add(0, "apple", "banana", NULL));
+  }
 }
index 26bb05343541c49536832243669d03b8e21ecb9b..de069d4177587499fa46e1797314ea5da84918d7 100644 (file)
@@ -28,4 +28,9 @@
 void test_mutt_ch_set_charset(void)
 {
   // void mutt_ch_set_charset(const char *charset);
+
+  {
+    mutt_ch_set_charset(NULL);
+    TEST_CHECK_(1, "mutt_ch_set_charset(NULL)");
+  }
 }