[BACK]Return to attr.test CVS log [TXT][DIR] Up to [Development] / xfs-cmds / attr / test

File: [Development] / xfs-cmds / attr / test / attr.test (download)

Revision 1.5, Sat Sep 7 00:20:21 2002 UTC (15 years, 1 month ago) by nathans
Branch: MAIN
CVS Tags: XFS-1_3_0pre1
Changes since 1.4: +12 -8 lines

Updates from AndreasG.

!
! Tests for extended attributes on ext2/ext3 file systems. The initial
! size checks and the file size checks are ext2/ext3 specific. The
! other setfattr/getfattr operations are designed to cover all special
! cases in the ext27ext3 kernel patches, but they should work on other
! filesystems as well.
!
! Execute this test using the `run' script in this directory:
!
!  $ run attr.text
!
! === try various valid and invalid names
$ touch f
$ setfattr -n user -v value f
setfattr: f: Operation not supported
$ setfattr -n user. -v value f
setfattr: f: Invalid argument
$ setfattr -n user.name f
$ getfattr -d f
# file: f
user.name

$ setfattr -n user.n -v value f
$ rm f
! === size checks, for an ext2/ext3 file system with a block size of 1K
$ touch f
$ setfattr -n user.name -v 968+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ f
$ setfattr -n user.name -v 969++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ f
setfattr: f: No space left on device
$ rm f
!
! Editing values
!
$ touch f
$ setfattr -n user.vvvvvvvvvvvv -v vvvvvvvvvvvv f
$ setfattr -n user.wwwwwwww -v wwwwwwww f
$ setfattr -n user.xxxx -v xxxx f
$ getfattr -d f
# file: f
user.vvvvvvvvvvvv="vvvvvvvvvvvv"
user.wwwwwwww="wwwwwwww"
user.xxxx="xxxx"

$ setfattr -n user.wwwwwwww -v wwww f
$ getfattr -d f
# file: f
user.vvvvvvvvvvvv="vvvvvvvvvvvv"
user.wwwwwwww="wwww"
user.xxxx="xxxx"

$ setfattr -n user.xxxx -v xxxxxxxx f
$ getfattr -d f
# file: f
user.vvvvvvvvvvvv="vvvvvvvvvvvv"
user.wwwwwwww="wwww"
user.xxxx="xxxxxxxx"

$ rm f
!
! Value encodings
!
$ touch f
$ setfattr -n user.name -v 0xbabe f
$ setfattr -n user.name2 -v 0s3q2+7w== f
$ setfattr -n user.name3 -v 0xdeface f
$ getfattr -d -e hex f
# file: f
user.name=0xbabe
user.name2=0xdeadbeef
user.name3=0xdeface

$ getfattr -d -e base64 f
# file: f
user.name=0sur4=
user.name2=0s3q2+7w==
user.name3=0s3vrO

$ getfattr -d -e text f
# file: f
user.name="º¾"
user.name2="Þ­¾ï"
user.name3="ÞúÎ"

$ rm f
!
! Everything with one file
!
$ touch f
$ setfattr -n user.novalue f
$ setfattr -n user.somename -v somevalue f
$ setfattr -n user.somename -v somevalue f
$ setfattr -n user.longername -v longervalue f
$ setfattr -n user.short -v value f
$ setfattr -n user.novalue-yet f
$ ls -s f
   1 f
$ getfattr -d f
# file: f
user.longername="longervalue"
user.novalue
user.novalue-yet
user.short="value"
user.somename="somevalue"

$ setfattr -n user.novalue-yet -v avalue-now f
$ getfattr -d f
# file: f
user.longername="longervalue"
user.novalue
user.novalue-yet="avalue-now"
user.short="value"
user.somename="somevalue"

$ setfattr -x user.noname f
setfattr: f: No such attribute
$ setfattr -x user.somename f
$ setfattr -x user.short f
$ getfattr -d f
# file: f
user.longername="longervalue"
user.novalue
user.novalue-yet="avalue-now"

$ setfattr -x user.longername f
$ setfattr -x user.novalue f
$ setfattr -x user.novalue-yet f
$ getfattr -d f
$ ls -s f
   0 f
$ rm f
!
! Test extended attribute block sharing
!
$ touch f g h
$ setfattr -n user.novalue f g h
$ ls -s f g h
   1 f
   1 g
   1 h
$ setfattr -n user.name -v value f
$ ls -s f g h
   1 f
   1 g
   1 h
$ getfattr -d f g h
# file: f
user.name="value"
user.novalue

# file: g
user.novalue

# file: h
user.novalue

$ setfattr -n user.name -v value g
$ ls -s f g h
   1 f
   1 g
   1 h
$ setfattr -x user.novalue h
$ ls -s f g h
   1 f
   1 g
   0 h
$ getfattr -d f g h
# file: f
user.name="value"
user.novalue

# file: g
user.name="value"
user.novalue

$ setfattr -n user.name -v other-value g
$ setfattr -n user.name -v value g
$ setfattr -x user.name f g
$ setfattr -x user.novalue f g
$ ls -s f g h
   0 f
   0 g
   0 h
$ rm f g h
!
! Attributes of symlinks vs. the files pointed to
!
$ touch f
$ ln -s f l
$ setfattr -n user.filename -v f l
$ setfattr -n user.filename -v l l
$ setfattr -h -n user.filename -v l l
setfattr: l: Operation not permitted
$ getfattr -d f l
# file: f
user.filename="l"

# file: l
user.filename="l"

! Some POSIX ACL tests...
$ setfattr -n system.posix_acl_access -v 0sAgAAAAEABgD/////AgAGAAEAAAAEAAQA/////xAABgD/////IAAEAP////8= f
$ setfattr -n system.posix_acl_accessFOO -v 0sAgAAAAEABgD/////AgAGAAEAAAAEAAQA/////xAABgD/////IAAEAP////8= f
setfattr: f: Invalid argument
$ rm f l