From: David Disseldorp Date: Mon, 15 Apr 2019 18:08:30 +0000 (+0200) Subject: test: extend LibCephFS.Xattrs test X-Git-Tag: v14.2.2~95^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=5b7440d9286f2c9f55cb7d37011cb08f6f011e5d;p=ceph.git test: extend LibCephFS.Xattrs test 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 (cherry picked from commit 9408f16c06124853d19807afefc141684a1f2a8b) --- diff --git a/src/test/libcephfs/test.cc b/src/test/libcephfs/test.cc index 78b95af801c..343aab9b288 100644 --- a/src/test/libcephfs/test.cc +++ b/src/test/libcephfs/test.cc @@ -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';