]> granicus.if.org Git - neomutt/commitdiff
test: improve test_mutt_buffer_strcpy_n()
authorRichard Russon <rich@flatcap.org>
Fri, 24 May 2019 22:24:04 +0000 (23:24 +0100)
committerRichard Russon <rich@flatcap.org>
Sun, 26 May 2019 16:16:51 +0000 (17:16 +0100)
test/buffer/mutt_buffer_strcpy_n.c

index 0aaf73a5b8bb4b0c5c5fc981b183bbac944d69d9..8e9ea779e163257a53689be64425477bc84a59ef 100644 (file)
@@ -39,4 +39,41 @@ void test_mutt_buffer_strcpy_n(void)
     mutt_buffer_strcpy_n(&buf, NULL, 3);
     TEST_CHECK_(1, "mutt_buffer_strcpy_n(&buf, NULL, 3)");
   }
+
+  TEST_CASE("Copy to an empty Buffer");
+
+  {
+    const char *str = "a quick brown fox";
+    const size_t len = strlen(str);
+    size_t sizes[] = { 0, 5, len, 99 };
+
+    for (size_t i = 0; i < mutt_array_size(sizes); i++)
+    {
+      TEST_CASE_("%ld", sizes[i]);
+      struct Buffer *buf = mutt_buffer_new();
+      mutt_buffer_strcpy_n(buf, str, sizes[i]);
+      TEST_CHECK(strlen(mutt_b2s(buf)) == MIN(len, sizes[i]));
+      TEST_CHECK(strncmp(mutt_b2s(buf), str, sizes[i]) == 0);
+      mutt_buffer_free(&buf);
+    }
+  }
+
+  TEST_CASE("Copy to a non-empty Buffer");
+
+  {
+    const char *base = "test";
+    const char *str = "a quick brown fox";
+    const size_t len = strlen(str);
+    size_t sizes[] = { 0, 5, len, 99 };
+
+    for (size_t i = 0; i < mutt_array_size(sizes); i++)
+    {
+      TEST_CASE_("%ld", sizes[i]);
+      struct Buffer *buf = mutt_buffer_from(base);
+      mutt_buffer_strcpy_n(buf, str, sizes[i]);
+      TEST_CHECK(strlen(mutt_b2s(buf)) == MIN(len, sizes[i]));
+      TEST_CHECK(strncmp(mutt_b2s(buf), str, sizes[i]) == 0);
+      mutt_buffer_free(&buf);
+    }
+  }
 }