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

index abe944fe9e337d15afd917cf0cad13cbdc534ce1..4625922e15cd26e042dfe885a18d59586fb62e92 100644 (file)
 #include "config.h"
 #include "mutt/mutt.h"
 
+struct SkipTest
+{
+  const char *str;
+  size_t offset;
+};
+
 void test_mutt_str_skip_whitespace(void)
 {
   // char *mutt_str_skip_whitespace(char *p);
@@ -32,4 +38,30 @@ void test_mutt_str_skip_whitespace(void)
   {
     TEST_CHECK(mutt_str_skip_whitespace(NULL) == NULL);
   }
+
+  // clang-format off
+  struct SkipTest skip_tests[] =
+  {
+    { "",              0 },
+    { "apple",         0 },
+    { " apple",        1 },
+    { "\tapple",       1 },
+    { "\rapple",       1 },
+    { "\napple",       1 },
+
+    { "\t \t \napple", 5 },
+    { "\t \t \n",      5 },
+  };
+  // clang-format on
+
+  {
+    for (size_t i = 0; i < mutt_array_size(skip_tests); i++)
+    {
+      struct SkipTest *t = &skip_tests[i];
+      TEST_CASE_("'%s'", t->str);
+
+      const char *result = mutt_str_skip_whitespace(t->str);
+      TEST_CHECK(result == (t->str + t->offset));
+    }
+  }
 }