QA output created by 062
*** create test bed
SCRATCH_MNT
SCRATCH_MNT/dev
SCRATCH_MNT/dev/b
SCRATCH_MNT/dev/c
SCRATCH_MNT/dev/p
SCRATCH_MNT/dir
SCRATCH_MNT/lnk
SCRATCH_MNT/reg

=== TYPE reg; NAMESPACE user

*** set/get one initially empty attribute
# file: SCRATCH_MNT/reg
user.name

*** overwrite empty, set several new attributes
*** fetch several attribute names and values (hex)
# file: SCRATCH_MNT/reg
user.name=0xbabe
user.name2=0xdeadbeef
user.name3=0xdeface

*** fetch several attribute names and values (base64)
# file: SCRATCH_MNT/reg
user.name=0sur4=
user.name2=0s3q2+7w==
user.name3=0s3vrO

*** shrink value of an existing attribute
# file: SCRATCH_MNT/reg
user.name=0xbabe
user.name2=0xdeaf
user.name3=0xdeface

*** grow value of existing attribute
# file: SCRATCH_MNT/reg
user.name=0xbabe
user.name2=0xdecade
user.name3=0xdeface

*** set an empty value for second attribute
# file: SCRATCH_MNT/reg
user.name2

*** overwrite empty value
# file: SCRATCH_MNT/reg
user.name2=0xcafe

*** remove attribute
SCRATCH_MNT/reg: user.name2: No such attribute or operation not permitted
*** final list (strings, type=reg, nsp=user)
# file: SCRATCH_MNT/reg
user.name=0xbabe
user.name3=0xdeface


=== TYPE dir; NAMESPACE user

*** set/get one initially empty attribute
# file: SCRATCH_MNT/dir
user.name

*** overwrite empty, set several new attributes
*** fetch several attribute names and values (hex)
# file: SCRATCH_MNT/dir
user.name=0xbabe
user.name2=0xdeadbeef
user.name3=0xdeface

*** fetch several attribute names and values (base64)
# file: SCRATCH_MNT/dir
user.name=0sur4=
user.name2=0s3q2+7w==
user.name3=0s3vrO

*** shrink value of an existing attribute
# file: SCRATCH_MNT/dir
user.name=0xbabe
user.name2=0xdeaf
user.name3=0xdeface

*** grow value of existing attribute
# file: SCRATCH_MNT/dir
user.name=0xbabe
user.name2=0xdecade
user.name3=0xdeface

*** set an empty value for second attribute
# file: SCRATCH_MNT/dir
user.name2

*** overwrite empty value
# file: SCRATCH_MNT/dir
user.name2=0xcafe

*** remove attribute
SCRATCH_MNT/dir: user.name2: No such attribute or operation not permitted
*** final list (strings, type=dir, nsp=user)
# file: SCRATCH_MNT/dir
user.name=0xbabe
user.name3=0xdeface


=== TYPE lnk; NAMESPACE user

*** set/get one initially empty attribute
setfattr: SCRATCH_MNT/lnk: Operation not permitted
*** overwrite empty, set several new attributes
setfattr: SCRATCH_MNT/lnk: Operation not permitted
setfattr: SCRATCH_MNT/lnk: Operation not permitted
setfattr: SCRATCH_MNT/lnk: Operation not permitted
*** fetch several attribute names and values (hex)
*** fetch several attribute names and values (base64)
*** shrink value of an existing attribute
setfattr: SCRATCH_MNT/lnk: Operation not permitted
*** grow value of existing attribute
setfattr: SCRATCH_MNT/lnk: Operation not permitted
*** set an empty value for second attribute
setfattr: SCRATCH_MNT/lnk: Operation not permitted
SCRATCH_MNT/lnk: user.name2: No such attribute or operation not permitted
*** overwrite empty value
setfattr: SCRATCH_MNT/lnk: Operation not permitted
SCRATCH_MNT/lnk: user.name2: No such attribute or operation not permitted
*** remove attribute
setfattr: SCRATCH_MNT/lnk: Operation not permitted
SCRATCH_MNT/lnk: user.name2: No such attribute or operation not permitted
*** final list (strings, type=lnk, nsp=user)

=== TYPE dev/b; NAMESPACE user

*** set/get one initially empty attribute
setfattr: SCRATCH_MNT/dev/b: Operation not permitted
*** overwrite empty, set several new attributes
setfattr: SCRATCH_MNT/dev/b: Operation not permitted
setfattr: SCRATCH_MNT/dev/b: Operation not permitted
setfattr: SCRATCH_MNT/dev/b: Operation not permitted
*** fetch several attribute names and values (hex)
*** fetch several attribute names and values (base64)
*** shrink value of an existing attribute
setfattr: SCRATCH_MNT/dev/b: Operation not permitted
*** grow value of existing attribute
setfattr: SCRATCH_MNT/dev/b: Operation not permitted
*** set an empty value for second attribute
setfattr: SCRATCH_MNT/dev/b: Operation not permitted
SCRATCH_MNT/dev/b: user.name2: No such attribute or operation not permitted
*** overwrite empty value
setfattr: SCRATCH_MNT/dev/b: Operation not permitted
SCRATCH_MNT/dev/b: user.name2: No such attribute or operation not permitted
*** remove attribute
setfattr: SCRATCH_MNT/dev/b: Operation not permitted
SCRATCH_MNT/dev/b: user.name2: No such attribute or operation not permitted
*** final list (strings, type=dev/b, nsp=user)

=== TYPE dev/c; NAMESPACE user

*** set/get one initially empty attribute
setfattr: SCRATCH_MNT/dev/c: Operation not permitted
*** overwrite empty, set several new attributes
setfattr: SCRATCH_MNT/dev/c: Operation not permitted
setfattr: SCRATCH_MNT/dev/c: Operation not permitted
setfattr: SCRATCH_MNT/dev/c: Operation not permitted
*** fetch several attribute names and values (hex)
*** fetch several attribute names and values (base64)
*** shrink value of an existing attribute
setfattr: SCRATCH_MNT/dev/c: Operation not permitted
*** grow value of existing attribute
setfattr: SCRATCH_MNT/dev/c: Operation not permitted
*** set an empty value for second attribute
setfattr: SCRATCH_MNT/dev/c: Operation not permitted
SCRATCH_MNT/dev/c: user.name2: No such attribute or operation not permitted
*** overwrite empty value
setfattr: SCRATCH_MNT/dev/c: Operation not permitted
SCRATCH_MNT/dev/c: user.name2: No such attribute or operation not permitted
*** remove attribute
setfattr: SCRATCH_MNT/dev/c: Operation not permitted
SCRATCH_MNT/dev/c: user.name2: No such attribute or operation not permitted
*** final list (strings, type=dev/c, nsp=user)

=== TYPE dev/p; NAMESPACE user

*** set/get one initially empty attribute
setfattr: SCRATCH_MNT/dev/p: Operation not permitted
*** overwrite empty, set several new attributes
setfattr: SCRATCH_MNT/dev/p: Operation not permitted
setfattr: SCRATCH_MNT/dev/p: Operation not permitted
setfattr: SCRATCH_MNT/dev/p: Operation not permitted
*** fetch several attribute names and values (hex)
*** fetch several attribute names and values (base64)
*** shrink value of an existing attribute
setfattr: SCRATCH_MNT/dev/p: Operation not permitted
*** grow value of existing attribute
setfattr: SCRATCH_MNT/dev/p: Operation not permitted
*** set an empty value for second attribute
setfattr: SCRATCH_MNT/dev/p: Operation not permitted
SCRATCH_MNT/dev/p: user.name2: No such attribute or operation not permitted
*** overwrite empty value
setfattr: SCRATCH_MNT/dev/p: Operation not permitted
SCRATCH_MNT/dev/p: user.name2: No such attribute or operation not permitted
*** remove attribute
setfattr: SCRATCH_MNT/dev/p: Operation not permitted
SCRATCH_MNT/dev/p: user.name2: No such attribute or operation not permitted
*** final list (strings, type=dev/p, nsp=user)

=== TYPE reg; NAMESPACE trusted

*** set/get one initially empty attribute
# file: SCRATCH_MNT/reg
trusted.name

*** overwrite empty, set several new attributes
*** fetch several attribute names and values (hex)
# file: SCRATCH_MNT/reg
trusted.name=0xbabe
trusted.name2=0xdeadbeef
trusted.name3=0xdeface

*** fetch several attribute names and values (base64)
# file: SCRATCH_MNT/reg
trusted.name=0sur4=
trusted.name2=0s3q2+7w==
trusted.name3=0s3vrO

*** shrink value of an existing attribute
# file: SCRATCH_MNT/reg
trusted.name=0xbabe
trusted.name2=0xdeaf
trusted.name3=0xdeface

*** grow value of existing attribute
# file: SCRATCH_MNT/reg
trusted.name=0xbabe
trusted.name2=0xdecade
trusted.name3=0xdeface

*** set an empty value for second attribute
# file: SCRATCH_MNT/reg
trusted.name2

*** overwrite empty value
# file: SCRATCH_MNT/reg
trusted.name2=0xcafe

*** remove attribute
SCRATCH_MNT/reg: trusted.name2: No such attribute or operation not permitted
*** final list (strings, type=reg, nsp=trusted)
# file: SCRATCH_MNT/reg
trusted.name=0xbabe
trusted.name3=0xdeface
user.name=0xbabe
user.name3=0xdeface


=== TYPE dir; NAMESPACE trusted

*** set/get one initially empty attribute
# file: SCRATCH_MNT/dir
trusted.name

*** overwrite empty, set several new attributes
*** fetch several attribute names and values (hex)
# file: SCRATCH_MNT/dir
trusted.name=0xbabe
trusted.name2=0xdeadbeef
trusted.name3=0xdeface

*** fetch several attribute names and values (base64)
# file: SCRATCH_MNT/dir
trusted.name=0sur4=
trusted.name2=0s3q2+7w==
trusted.name3=0s3vrO

*** shrink value of an existing attribute
# file: SCRATCH_MNT/dir
trusted.name=0xbabe
trusted.name2=0xdeaf
trusted.name3=0xdeface

*** grow value of existing attribute
# file: SCRATCH_MNT/dir
trusted.name=0xbabe
trusted.name2=0xdecade
trusted.name3=0xdeface

*** set an empty value for second attribute
# file: SCRATCH_MNT/dir
trusted.name2

*** overwrite empty value
# file: SCRATCH_MNT/dir
trusted.name2=0xcafe

*** remove attribute
SCRATCH_MNT/dir: trusted.name2: No such attribute or operation not permitted
*** final list (strings, type=dir, nsp=trusted)
# file: SCRATCH_MNT/dir
trusted.name=0xbabe
trusted.name3=0xdeface
user.name=0xbabe
user.name3=0xdeface


=== TYPE lnk; NAMESPACE trusted

*** set/get one initially empty attribute
# file: SCRATCH_MNT/lnk
trusted.name

*** overwrite empty, set several new attributes
*** fetch several attribute names and values (hex)
# file: SCRATCH_MNT/lnk
trusted.name=0xbabe
trusted.name2=0xdeadbeef
trusted.name3=0xdeface

*** fetch several attribute names and values (base64)
# file: SCRATCH_MNT/lnk
trusted.name=0sur4=
trusted.name2=0s3q2+7w==
trusted.name3=0s3vrO

*** shrink value of an existing attribute
# file: SCRATCH_MNT/lnk
trusted.name=0xbabe
trusted.name2=0xdeaf
trusted.name3=0xdeface

*** grow value of existing attribute
# file: SCRATCH_MNT/lnk
trusted.name=0xbabe
trusted.name2=0xdecade
trusted.name3=0xdeface

*** set an empty value for second attribute
# file: SCRATCH_MNT/lnk
trusted.name2

*** overwrite empty value
# file: SCRATCH_MNT/lnk
trusted.name2=0xcafe

*** remove attribute
SCRATCH_MNT/lnk: trusted.name2: No such attribute or operation not permitted
*** final list (strings, type=lnk, nsp=trusted)
# file: SCRATCH_MNT/lnk
trusted.name=0xbabe
trusted.name3=0xdeface


=== TYPE dev/b; NAMESPACE trusted

*** set/get one initially empty attribute
# file: SCRATCH_MNT/dev/b
trusted.name

*** overwrite empty, set several new attributes
*** fetch several attribute names and values (hex)
# file: SCRATCH_MNT/dev/b
trusted.name=0xbabe
trusted.name2=0xdeadbeef
trusted.name3=0xdeface

*** fetch several attribute names and values (base64)
# file: SCRATCH_MNT/dev/b
trusted.name=0sur4=
trusted.name2=0s3q2+7w==
trusted.name3=0s3vrO

*** shrink value of an existing attribute
# file: SCRATCH_MNT/dev/b
trusted.name=0xbabe
trusted.name2=0xdeaf
trusted.name3=0xdeface

*** grow value of existing attribute
# file: SCRATCH_MNT/dev/b
trusted.name=0xbabe
trusted.name2=0xdecade
trusted.name3=0xdeface

*** set an empty value for second attribute
# file: SCRATCH_MNT/dev/b
trusted.name2

*** overwrite empty value
# file: SCRATCH_MNT/dev/b
trusted.name2=0xcafe

*** remove attribute
SCRATCH_MNT/dev/b: trusted.name2: No such attribute or operation not permitted
*** final list (strings, type=dev/b, nsp=trusted)
# file: SCRATCH_MNT/dev/b
trusted.name=0xbabe
trusted.name3=0xdeface


=== TYPE dev/c; NAMESPACE trusted

*** set/get one initially empty attribute
# file: SCRATCH_MNT/dev/c
trusted.name

*** overwrite empty, set several new attributes
*** fetch several attribute names and values (hex)
# file: SCRATCH_MNT/dev/c
trusted.name=0xbabe
trusted.name2=0xdeadbeef
trusted.name3=0xdeface

*** fetch several attribute names and values (base64)
# file: SCRATCH_MNT/dev/c
trusted.name=0sur4=
trusted.name2=0s3q2+7w==
trusted.name3=0s3vrO

*** shrink value of an existing attribute
# file: SCRATCH_MNT/dev/c
trusted.name=0xbabe
trusted.name2=0xdeaf
trusted.name3=0xdeface

*** grow value of existing attribute
# file: SCRATCH_MNT/dev/c
trusted.name=0xbabe
trusted.name2=0xdecade
trusted.name3=0xdeface

*** set an empty value for second attribute
# file: SCRATCH_MNT/dev/c
trusted.name2

*** overwrite empty value
# file: SCRATCH_MNT/dev/c
trusted.name2=0xcafe

*** remove attribute
SCRATCH_MNT/dev/c: trusted.name2: No such attribute or operation not permitted
*** final list (strings, type=dev/c, nsp=trusted)
# file: SCRATCH_MNT/dev/c
trusted.name=0xbabe
trusted.name3=0xdeface


=== TYPE dev/p; NAMESPACE trusted

*** set/get one initially empty attribute
# file: SCRATCH_MNT/dev/p
trusted.name

*** overwrite empty, set several new attributes
*** fetch several attribute names and values (hex)
# file: SCRATCH_MNT/dev/p
trusted.name=0xbabe
trusted.name2=0xdeadbeef
trusted.name3=0xdeface

*** fetch several attribute names and values (base64)
# file: SCRATCH_MNT/dev/p
trusted.name=0sur4=
trusted.name2=0s3q2+7w==
trusted.name3=0s3vrO

*** shrink value of an existing attribute
# file: SCRATCH_MNT/dev/p
trusted.name=0xbabe
trusted.name2=0xdeaf
trusted.name3=0xdeface

*** grow value of existing attribute
# file: SCRATCH_MNT/dev/p
trusted.name=0xbabe
trusted.name2=0xdecade
trusted.name3=0xdeface

*** set an empty value for second attribute
# file: SCRATCH_MNT/dev/p
trusted.name2

*** overwrite empty value
# file: SCRATCH_MNT/dev/p
trusted.name2=0xcafe

*** remove attribute
SCRATCH_MNT/dev/p: trusted.name2: No such attribute or operation not permitted
*** final list (strings, type=dev/p, nsp=trusted)
# file: SCRATCH_MNT/dev/p
trusted.name=0xbabe
trusted.name3=0xdeface



*** extend test bed
SCRATCH_MNT
SCRATCH_MNT/descend
SCRATCH_MNT/descend/and
SCRATCH_MNT/descend/down
SCRATCH_MNT/descend/down/here
SCRATCH_MNT/dev
SCRATCH_MNT/dev/b
SCRATCH_MNT/dev/c
SCRATCH_MNT/dev/p
SCRATCH_MNT/dir
SCRATCH_MNT/here
SCRATCH_MNT/here/up
SCRATCH_MNT/here/up/ascend
SCRATCH_MNT/lnk
SCRATCH_MNT/reg

*** directory descent with us following symlinks
# file: SCRATCH_MNT/descend
user.1=0x3233
user.x=0x797a

# file: SCRATCH_MNT/descend/and/ascend
trusted.9=0x3837
trusted.a=0x6263

# file: SCRATCH_MNT/descend/down
user.1=0x3233
user.x=0x797a

# file: SCRATCH_MNT/descend/down/here
user.1=0x3233
user.x=0x797a

# file: SCRATCH_MNT/dev/b
trusted.name=0xbabe
trusted.name3=0xdeface

# file: SCRATCH_MNT/dev/c
trusted.name=0xbabe
trusted.name3=0xdeface

# file: SCRATCH_MNT/dev/p
trusted.name=0xbabe
trusted.name3=0xdeface

# file: SCRATCH_MNT/dir
trusted.name=0xbabe
trusted.name3=0xdeface
user.name=0xbabe
user.name3=0xdeface

# file: SCRATCH_MNT/here
trusted.9=0x3837
trusted.a=0x6263

# file: SCRATCH_MNT/here/up
trusted.9=0x3837
trusted.a=0x6263

# file: SCRATCH_MNT/here/up/ascend
trusted.9=0x3837
trusted.a=0x6263

# file: SCRATCH_MNT/lnk
trusted.name=0xbabe
trusted.name3=0xdeface

# file: SCRATCH_MNT/reg
trusted.name=0xbabe
trusted.name3=0xdeface
user.name=0xbabe
user.name3=0xdeface


*** directory descent without following symlinks
# file: SCRATCH_MNT/descend
user.1=0x3233
user.x=0x797a

# file: SCRATCH_MNT/descend/down
user.1=0x3233
user.x=0x797a

# file: SCRATCH_MNT/descend/down/here
user.1=0x3233
user.x=0x797a

# file: SCRATCH_MNT/dev/b
trusted.name=0xbabe
trusted.name3=0xdeface

# file: SCRATCH_MNT/dev/c
trusted.name=0xbabe
trusted.name3=0xdeface

# file: SCRATCH_MNT/dev/p
trusted.name=0xbabe
trusted.name3=0xdeface

# file: SCRATCH_MNT/dir
trusted.name=0xbabe
trusted.name3=0xdeface
user.name=0xbabe
user.name3=0xdeface

# file: SCRATCH_MNT/here
trusted.9=0x3837
trusted.a=0x6263

# file: SCRATCH_MNT/here/up
trusted.9=0x3837
trusted.a=0x6263

# file: SCRATCH_MNT/here/up/ascend
trusted.9=0x3837
trusted.a=0x6263

# file: SCRATCH_MNT/lnk
trusted.name=0xbabe
trusted.name3=0xdeface

# file: SCRATCH_MNT/reg
trusted.name=0xbabe
trusted.name3=0xdeface
user.name=0xbabe
user.name3=0xdeface



*** backup everything
*** clear out the scratch device
*** reset test bed with no extended attributes
*** create test bed
SCRATCH_MNT
SCRATCH_MNT/dev
SCRATCH_MNT/dev/b
SCRATCH_MNT/dev/c
SCRATCH_MNT/dev/p
SCRATCH_MNT/dir
SCRATCH_MNT/lnk
SCRATCH_MNT/reg
*** extend test bed
SCRATCH_MNT
SCRATCH_MNT/descend
SCRATCH_MNT/descend/and
SCRATCH_MNT/descend/down
SCRATCH_MNT/descend/down/here
SCRATCH_MNT/dev
SCRATCH_MNT/dev/b
SCRATCH_MNT/dev/c
SCRATCH_MNT/dev/p
SCRATCH_MNT/dir
SCRATCH_MNT/here
SCRATCH_MNT/here/up
SCRATCH_MNT/here/up/ascend
SCRATCH_MNT/lnk
SCRATCH_MNT/reg
*** restore everything
*** compare before and after backups

*** unmount
