]> granicus.if.org Git - neomutt/commitdiff
test: add file 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)
36 files changed:
test/file/mutt_file_check_empty.c
test/file/mutt_file_chmod.c
test/file/mutt_file_chmod_add.c
test/file/mutt_file_chmod_add_stat.c
test/file/mutt_file_chmod_rm.c
test/file/mutt_file_chmod_rm_stat.c
test/file/mutt_file_copy_bytes.c
test/file/mutt_file_copy_stream.c
test/file/mutt_file_decrease_mtime.c
test/file/mutt_file_expand_fmt.c
test/file/mutt_file_expand_fmt_quote.c
test/file/mutt_file_fclose.c
test/file/mutt_file_fopen.c
test/file/mutt_file_fsync_close.c
test/file/mutt_file_get_size.c
test/file/mutt_file_get_stat_timespec.c
test/file/mutt_file_iter_line.c
test/file/mutt_file_map_lines.c
test/file/mutt_file_mkdir.c
test/file/mutt_file_mkstemp_full.c
test/file/mutt_file_open.c
test/file/mutt_file_quote_filename.c
test/file/mutt_file_read_keyword.c
test/file/mutt_file_read_line.c
test/file/mutt_file_rename.c
test/file/mutt_file_rmtree.c
test/file/mutt_file_safe_rename.c
test/file/mutt_file_sanitize_filename.c
test/file/mutt_file_sanitize_regex.c
test/file/mutt_file_set_mtime.c
test/file/mutt_file_stat_compare.c
test/file/mutt_file_stat_timespec_compare.c
test/file/mutt_file_symlink.c
test/file/mutt_file_timespec_compare.c
test/file/mutt_file_unlink.c
test/file/mutt_file_unlink_empty.c

index 6f23ff4d7c3fd55864c8202376bc515786c5a4a3..000db019370f48154d4b2ab08a9b979f92cf3359 100644 (file)
@@ -28,4 +28,8 @@
 void test_mutt_file_check_empty(void)
 {
   // int mutt_file_check_empty(const char *path);
+
+  {
+    TEST_CHECK(mutt_file_check_empty(NULL) != 0);
+  }
 }
index aefde7e9f5345b68e200812bcadd806811f99656..f193bfeb25652fd9c8aab8ad1c9ad0a90e72f234 100644 (file)
@@ -28,4 +28,8 @@
 void test_mutt_file_chmod(void)
 {
   // int mutt_file_chmod(const char *path, mode_t mode);
+
+  {
+    TEST_CHECK(mutt_file_chmod(NULL, 0) != 0);
+  }
 }
index 0dbfda710ff3076fb529f65ead8231e34a682deb..ddbaec5f3aa4ab0cef9c9d1fd1656b99bffbe1f9 100644 (file)
@@ -28,4 +28,8 @@
 void test_mutt_file_chmod_add(void)
 {
   // int mutt_file_chmod_add(const char *path, mode_t mode);
+
+  {
+    TEST_CHECK(mutt_file_chmod_add(NULL, 0) != 0);
+  }
 }
index a1cebc9067cbe0d371cbe90b9b3308c9d177f862..567b9e876d1258127c88bec7c2fdb92815a69285 100644 (file)
 void test_mutt_file_chmod_add_stat(void)
 {
   // int mutt_file_chmod_add_stat(const char *path, mode_t mode, struct stat *st);
+
+  {
+    struct stat stat = { 0 };
+    TEST_CHECK(mutt_file_chmod_add_stat(NULL, 0, &stat) != 0);
+  }
+
+  {
+    TEST_CHECK(mutt_file_chmod_add_stat("apple", 0, NULL) != 0);
+  }
 }
index 61ea9c7a4f3aa67e3f5ef1d975a8a07e3badabcf..99d7e46ec443bfbb87d0712e5f48e8d9a215a66e 100644 (file)
@@ -28,4 +28,8 @@
 void test_mutt_file_chmod_rm(void)
 {
   // int mutt_file_chmod_rm(const char *path, mode_t mode);
+
+  {
+    TEST_CHECK(mutt_file_chmod_rm(NULL, 0) != 0);
+  }
 }
index 84183969f3a60e628e41ddeb15b4d502293bc84a..ff261e81a48613551b5f14da120361ade787bcdd 100644 (file)
 void test_mutt_file_chmod_rm_stat(void)
 {
   // int mutt_file_chmod_rm_stat(const char *path, mode_t mode, struct stat *st);
+
+  {
+    struct stat stat = { 0 };
+    TEST_CHECK(mutt_file_chmod_rm_stat(NULL, 0, &stat) != 0);
+  }
+
+  {
+    TEST_CHECK(mutt_file_chmod_rm_stat("apple", 0, NULL) != 0);
+  }
 }
index 2426e31665c9d0a466d9c8dc8a179499dba3de5b..a7595f1ad63f94bc9eaa14f792452c4165ec2814 100644 (file)
 void test_mutt_file_copy_bytes(void)
 {
   // int mutt_file_copy_bytes(FILE *fp_in, FILE *fp_out, size_t size);
+
+  {
+    FILE fp = { 0 };
+    TEST_CHECK(mutt_file_copy_bytes(NULL, &fp, 10) != 0);
+  }
+
+  {
+    FILE fp = { 0 };
+    TEST_CHECK(mutt_file_copy_bytes(&fp, NULL, 10) != 0);
+  }
 }
index d75fee9b4a851eb2478722aa18fed97bb35a4030..bef791744cbe90ed069918c092716500204acab7 100644 (file)
 void test_mutt_file_copy_stream(void)
 {
   // int mutt_file_copy_stream(FILE *fp_in, FILE *fp_out);
+
+  {
+    FILE fp = { 0 };
+    TEST_CHECK(mutt_file_copy_stream(NULL, &fp) != 0);
+  }
+
+  {
+    FILE fp = { 0 };
+    TEST_CHECK(mutt_file_copy_stream(&fp, NULL) != 0);
+  }
 }
index 07a538937816ed33de707e96aecd9f3646b9dc4c..8d4ddab1ea9a32dc9169f0caa1873c79d304fbf9 100644 (file)
 void test_mutt_file_decrease_mtime(void)
 {
   // time_t mutt_file_decrease_mtime(const char *fp, struct stat *st);
+
+  {
+    struct stat stat = { 0 };
+    TEST_CHECK(mutt_file_decrease_mtime(NULL, &stat) != 0);
+  }
+
+  {
+    TEST_CHECK(mutt_file_decrease_mtime("apple", NULL) != 0);
+  }
 }
index 90671fcf2d6ffad515b3b01bfde51b8d7d5a2464..c30188355690b6558e20496bb8044d62aa51a0e7 100644 (file)
 void test_mutt_file_expand_fmt(void)
 {
   // void mutt_file_expand_fmt(char *dest, size_t destlen, const char *fmt, const char *src);
+
+  {
+    mutt_file_expand_fmt(NULL, 10, "apple", "banana");
+    TEST_CHECK_(1, "mutt_file_expand_fmt(NULL, 10, \"apple\", \"banana\")");
+  }
+
+  {
+    char buf[32] = { 0 };
+    mutt_file_expand_fmt(buf, sizeof(buf), NULL, "banana");
+    TEST_CHECK_(1, "mutt_file_expand_fmt(&buf, sizeof(buf), NULL, \"banana\")");
+  }
+
+  {
+    char buf[32] = { 0 };
+    mutt_file_expand_fmt(buf, sizeof(buf), "apple", NULL);
+    TEST_CHECK_(1, "mutt_file_expand_fmt(&buf, sizeof(buf), \"apple\", NULL)");
+  }
 }
index c6354b070d32b79d0863324715796528d66a47d6..19d4332ea124a172a29638b721d45e4dfc488f30 100644 (file)
 void test_mutt_file_expand_fmt_quote(void)
 {
   // void mutt_file_expand_fmt_quote(char *dest, size_t destlen, const char *fmt, const char *src);
+
+  {
+    mutt_file_expand_fmt_quote(NULL, 10, "apple", "banana");
+    TEST_CHECK_(1, "mutt_file_expand_fmt_quote(NULL, 10, \"apple\", \"banana\")");
+  }
+
+  {
+    char buf[32] = { 0 };
+    mutt_file_expand_fmt_quote(buf, sizeof(buf), NULL, "banana");
+    TEST_CHECK_(1, "mutt_file_expand_fmt_quote(&buf, sizeof(buf), NULL, \"banana\")");
+  }
+
+  {
+    char buf[32] = { 0 };
+    mutt_file_expand_fmt_quote(buf, sizeof(buf), "apple", NULL);
+    TEST_CHECK_(1, "mutt_file_expand_fmt_quote(&buf, sizeof(buf), \"apple\", NULL)");
+  }
 }
index 61484be9960d8935c1cd357582c36c82a6302242..448a4ea3da966cbdc7e0a8c5945ea9547c7fc0c9 100644 (file)
 void test_mutt_file_fclose(void)
 {
   // int mutt_file_fclose(FILE **fp);
+
+  {
+    TEST_CHECK(mutt_file_fclose(NULL) == 0);
+  }
+
+  {
+    FILE *fp = NULL;
+    TEST_CHECK(mutt_file_fclose(&fp) == 0);
+  }
 }
index 68de754b61e8cabf93f469352e0c3ba31bc2a5e6..75b056cbe95ce9ac16f857833fa95deedb205ada 100644 (file)
 void test_mutt_file_fopen(void)
 {
   // FILE *mutt_file_fopen(const char *path, const char *mode);
+
+  {
+    TEST_CHECK(!mutt_file_fopen(NULL, "banana"));
+  }
+
+  {
+    TEST_CHECK(!mutt_file_fopen("apple", NULL));
+  }
 }
index 2025ca55c7c6451ccdde49717be7cf6a98252178..7b5d120651eaab200c8c27b338f60a58767bb30a 100644 (file)
 void test_mutt_file_fsync_close(void)
 {
   // int mutt_file_fsync_close(FILE **fp);
+
+  {
+    TEST_CHECK(mutt_file_fsync_close(NULL) == 0);
+  }
+
+  {
+    FILE *fp = NULL;
+    TEST_CHECK(mutt_file_fsync_close(&fp) == 0);
+  }
 }
index 63899778fa04788bdd4d186dacc97c99c3530a04..dd2b2e49a04d28470a83745308ca53d9bc79d2db 100644 (file)
@@ -28,4 +28,8 @@
 void test_mutt_file_get_size(void)
 {
   // long mutt_file_get_size(const char *path);
+
+  {
+    TEST_CHECK(mutt_file_get_size(NULL) == 0);
+  }
 }
index d32d1ae244e06acde2620f91df5235bb8ac40227..f5caa21c077a32cebdb26537187e99dc73477da0 100644 (file)
 void test_mutt_file_get_stat_timespec(void)
 {
   // void mutt_file_get_stat_timespec(struct timespec *dest, struct stat *sb, enum MuttStatType type);
+
+  {
+    struct stat stat = { 0 };
+    mutt_file_get_stat_timespec(NULL, &stat, 0);
+    TEST_CHECK_(1, "mutt_file_get_stat_timespec(NULL, &stat, 0)");
+  }
+
+  {
+    struct timespec timespec = { 0 };
+    mutt_file_get_stat_timespec(&timespec, NULL, 0);
+    TEST_CHECK_(1, "mutt_file_get_stat_timespec(&timespec, NULL, 0)");
+  }
 }
index 1149c60350a4df85097d94a1a0f02362e5a8b082..439c74211363007a2dbfae82a57270492925a680 100644 (file)
 void test_mutt_file_iter_line(void)
 {
   // bool mutt_file_iter_line(struct MuttFileIter *iter, FILE *fp, int flags);
+
+  {
+    FILE fp = { 0 };
+    TEST_CHECK(!mutt_file_iter_line(NULL, &fp, 0));
+  }
+
+  {
+    struct MuttFileIter muttfileiter = { 0 };
+    TEST_CHECK(!mutt_file_iter_line(&muttfileiter, NULL, 0));
+  }
 }
index b67586eb0eeaa4ff5c37fbc78bcc1f1afb1ec131..98475caf2347e6d7dbb78116c2588dfb3077531d 100644 (file)
 #include "config.h"
 #include "mutt/mutt.h"
 
+bool map_dummy(char *line, int line_num, void *user_data)
+{
+  return false;
+}
+
 void test_mutt_file_map_lines(void)
 {
   // bool mutt_file_map_lines(mutt_file_map_t func, void *user_data, FILE *fp, int flags);
+
+  {
+    FILE fp = { 0 };
+    TEST_CHECK(!mutt_file_map_lines(NULL, "apple", &fp, 0));
+  }
+
+  {
+    mutt_file_map_t map = map_dummy;
+    FILE *fp = fopen("/dev/null", "r");
+    TEST_CHECK(mutt_file_map_lines(map, NULL, fp, 0));
+    fclose(fp);
+  }
+
+  {
+    mutt_file_map_t map = map_dummy;
+    TEST_CHECK(!mutt_file_map_lines(map, "apple", NULL, 0));
+  }
 }
index e8b3f7aac4a45a05a91a691fc5bb8b636b8f3d33..73de581a19e52675bd5f5fa1f38d2b73af821f88 100644 (file)
@@ -28,4 +28,8 @@
 void test_mutt_file_mkdir(void)
 {
   // int mutt_file_mkdir(const char *path, mode_t mode);
+
+  {
+    TEST_CHECK(mutt_file_mkdir(NULL, 0) != 0);
+  }
 }
index 81a36cd339f5eb44d641dcbd3debe8a53c7d6d2a..44c14d9d6b741b52cc64de0136293cd93ee8e72e 100644 (file)
 void test_mutt_file_mkstemp_full(void)
 {
   // FILE *mutt_file_mkstemp_full(const char *file, int line, const char *func);
+
+  C_Tmpdir = "/tmp";
+
+  {
+    TEST_CHECK(mutt_file_mkstemp_full(NULL, 0, "apple") != NULL);
+  }
+
+  {
+    TEST_CHECK(mutt_file_mkstemp_full("apple", 0, NULL) != NULL);
+  }
 }
index 6c015506dce8864705a387796201bf33de09a547..e150dfd5009f530555b9fed3a5b291e6fbe0da89 100644 (file)
@@ -28,4 +28,8 @@
 void test_mutt_file_open(void)
 {
   // int mutt_file_open(const char *path, int flags);
+
+  {
+    TEST_CHECK(mutt_file_open(NULL, 0) != 0);
+  }
 }
index 2e7114d00edc403c6159b359ccd937498e65fbcd..58d62e3796fb6bb51cbef65011cb12bd442e52a9 100644 (file)
 void test_mutt_file_quote_filename(void)
 {
   // size_t mutt_file_quote_filename(const char *filename, char *buf, size_t buflen);
+
+  {
+    char buf[32] = { 0 };
+    TEST_CHECK(mutt_file_quote_filename(NULL, buf, sizeof(buf)) == 0);
+  }
+
+  {
+    TEST_CHECK(mutt_file_quote_filename("apple", NULL, 10) == 0);
+  }
 }
index fb73152df249314f20208e83be624368ef46526e..c71d6a470865c93e382b96b27472b884b55a7838 100644 (file)
 void test_mutt_file_read_keyword(void)
 {
   // char *mutt_file_read_keyword(const char *file, char *buf, size_t buflen);
+
+  {
+    char buf[32] = { 0 };
+    TEST_CHECK(!mutt_file_read_keyword(NULL, buf, sizeof(buf)));
+  }
+
+  {
+    TEST_CHECK(!mutt_file_read_keyword("apple", NULL, 10));
+  }
 }
index a2a431fc40ee163cb1e215febc0826a5a6606a8b..04fbe3e5f25a6901cb337fa2ce9487a96f3ebf01 100644 (file)
 void test_mutt_file_read_line(void)
 {
   // char *mutt_file_read_line(char *line, size_t *size, FILE *fp, int *line_num, int flags);
+
+  {
+    size_t size = 0;
+    FILE *fp = fopen("/dev/null", "r");
+    int line_num = 0;
+    TEST_CHECK(!mutt_file_read_line(NULL, &size, fp, &line_num, 0));
+    fclose(fp);
+  }
+
+  {
+    FILE fp = { 0 };
+    char *line = strdup("apple");
+    int line_num = 0;
+    TEST_CHECK(!mutt_file_read_line(line, NULL, &fp, &line_num, 0));
+    free(line);
+  }
+
+  {
+    size_t size = 0;
+    char *line = strdup("apple");
+    int line_num = 0;
+    TEST_CHECK(!mutt_file_read_line(line, &size, NULL, &line_num, 0));
+    free(line);
+  }
+
+  {
+    size_t size = 0;
+    char *line = strdup("apple");
+    FILE fp = { 0 };
+    TEST_CHECK(!mutt_file_read_line(line, &size, &fp, NULL, 0));
+  }
 }
index febbbbf367bdbcfcfceff2376922214df5ba33be..33cebc9f884574a4fc60baa2c5c77c2e807116bb 100644 (file)
 void test_mutt_file_rename(void)
 {
   // int mutt_file_rename(const char *oldfile, const char *newfile);
+
+  {
+    TEST_CHECK(mutt_file_rename(NULL, "apple") != 0);
+  }
+
+  {
+    TEST_CHECK(mutt_file_rename("apple", NULL) != 0);
+  }
 }
index 0252de09fd7f2395f34e69d2b120f2d1908b697a..11e4b2f8f36bd4d2bd7b3c966f157888d490d291 100644 (file)
@@ -28,4 +28,8 @@
 void test_mutt_file_rmtree(void)
 {
   // int mutt_file_rmtree(const char *path);
+
+  {
+    TEST_CHECK(mutt_file_rmtree(NULL) != 0);
+  }
 }
index c3b76e2793cbeb5a4c3c1bf11f42af0593628279..505fe5be30cc7af046f6918d78ff69147b79e25e 100644 (file)
 void test_mutt_file_safe_rename(void)
 {
   // int mutt_file_safe_rename(const char *src, const char *target);
+
+  {
+    TEST_CHECK(mutt_file_safe_rename(NULL, "apple") != 0);
+  }
+
+  {
+    TEST_CHECK(mutt_file_safe_rename("apple", NULL) != 0);
+  }
 }
index 5e6592928ec0551b230db5cc81e0c02bbc4c440b..1f71e778e75b7644b36b304eb73c9b26abfcfd51 100644 (file)
@@ -28,4 +28,9 @@
 void test_mutt_file_sanitize_filename(void)
 {
   // void mutt_file_sanitize_filename(char *fp, bool slash);
+
+  {
+    mutt_file_sanitize_filename(NULL, false);
+    TEST_CHECK_(1, "mutt_file_sanitize_filename(NULL, false)");
+  }
 }
index 41a22832a4f14835131643370b4c12a517a8b181..d67c0d7e94f199473a08ec4828adad31f85a02f0 100644 (file)
 void test_mutt_file_sanitize_regex(void)
 {
   // int mutt_file_sanitize_regex(struct Buffer *dest, const char *src);
+
+  {
+    TEST_CHECK(mutt_file_sanitize_regex(NULL, "apple") != 0);
+  }
+
+  {
+    struct Buffer buf = { 0 };
+    TEST_CHECK(mutt_file_sanitize_regex(&buf, NULL) != 0);
+  }
 }
index 9f8315d5987c9405d0d9929825984b4aa117a8f2..d5dfd9be374c155de2e85d461a44a4daa5e86359 100644 (file)
 void test_mutt_file_set_mtime(void)
 {
   // void mutt_file_set_mtime(const char *from, const char *to);
+
+  {
+    mutt_file_set_mtime(NULL, "apple");
+    TEST_CHECK_(1, "mutt_file_set_mtime(NULL, \"apple\")");
+  }
+
+  {
+    mutt_file_set_mtime("apple", NULL);
+    TEST_CHECK_(1, "mutt_file_set_mtime(\"apple\", NULL)");
+  }
 }
index 1e5a879161164df16f335a36f3754ed79f9a3398..bfdbd86789b2e05d79db26cac52a3c5c5b17381a 100644 (file)
 void test_mutt_file_stat_compare(void)
 {
   // int mutt_file_stat_compare(struct stat *sba, enum MuttStatType sba_type, struct stat *sbb, enum MuttStatType sbb_type);
+
+  {
+    struct stat stat = { 0 };
+    TEST_CHECK(mutt_file_stat_compare(NULL, 0, &stat, 0) == 0);
+  }
+
+  {
+    struct stat stat = { 0 };
+    TEST_CHECK(mutt_file_stat_compare(&stat, 0, NULL, 0) == 0);
+  }
 }
index 2d94daab279880618537a298cf983513487df6c2..0431998abbedca262cc98bb6df6033d0ef2a36b5 100644 (file)
 void test_mutt_file_stat_timespec_compare(void)
 {
   // int mutt_file_stat_timespec_compare(struct stat *sba, enum MuttStatType type, struct timespec *b);
+
+  {
+    struct timespec timespec = { 0 };
+    TEST_CHECK(mutt_file_stat_timespec_compare(NULL, 0, &timespec) == 0);
+  }
+
+  {
+    struct stat stat = { 0 };
+    TEST_CHECK(mutt_file_stat_timespec_compare(&stat, 0, NULL) == 0);
+  }
 }
index aa36ce26843be05891e0ba8a775e205e9c49e2db..425f08b3f755dabe60dc82a71ee74bd8e28f0e20 100644 (file)
 void test_mutt_file_symlink(void)
 {
   // int mutt_file_symlink(const char *oldpath, const char *newpath);
+
+  {
+    TEST_CHECK(mutt_file_symlink(NULL, "apple") != 0);
+  }
+
+  {
+    TEST_CHECK(mutt_file_symlink("apple", NULL) != 0);
+  }
 }
index 0bf7b407874c005b8199bd53d06c4e4d9be1ee7e..60b00359650217843a39d9a983b68028b3e1a149 100644 (file)
 void test_mutt_file_timespec_compare(void)
 {
   // int mutt_file_timespec_compare(struct timespec *a, struct timespec *b);
+
+  {
+    struct timespec timespec = { 0 };
+    TEST_CHECK(mutt_file_timespec_compare(NULL, &timespec) == 0);
+  }
+
+  {
+    struct timespec timespec = { 0 };
+    TEST_CHECK(mutt_file_timespec_compare(&timespec, NULL) == 0);
+  }
 }
index 44f380dc474c5c3f88069ba0fe5e96e1c4de5ed8..cadc413c4373da46eba27c20f6f5c4dd4ab7571b 100644 (file)
@@ -28,4 +28,9 @@
 void test_mutt_file_unlink(void)
 {
   // void mutt_file_unlink(const char *s);
+
+  {
+    mutt_file_unlink(NULL);
+    TEST_CHECK_(1, "mutt_file_unlink(NULL)");
+  }
 }
index b115ee1c77f7bccd3e08e08856a505b744eefeff..edc0a9c31b7337fb684a3280ba00b9cc75117bf1 100644 (file)
@@ -28,4 +28,9 @@
 void test_mutt_file_unlink_empty(void)
 {
   // void mutt_file_unlink_empty(const char *path);
+
+  {
+    mutt_file_unlink_empty(NULL);
+    TEST_CHECK_(1, "mutt_file_unlink_empty(NULL)");
+  }
 }