]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
common: get_str_list unit tests
authorSage Weil <sage@newdream.net>
Tue, 1 Nov 2011 18:42:45 +0000 (11:42 -0700)
committerSage Weil <sage@newdream.net>
Tue, 1 Nov 2011 18:43:17 +0000 (11:43 -0700)
Signed-off-by: Sage Weil <sage@newdream.net>
src/Makefile.am
src/test/test_str_list.cc [new file with mode: 0644]

index b70cf1905563ea9bb8d52ddee7a04b1d00513d16..9c7e9d68e2c03c547af8bc706a25d7c04d29826b 100644 (file)
@@ -158,6 +158,11 @@ test_addrs_CXXFLAGS = ${AM_CXXFLAGS} ${UNITTEST_CXXFLAGS}
 test_addrs_LDADD = libglobal.la -lpthread -lm ${UNITTEST_LDADD} $(CRYPTO_LIBS) $(EXTRALIBS)
 bin_DEBUGPROGRAMS += test_addrs
 
+test_str_list_SOURCES = test/test_str_list.cc
+test_str_list_CXXFLAGS = ${AM_CXXFLAGS} ${UNITTEST_CXXFLAGS}
+test_str_list_LDADD = libglobal.la -lpthread -lm ${UNITTEST_LDADD} $(CRYPTO_LIBS) $(EXTRALIBS)
+bin_DEBUGPROGRAMS += test_str_list
+
 test_mutate_SOURCES = test/test_mutate.cc
 test_mutate_LDADD = libglobal.la librados.la -lpthread -lm $(CRYPTO_LIBS) $(EXTRALIBS)
 bin_DEBUGPROGRAMS += test_mutate
diff --git a/src/test/test_str_list.cc b/src/test/test_str_list.cc
new file mode 100644 (file)
index 0000000..43d01aa
--- /dev/null
@@ -0,0 +1,35 @@
+
+#include "include/types.h"
+#include "include/str_list.h"
+
+#include <list>
+#include <string>
+
+#include "gtest/gtest.h"
+
+
+const char *tests[][10] = {
+  { "foo,bar", "foo", "bar", 0 },
+  { "foo", "foo", 0 },
+  { "foo;bar", "foo", "bar", 0 },
+  { "foo bar", "foo", "bar", 0 },
+  { " foo bar", "foo", "bar", 0 },
+  { " foo bar ", "foo", "bar", 0 },
+  { "a,b,c", "a", "b", "c", 0 },
+  { " a\tb\tc\t", "a", "b", "c", 0 },
+  { 0 },
+};
+
+TEST(StrList, All)
+{
+  for (unsigned i=0; tests[i][0]; ++i) {
+    std::string src = tests[i][0];
+    std::list<std::string> expected;
+    for (unsigned j=1; tests[i][j]; ++j)
+      expected.push_back(tests[i][j]);
+    std::list<std::string> actual;
+    get_str_list(src, actual);
+    std::cout << "'" << src << "' -> " << actual << std::endl;
+    ASSERT_EQ(actual, expected);
+  }
+}