java: make CephMountTest use user.* xattr names

Changes to the xattr code in Ceph require
a few tweaks to existing test cases.
Specifically, there is now a ceph.file.layout
xattr by default and user defined xattrs
are prepended with "user."

Signed-off-by: Sage Weil <sage@inktank.com>
Reviewed-by: Joe Buck <jbbuck@gmail.com>
Reviewed-by: Noah Watkins <noahwatkins@gmail.com>
This commit is contained in:
Sage Weil 2013-02-08 21:36:13 -08:00 committed by Joe Buck
parent fe283813b4
commit 7c2e2b999d

View File

@ -818,36 +818,41 @@ public class CephMountTest {
String val2 = "This is a different xattr";
byte[] buf1 = val1.getBytes();
byte[] buf2 = val2.getBytes();
mount.setxattr(path, "attr1", buf1, buf1.length, mount.XATTR_CREATE);
mount.setxattr(path, "attr2", buf2, buf2.length, mount.XATTR_CREATE);
mount.setxattr(path, "user.attr1", buf1, buf1.length, mount.XATTR_CREATE);
mount.setxattr(path, "user.attr2", buf2, buf2.length, mount.XATTR_CREATE);
/* list xattrs */
String[] xattrs = mount.listxattr(path);
assertTrue(xattrs.length == 2);
/* the ceph.file.layout xattr exists for all files automatically */
assertTrue(xattrs.length == 3);
int found = 0;
for (String xattr : xattrs) {
if (xattr.compareTo("attr1") == 0) {
if (xattr.compareTo("user.attr1") == 0) {
found++;
continue;
}
if (xattr.compareTo("attr2") == 0) {
if (xattr.compareTo("user.attr2") == 0) {
found++;
continue;
}
if (xattr.compareTo("ceph.file.layout") == 0) {
found++;
continue;
}
System.out.println("found unwanted xattr: " + xattr);
}
assertTrue(found == 2);
assertTrue(found == 3);
/* get first xattr by looking up length */
long attr1_len = mount.getxattr(path, "attr1", null);
long attr1_len = mount.getxattr(path, "user.attr1", null);
byte[] out = new byte[(int)attr1_len];
mount.getxattr(path, "attr1", out);
mount.getxattr(path, "user.attr1", out);
String outStr = new String(out);
assertTrue(outStr.compareTo(val1) == 0);
/* get second xattr assuming original length */
out = new byte[buf2.length];
mount.getxattr(path, "attr2", out);
mount.getxattr(path, "user.attr2", out);
outStr = new String(out);
assertTrue(outStr.compareTo(val2) == 0);