]> granicus.if.org Git - neomutt/commitdiff
test: improve test_mutt_str_strdup()
authorRichard Russon <rich@flatcap.org>
Sun, 26 May 2019 15:02:24 +0000 (16:02 +0100)
committerRichard Russon <rich@flatcap.org>
Sun, 26 May 2019 16:18:13 +0000 (17:18 +0100)
mutt/string.c
test/string/mutt_str_strdup.c

index 21c8cb16e961ceb2a629d2801f36826d68e64509..0d5bf647c73eb640a550c75fc6b2d0f72f901267 100644 (file)
@@ -376,17 +376,14 @@ int mutt_str_atoull(const char *str, unsigned long long *dst)
  * mutt_str_strdup - Copy a string, safely
  * @param str String to copy
  * @retval ptr  Copy of the string
- * @retval NULL if str was NULL
+ * @retval NULL if str was NULL or empty
  */
 char *mutt_str_strdup(const char *str)
 {
   if (!str || !*str)
     return NULL;
 
-  const size_t len = strlen(str) + 1;
-  char *copy = mutt_mem_malloc(len);
-  memcpy(copy, str, len);
-  return copy;
+  return strdup(str);
 }
 
 /**
index f1baf676281f4d2ab03679c24c82348a08f02243..0ee4b49284724e99b712d7d6e96b3d682f53e960 100644 (file)
@@ -34,7 +34,16 @@ void test_mutt_str_strdup(void)
   }
 
   {
-    char *ptr = NULL;
-    TEST_CHECK(mutt_str_strdup(ptr) == NULL);
+    TEST_CHECK(mutt_str_strdup("") == NULL);
+  }
+
+  {
+    char *str = "apple";
+    char *result = mutt_str_strdup(str);
+    TEST_CHECK(result != NULL);
+    TEST_CHECK(result != str);
+    TEST_CHECK(strcmp(result, str) == 0);
+    FREE(&result);
   }
 }
+