]> granicus.if.org Git - neomutt/commitdiff
test: improve test_mutt_str_remove_trailing_ws()
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_remove_trailing_ws.c

index 6cb8dffe4238c6057f6a78f41e698ed6e36fe1c3..ae5fd2a945c1f9ee7bc11d3d711a4d3ed4170f46 100644 (file)
 #include "config.h"
 #include "mutt/mutt.h"
 
+struct TrailTest
+{
+  const char *str;
+  const char *expected;
+};
+
 void test_mutt_str_remove_trailing_ws(void)
 {
   // void mutt_str_remove_trailing_ws(char *s);
@@ -33,4 +39,42 @@ void test_mutt_str_remove_trailing_ws(void)
     mutt_str_remove_trailing_ws(NULL);
     TEST_CHECK_(1, "mutt_str_remove_trailing_ws(NULL)");
   }
+
+  // none
+  // trailing
+  // only whitespace
+
+  // clang-format off
+  struct TrailTest trail_tests[] =
+  {
+    { "",              ""         },
+
+    { "hello ",        "hello"    },
+    { "hello\t",       "hello"    },
+    { "hello\r",       "hello"    },
+    { "hello\n",       "hello"    },
+
+    { "hello \t",      "hello"    },
+    { "hello\t ",      "hello"    },
+    { "hello\r\t",     "hello"    },
+    { "hello\n\r",     "hello"    },
+
+    { " \n  \r \t\t ", ""         },
+  };
+  // clang-format on
+
+  {
+    char buf[64];
+
+    for (size_t i = 0; i < mutt_array_size(trail_tests); i++)
+    {
+      struct TrailTest *t = &trail_tests[i];
+      memset(buf, 0, sizeof(buf));
+      strncpy(buf, t->str, sizeof(buf));
+      TEST_CASE_("'%s'", buf);
+
+      mutt_str_remove_trailing_ws(buf);
+      TEST_CHECK(strcmp(buf, t->expected) == 0);
+    }
+  }
 }