]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
test: extend LibCephFS.Xattrs test
authorDavid Disseldorp <ddiss@suse.de>
Mon, 15 Apr 2019 18:08:30 +0000 (20:08 +0200)
committerDavid Disseldorp <ddiss@suse.de>
Mon, 15 Apr 2019 23:31:04 +0000 (01:31 +0200)
Additionally check that:
- a zero buflen returns the needed length
- a non-zero buflen less than needed fails
- the list-length is non-zero following setxattr

Signed-off-by: David Disseldorp <ddiss@suse.de>
src/test/libcephfs/test.cc

index 78b95af801cb433267543555ceb7d7dc68d03d30..343aab9b2887eba6706f1569f178a786f00d404c 100644 (file)
@@ -518,8 +518,18 @@ TEST(LibCephFS, Xattrs) {
     ASSERT_EQ(ceph_setxattr(cmount, test_xattr_file, xattrk, (void *) xattrv, len, XATTR_CREATE), 0);
   }
 
+  // zero size should return required buffer length
+  int len_needed = ceph_listxattr(cmount, test_xattr_file, NULL, 0);
+  ASSERT_GT(len_needed, 0);
+
+  // buffer size smaller than needed should fail
   char xattrlist[128*26];
-  int len = ceph_listxattr(cmount, test_xattr_file, xattrlist, sizeof(xattrlist));
+  ASSERT_GT(sizeof(xattrlist), (size_t)len_needed);
+  int len = ceph_listxattr(cmount, test_xattr_file, xattrlist, len_needed - 1);
+  ASSERT_EQ(-ERANGE, len);
+
+  len = ceph_listxattr(cmount, test_xattr_file, xattrlist, sizeof(xattrlist));
+  ASSERT_EQ(len, len_needed);
   char *p = xattrlist;
   char *n;
   i = 'a';