]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
test: add unit test for rados_nobjects_list_next2().
authorRadoslaw Zarzynski <rzarzyns@redhat.com>
Fri, 5 Feb 2021 12:38:47 +0000 (12:38 +0000)
committerRadoslaw Zarzynski <rzarzyns@redhat.com>
Tue, 9 Mar 2021 17:04:58 +0000 (17:04 +0000)
Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
(cherry picked from commit 8965506b8bd0b74ca5ec743e5eddd40dd4d37bac)

src/test/librados/list.cc

index c66cec3513558184265857ca4f2824f4a057fc35..829890c1ad9058c955bea0af3eab8ce882048de5 100644 (file)
@@ -38,6 +38,23 @@ TEST_F(LibRadosList, ListObjects) {
   rados_nobjects_list_close(ctx);
 }
 
+TEST_F(LibRadosList, ListObjectsZeroInName) {
+  char buf[128];
+  memset(buf, 0xcc, sizeof(buf));
+  ASSERT_EQ(0, rados_write(ioctx, "foo\0bar", buf, sizeof(buf), 0));
+  rados_list_ctx_t ctx;
+  ASSERT_EQ(0, rados_nobjects_list_open(ioctx, &ctx));
+  const char *entry;
+  size_t entry_size;
+  bool foundit = false;
+  while (rados_nobjects_list_next2(ctx, &entry, NULL, NULL,
+                                  &entry_size, NULL, NULL) != -ENOENT) {
+    foundit = true;
+    ASSERT_EQ(std::string(entry, entry_size), "foo\0bar");
+  }
+  ASSERT_TRUE(foundit);
+  rados_nobjects_list_close(ctx);
+}
 
 static void check_list(
   std::set<std::string>& myset,