]> granicus.if.org Git - neomutt/commitdiff
test: improve test_mutt_buffer_from()
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 15:35:38 +0000 (16:35 +0100)
mutt/buffer.c
test/buffer/mutt_buffer_from.c

index c9612d429241f7005257b8d70be7332a49694824..5b0fd4ecc74274ccd3673ffd30ba64c26da7e142 100644 (file)
@@ -85,7 +85,10 @@ void mutt_buffer_reset(struct Buffer *buf)
 /**
  * mutt_buffer_from - Create Buffer from an existing string
  * @param seed String to put in the Buffer
- * @retval ptr New Buffer
+ * @retval ptr  New Buffer
+ * @retval NULL Error
+ *
+ * @note The write pointer is positioned at the end of the string
  */
 struct Buffer *mutt_buffer_from(const char *seed)
 {
@@ -95,7 +98,7 @@ struct Buffer *mutt_buffer_from(const char *seed)
   struct Buffer *b = mutt_buffer_new();
   b->data = mutt_str_strdup(seed);
   b->dsize = mutt_str_strlen(seed);
-  b->dptr = (char *) b->data + b->dsize;
+  b->dptr = b->data + b->dsize;
   return b;
 }
 
index f8df27187d86d05ae58f1dda54229d67d721afe9..eec560bac30f137a0599bc0409999b7a2cdee4ed 100644 (file)
@@ -32,4 +32,28 @@ void test_mutt_buffer_from(void)
   {
     TEST_CHECK(!mutt_buffer_from(NULL));
   }
+
+  {
+    struct Buffer *buf = NULL;
+    const char *str = "";
+
+    TEST_CHECK((buf = mutt_buffer_from(str)) != NULL);
+    TEST_CHECK(buf->data == NULL);
+    TEST_CHECK(buf->dptr == NULL);
+    TEST_CHECK(buf->dsize == 0);
+
+    mutt_buffer_free(&buf);
+  }
+
+  {
+    struct Buffer *buf = NULL;
+    const char *str = "test";
+
+    TEST_CHECK((buf = mutt_buffer_from(str)) != NULL);
+    TEST_CHECK(buf->data != NULL);
+    TEST_CHECK(buf->dptr != NULL);
+    TEST_CHECK(buf->dsize != 0);
+
+    mutt_buffer_free(&buf);
+  }
 }