QA output created by 062 meta-data=DDEV isize=XXX agcount=N, agsize=XXX blks data = bsize=XXX blocks=XXX, imaxpct=PCT = sunit=XXX swidth=XXX, unwritten=X naming =VERN bsize=XXX log =LDEV bsize=XXX blocks=XXX realtime =RDEV extsz=XXX blocks=XXX, rtextents=XXX *** create test bed /mnt/scratch /mnt/scratch/dev /mnt/scratch/dev/b /mnt/scratch/dev/c /mnt/scratch/dev/p /mnt/scratch/dir /mnt/scratch/lnk /mnt/scratch/reg === TYPE reg; NAMESPACE user *** set/get one initially empty attribute # file: /mnt/scratch/reg # namespace: user name *** overwrite empty, set several new attributes *** fetch several attribute names and values (hex) # file: /mnt/scratch/reg # namespace: user name=0xbabe name2=0xdeadbeef name3=0xdeface *** fetch several attribute names and values (base64) # file: /mnt/scratch/reg # namespace: user name=0sur4= name2=0s3q2+7w== name3=0s3vrO *** shrink value of an existing attribute # file: /mnt/scratch/reg # namespace: user name=0xbabe name2=0xdeaf name3=0xdeface *** grow value of existing attribute # file: /mnt/scratch/reg # namespace: user name=0xbabe name2=0xdecade name3=0xdeface *** set an empty value for second attribute # file: /mnt/scratch/reg # namespace: user name2 *** overwrite empty value # file: /mnt/scratch/reg # namespace: user name2=0xcafe *** remove attribute /mnt/scratch/reg: name2: No such attribute *** final list (strings, type=reg, nsp=user) # file: /mnt/scratch/reg # namespace: user name="\272\276" name3="\336\372\316" === TYPE dir; NAMESPACE user *** set/get one initially empty attribute # file: /mnt/scratch/dir # namespace: user name *** overwrite empty, set several new attributes *** fetch several attribute names and values (hex) # file: /mnt/scratch/dir # namespace: user name=0xbabe name2=0xdeadbeef name3=0xdeface *** fetch several attribute names and values (base64) # file: /mnt/scratch/dir # namespace: user name=0sur4= name2=0s3q2+7w== name3=0s3vrO *** shrink value of an existing attribute # file: /mnt/scratch/dir # namespace: user name=0xbabe name2=0xdeaf name3=0xdeface *** grow value of existing attribute # file: /mnt/scratch/dir # namespace: user name=0xbabe name2=0xdecade name3=0xdeface *** set an empty value for second attribute # file: /mnt/scratch/dir # namespace: user name2 *** overwrite empty value # file: /mnt/scratch/dir # namespace: user name2=0xcafe *** remove attribute /mnt/scratch/dir: name2: No such attribute *** final list (strings, type=dir, nsp=user) # file: /mnt/scratch/dir # namespace: user name="\272\276" name3="\336\372\316" === TYPE lnk; NAMESPACE user *** set/get one initially empty attribute # file: /mnt/scratch/lnk # namespace: user name *** overwrite empty, set several new attributes *** fetch several attribute names and values (hex) # file: /mnt/scratch/lnk # namespace: user name=0xbabe name2=0xdeadbeef name3=0xdeface *** fetch several attribute names and values (base64) # file: /mnt/scratch/lnk # namespace: user name=0sur4= name2=0s3q2+7w== name3=0s3vrO *** shrink value of an existing attribute # file: /mnt/scratch/lnk # namespace: user name=0xbabe name2=0xdeaf name3=0xdeface *** grow value of existing attribute # file: /mnt/scratch/lnk # namespace: user name=0xbabe name2=0xdecade name3=0xdeface *** set an empty value for second attribute # file: /mnt/scratch/lnk # namespace: user name2 *** overwrite empty value # file: /mnt/scratch/lnk # namespace: user name2=0xcafe *** remove attribute /mnt/scratch/lnk: name2: No such attribute *** final list (strings, type=lnk, nsp=user) # file: /mnt/scratch/lnk # namespace: user name="\272\276" name3="\336\372\316" === TYPE dev/b; NAMESPACE user *** set/get one initially empty attribute # file: /mnt/scratch/dev/b # namespace: user name *** overwrite empty, set several new attributes *** fetch several attribute names and values (hex) # file: /mnt/scratch/dev/b # namespace: user name=0xbabe name2=0xdeadbeef name3=0xdeface *** fetch several attribute names and values (base64) # file: /mnt/scratch/dev/b # namespace: user name=0sur4= name2=0s3q2+7w== name3=0s3vrO *** shrink value of an existing attribute # file: /mnt/scratch/dev/b # namespace: user name=0xbabe name2=0xdeaf name3=0xdeface *** grow value of existing attribute # file: /mnt/scratch/dev/b # namespace: user name=0xbabe name2=0xdecade name3=0xdeface *** set an empty value for second attribute # file: /mnt/scratch/dev/b # namespace: user name2 *** overwrite empty value # file: /mnt/scratch/dev/b # namespace: user name2=0xcafe *** remove attribute /mnt/scratch/dev/b: name2: No such attribute *** final list (strings, type=dev/b, nsp=user) # file: /mnt/scratch/dev/b # namespace: user name="\272\276" name3="\336\372\316" === TYPE dev/c; NAMESPACE user *** set/get one initially empty attribute # file: /mnt/scratch/dev/c # namespace: user name *** overwrite empty, set several new attributes *** fetch several attribute names and values (hex) # file: /mnt/scratch/dev/c # namespace: user name=0xbabe name2=0xdeadbeef name3=0xdeface *** fetch several attribute names and values (base64) # file: /mnt/scratch/dev/c # namespace: user name=0sur4= name2=0s3q2+7w== name3=0s3vrO *** shrink value of an existing attribute # file: /mnt/scratch/dev/c # namespace: user name=0xbabe name2=0xdeaf name3=0xdeface *** grow value of existing attribute # file: /mnt/scratch/dev/c # namespace: user name=0xbabe name2=0xdecade name3=0xdeface *** set an empty value for second attribute # file: /mnt/scratch/dev/c # namespace: user name2 *** overwrite empty value # file: /mnt/scratch/dev/c # namespace: user name2=0xcafe *** remove attribute /mnt/scratch/dev/c: name2: No such attribute *** final list (strings, type=dev/c, nsp=user) # file: /mnt/scratch/dev/c # namespace: user name="\272\276" name3="\336\372\316" === TYPE dev/p; NAMESPACE user *** set/get one initially empty attribute # file: /mnt/scratch/dev/p # namespace: user name *** overwrite empty, set several new attributes *** fetch several attribute names and values (hex) # file: /mnt/scratch/dev/p # namespace: user name=0xbabe name2=0xdeadbeef name3=0xdeface *** fetch several attribute names and values (base64) # file: /mnt/scratch/dev/p # namespace: user name=0sur4= name2=0s3q2+7w== name3=0s3vrO *** shrink value of an existing attribute # file: /mnt/scratch/dev/p # namespace: user name=0xbabe name2=0xdeaf name3=0xdeface *** grow value of existing attribute # file: /mnt/scratch/dev/p # namespace: user name=0xbabe name2=0xdecade name3=0xdeface *** set an empty value for second attribute # file: /mnt/scratch/dev/p # namespace: user name2 *** overwrite empty value # file: /mnt/scratch/dev/p # namespace: user name2=0xcafe *** remove attribute /mnt/scratch/dev/p: name2: No such attribute *** final list (strings, type=dev/p, nsp=user) # file: /mnt/scratch/dev/p # namespace: user name="\272\276" name3="\336\372\316" === TYPE reg; NAMESPACE root *** set/get one initially empty attribute # file: /mnt/scratch/reg # namespace: root name *** overwrite empty, set several new attributes *** fetch several attribute names and values (hex) # file: /mnt/scratch/reg # namespace: root name=0xbabe name2=0xdeadbeef name3=0xdeface *** fetch several attribute names and values (base64) # file: /mnt/scratch/reg # namespace: root name=0sur4= name2=0s3q2+7w== name3=0s3vrO *** shrink value of an existing attribute # file: /mnt/scratch/reg # namespace: root name=0xbabe name2=0xdeaf name3=0xdeface *** grow value of existing attribute # file: /mnt/scratch/reg # namespace: root name=0xbabe name2=0xdecade name3=0xdeface *** set an empty value for second attribute # file: /mnt/scratch/reg # namespace: root name2 *** overwrite empty value # file: /mnt/scratch/reg # namespace: root name2=0xcafe *** remove attribute /mnt/scratch/reg: name2: No such attribute *** final list (strings, type=reg, nsp=root) # file: /mnt/scratch/reg # namespace: user name="\272\276" name3="\336\372\316" # file: /mnt/scratch/reg # namespace: root name="\272\276" name3="\336\372\316" === TYPE dir; NAMESPACE root *** set/get one initially empty attribute # file: /mnt/scratch/dir # namespace: root name *** overwrite empty, set several new attributes *** fetch several attribute names and values (hex) # file: /mnt/scratch/dir # namespace: root name=0xbabe name2=0xdeadbeef name3=0xdeface *** fetch several attribute names and values (base64) # file: /mnt/scratch/dir # namespace: root name=0sur4= name2=0s3q2+7w== name3=0s3vrO *** shrink value of an existing attribute # file: /mnt/scratch/dir # namespace: root name=0xbabe name2=0xdeaf name3=0xdeface *** grow value of existing attribute # file: /mnt/scratch/dir # namespace: root name=0xbabe name2=0xdecade name3=0xdeface *** set an empty value for second attribute # file: /mnt/scratch/dir # namespace: root name2 *** overwrite empty value # file: /mnt/scratch/dir # namespace: root name2=0xcafe *** remove attribute /mnt/scratch/dir: name2: No such attribute *** final list (strings, type=dir, nsp=root) # file: /mnt/scratch/dir # namespace: user name="\272\276" name3="\336\372\316" # file: /mnt/scratch/dir # namespace: root name="\272\276" name3="\336\372\316" === TYPE lnk; NAMESPACE root *** set/get one initially empty attribute # file: /mnt/scratch/lnk # namespace: root name *** overwrite empty, set several new attributes *** fetch several attribute names and values (hex) # file: /mnt/scratch/lnk # namespace: root name=0xbabe name2=0xdeadbeef name3=0xdeface *** fetch several attribute names and values (base64) # file: /mnt/scratch/lnk # namespace: root name=0sur4= name2=0s3q2+7w== name3=0s3vrO *** shrink value of an existing attribute # file: /mnt/scratch/lnk # namespace: root name=0xbabe name2=0xdeaf name3=0xdeface *** grow value of existing attribute # file: /mnt/scratch/lnk # namespace: root name=0xbabe name2=0xdecade name3=0xdeface *** set an empty value for second attribute # file: /mnt/scratch/lnk # namespace: root name2 *** overwrite empty value # file: /mnt/scratch/lnk # namespace: root name2=0xcafe *** remove attribute /mnt/scratch/lnk: name2: No such attribute *** final list (strings, type=lnk, nsp=root) # file: /mnt/scratch/lnk # namespace: user name="\272\276" name3="\336\372\316" # file: /mnt/scratch/lnk # namespace: root name="\272\276" name3="\336\372\316" === TYPE dev/b; NAMESPACE root *** set/get one initially empty attribute # file: /mnt/scratch/dev/b # namespace: root name *** overwrite empty, set several new attributes *** fetch several attribute names and values (hex) # file: /mnt/scratch/dev/b # namespace: root name=0xbabe name2=0xdeadbeef name3=0xdeface *** fetch several attribute names and values (base64) # file: /mnt/scratch/dev/b # namespace: root name=0sur4= name2=0s3q2+7w== name3=0s3vrO *** shrink value of an existing attribute # file: /mnt/scratch/dev/b # namespace: root name=0xbabe name2=0xdeaf name3=0xdeface *** grow value of existing attribute # file: /mnt/scratch/dev/b # namespace: root name=0xbabe name2=0xdecade name3=0xdeface *** set an empty value for second attribute # file: /mnt/scratch/dev/b # namespace: root name2 *** overwrite empty value # file: /mnt/scratch/dev/b # namespace: root name2=0xcafe *** remove attribute /mnt/scratch/dev/b: name2: No such attribute *** final list (strings, type=dev/b, nsp=root) # file: /mnt/scratch/dev/b # namespace: user name="\272\276" name3="\336\372\316" # file: /mnt/scratch/dev/b # namespace: root name="\272\276" name3="\336\372\316" === TYPE dev/c; NAMESPACE root *** set/get one initially empty attribute # file: /mnt/scratch/dev/c # namespace: root name *** overwrite empty, set several new attributes *** fetch several attribute names and values (hex) # file: /mnt/scratch/dev/c # namespace: root name=0xbabe name2=0xdeadbeef name3=0xdeface *** fetch several attribute names and values (base64) # file: /mnt/scratch/dev/c # namespace: root name=0sur4= name2=0s3q2+7w== name3=0s3vrO *** shrink value of an existing attribute # file: /mnt/scratch/dev/c # namespace: root name=0xbabe name2=0xdeaf name3=0xdeface *** grow value of existing attribute # file: /mnt/scratch/dev/c # namespace: root name=0xbabe name2=0xdecade name3=0xdeface *** set an empty value for second attribute # file: /mnt/scratch/dev/c # namespace: root name2 *** overwrite empty value # file: /mnt/scratch/dev/c # namespace: root name2=0xcafe *** remove attribute /mnt/scratch/dev/c: name2: No such attribute *** final list (strings, type=dev/c, nsp=root) # file: /mnt/scratch/dev/c # namespace: user name="\272\276" name3="\336\372\316" # file: /mnt/scratch/dev/c # namespace: root name="\272\276" name3="\336\372\316" === TYPE dev/p; NAMESPACE root *** set/get one initially empty attribute # file: /mnt/scratch/dev/p # namespace: root name *** overwrite empty, set several new attributes *** fetch several attribute names and values (hex) # file: /mnt/scratch/dev/p # namespace: root name=0xbabe name2=0xdeadbeef name3=0xdeface *** fetch several attribute names and values (base64) # file: /mnt/scratch/dev/p # namespace: root name=0sur4= name2=0s3q2+7w== name3=0s3vrO *** shrink value of an existing attribute # file: /mnt/scratch/dev/p # namespace: root name=0xbabe name2=0xdeaf name3=0xdeface *** grow value of existing attribute # file: /mnt/scratch/dev/p # namespace: root name=0xbabe name2=0xdecade name3=0xdeface *** set an empty value for second attribute # file: /mnt/scratch/dev/p # namespace: root name2 *** overwrite empty value # file: /mnt/scratch/dev/p # namespace: root name2=0xcafe *** remove attribute /mnt/scratch/dev/p: name2: No such attribute *** final list (strings, type=dev/p, nsp=root) # file: /mnt/scratch/dev/p # namespace: user name="\272\276" name3="\336\372\316" # file: /mnt/scratch/dev/p # namespace: root name="\272\276" name3="\336\372\316" *** extend test bed /mnt/scratch /mnt/scratch/descend /mnt/scratch/descend/and /mnt/scratch/descend/down /mnt/scratch/descend/down/here /mnt/scratch/dev /mnt/scratch/dev/b /mnt/scratch/dev/c /mnt/scratch/dev/p /mnt/scratch/dir /mnt/scratch/here /mnt/scratch/here/up /mnt/scratch/here/up/ascend /mnt/scratch/lnk /mnt/scratch/reg *** forward directory descent with us following symlinks # file: /mnt/scratch/reg # namespace: user name=0xbabe name3=0xdeface # file: /mnt/scratch/reg # namespace: root name=0xbabe name3=0xdeface # file: /mnt/scratch/dir # namespace: user name=0xbabe name3=0xdeface # file: /mnt/scratch/dir # namespace: root name=0xbabe name3=0xdeface # file: /mnt/scratch/lnk # namespace: user name=0xbabe name3=0xdeface # file: /mnt/scratch/lnk # namespace: root name=0xbabe name3=0xdeface # file: /mnt/scratch/dev/b # namespace: user name=0xbabe name3=0xdeface # file: /mnt/scratch/dev/b # namespace: root name=0xbabe name3=0xdeface # file: /mnt/scratch/dev/c # namespace: user name=0xbabe name3=0xdeface # file: /mnt/scratch/dev/c # namespace: root name=0xbabe name3=0xdeface # file: /mnt/scratch/dev/p # namespace: user name=0xbabe name3=0xdeface # file: /mnt/scratch/dev/p # namespace: root name=0xbabe name3=0xdeface # file: /mnt/scratch/here # namespace: root 9=0x3837 a=0x6263 # file: /mnt/scratch/here/up # namespace: root 9=0x3837 a=0x6263 # file: /mnt/scratch/here/up/ascend # namespace: root 9=0x3837 a=0x6263 # file: /mnt/scratch/descend # namespace: user 1=0x3233 x=0x797a # file: /mnt/scratch/descend/down # namespace: user 1=0x3233 x=0x797a # file: /mnt/scratch/descend/down/here # namespace: user 1=0x3233 x=0x797a # file: /mnt/scratch/descend/and/ascend # namespace: root 9=0x3837 a=0x6263 *** reverse directory descent with us following symlinks # file: /mnt/scratch/reg # namespace: user name=0xbabe name3=0xdeface # file: /mnt/scratch/reg # namespace: root name=0xbabe name3=0xdeface # file: /mnt/scratch/dir # namespace: user name=0xbabe name3=0xdeface # file: /mnt/scratch/dir # namespace: root name=0xbabe name3=0xdeface # file: /mnt/scratch/lnk # namespace: user name=0xbabe name3=0xdeface # file: /mnt/scratch/lnk # namespace: root name=0xbabe name3=0xdeface # file: /mnt/scratch/dev/b # namespace: user name=0xbabe name3=0xdeface # file: /mnt/scratch/dev/b # namespace: root name=0xbabe name3=0xdeface # file: /mnt/scratch/dev/c # namespace: user name=0xbabe name3=0xdeface # file: /mnt/scratch/dev/c # namespace: root name=0xbabe name3=0xdeface # file: /mnt/scratch/dev/p # namespace: user name=0xbabe name3=0xdeface # file: /mnt/scratch/dev/p # namespace: root name=0xbabe name3=0xdeface # file: /mnt/scratch/here/up/ascend # namespace: root 9=0x3837 a=0x6263 # file: /mnt/scratch/here/up # namespace: root 9=0x3837 a=0x6263 # file: /mnt/scratch/here # namespace: root 9=0x3837 a=0x6263 # file: /mnt/scratch/descend/down/here # namespace: user 1=0x3233 x=0x797a # file: /mnt/scratch/descend/down # namespace: user 1=0x3233 x=0x797a # file: /mnt/scratch/descend/and/ascend # namespace: root 9=0x3837 a=0x6263 # file: /mnt/scratch/descend # namespace: user 1=0x3233 x=0x797a *** forward directory descent without following symlinks # file: /mnt/scratch/reg # namespace: user name=0xbabe name3=0xdeface # file: /mnt/scratch/reg # namespace: root name=0xbabe name3=0xdeface # file: /mnt/scratch/dir # namespace: user name=0xbabe name3=0xdeface # file: /mnt/scratch/dir # namespace: root name=0xbabe name3=0xdeface # file: /mnt/scratch/dev/b # namespace: user name=0xbabe name3=0xdeface # file: /mnt/scratch/dev/b # namespace: root name=0xbabe name3=0xdeface # file: /mnt/scratch/dev/c # namespace: user name=0xbabe name3=0xdeface # file: /mnt/scratch/dev/c # namespace: root name=0xbabe name3=0xdeface # file: /mnt/scratch/dev/p # namespace: user name=0xbabe name3=0xdeface # file: /mnt/scratch/dev/p # namespace: root name=0xbabe name3=0xdeface # file: /mnt/scratch/here # namespace: root 9=0x3837 a=0x6263 # file: /mnt/scratch/here/up # namespace: root 9=0x3837 a=0x6263 # file: /mnt/scratch/here/up/ascend # namespace: root 9=0x3837 a=0x6263 # file: /mnt/scratch/descend # namespace: user 1=0x3233 x=0x797a # file: /mnt/scratch/descend/down # namespace: user 1=0x3233 x=0x797a # file: /mnt/scratch/descend/down/here # namespace: user 1=0x3233 x=0x797a *** reverse directory descent without following symlinks # file: /mnt/scratch/reg # namespace: user name=0xbabe name3=0xdeface # file: /mnt/scratch/reg # namespace: root name=0xbabe name3=0xdeface # file: /mnt/scratch/dir # namespace: user name=0xbabe name3=0xdeface # file: /mnt/scratch/dir # namespace: root name=0xbabe name3=0xdeface # file: /mnt/scratch/dev/b # namespace: user name=0xbabe name3=0xdeface # file: /mnt/scratch/dev/b # namespace: root name=0xbabe name3=0xdeface # file: /mnt/scratch/dev/c # namespace: user name=0xbabe name3=0xdeface # file: /mnt/scratch/dev/c # namespace: root name=0xbabe name3=0xdeface # file: /mnt/scratch/dev/p # namespace: user name=0xbabe name3=0xdeface # file: /mnt/scratch/dev/p # namespace: root name=0xbabe name3=0xdeface # file: /mnt/scratch/here/up/ascend # namespace: root 9=0x3837 a=0x6263 # file: /mnt/scratch/here/up # namespace: root 9=0x3837 a=0x6263 # file: /mnt/scratch/here # namespace: root 9=0x3837 a=0x6263 # file: /mnt/scratch/descend/down/here # namespace: user 1=0x3233 x=0x797a # file: /mnt/scratch/descend/down # namespace: user 1=0x3233 x=0x797a # file: /mnt/scratch/descend # namespace: user 1=0x3233 x=0x797a *** backup everything *** clear out the scratch device *** reset test bed with no extended attributes *** create test bed /mnt/scratch /mnt/scratch/dev /mnt/scratch/dev/b /mnt/scratch/dev/c /mnt/scratch/dev/p /mnt/scratch/dir /mnt/scratch/lnk /mnt/scratch/reg *** extend test bed /mnt/scratch /mnt/scratch/descend /mnt/scratch/descend/and /mnt/scratch/descend/down /mnt/scratch/descend/down/here /mnt/scratch/dev /mnt/scratch/dev/b /mnt/scratch/dev/c /mnt/scratch/dev/p /mnt/scratch/dir /mnt/scratch/here /mnt/scratch/here/up /mnt/scratch/here/up/ascend /mnt/scratch/lnk /mnt/scratch/reg *** restore everything *** compare before and after backups *** unmount