1 Tests for extended attributes on file systems.
3 Execute this test using the `run' script in this directory:
7 Try various valid and invalid names
13 $ setfattr -n user -v value f
14 > setfattr: f: Operation not supported
16 $ setfattr -n user. -v value f
17 > setfattr: f: Invalid argument
19 $ setfattr -n user.name f
25 $ setfattr -n user.n -v value f
32 $ setfattr -n user.vvvvvvvvvvvv -v vvvvvvvvvvvv f
33 $ setfattr -n user.wwwwwwww -v wwwwwwww f
34 $ setfattr -n user.xxxx -v xxxx f
37 > user.vvvvvvvvvvvv="vvvvvvvvvvvv"
38 > user.wwwwwwww="wwwwwwww"
42 $ setfattr -n user.wwwwwwww -v wwww f
45 > user.vvvvvvvvvvvv="vvvvvvvvvvvv"
46 > user.wwwwwwww="wwww"
50 $ setfattr -n user.xxxx -v xxxxxxxx f
53 > user.vvvvvvvvvvvv="vvvvvvvvvvvv"
54 > user.wwwwwwww="wwww"
55 > user.xxxx="xxxxxxxx"
63 $ setfattr -n user.name -v 0xbabe f
64 $ setfattr -n user.name2 -v 0s3q2+7w== f
65 $ setfattr -n user.name3 -v 0xdeface f
66 $ getfattr -d -e hex f
69 > user.name2=0xdeadbeef
73 $ getfattr -d -e base64 f
76 > user.name2=0s3q2+7w==
82 Everything with one file
85 $ setfattr -n user.novalue f
86 $ setfattr -n user.somename -v somevalue f
87 $ setfattr -n user.somename -v somevalue f
88 $ setfattr -n user.longername -v longervalue f
89 $ setfattr -n user.short -v value f
90 $ setfattr -n user.novalue-yet f
96 > user.longername="longervalue"
100 > user.somename="somevalue"
103 $ setfattr -n user.novalue-yet -v avalue-now f
106 > user.longername="longervalue"
108 > user.novalue-yet="avalue-now"
110 > user.somename="somevalue"
113 $ setfattr -x user.noname f
114 > setfattr: f: No such attribute
116 $ setfattr -x user.somename f
117 $ setfattr -x user.short f
120 > user.longername="longervalue"
122 > user.novalue-yet="avalue-now"
125 $ setfattr -x user.longername f
126 $ setfattr -x user.novalue f
127 $ setfattr -x user.novalue-yet f
134 Test extended attribute block sharing
137 $ setfattr -n user.novalue f g h
138 $ getfattr f g h | ../sort-getfattr-output
149 $ setfattr -n user.name -v value f
150 $ getfattr f g h | ../sort-getfattr-output
162 $ getfattr -d f g h | ../sort-getfattr-output
174 $ setfattr -n user.name -v value g
175 $ getfattr f g h | ../sort-getfattr-output
188 $ setfattr -x user.novalue h
189 $ getfattr f g h | ../sort-getfattr-output
201 Attributes of symlinks vs. the files pointed to
205 $ setfattr -n user.filename -v f l
206 $ setfattr -n user.filename -v l l
207 $ setfattr -h -n user.filename -v l l
208 > setfattr: l: Operation not permitted
210 $ getfattr -d f l | ../sort-getfattr-output
220 Tests for file name that contain special characters
223 $ setfattr -n user.name -v value "f "
231 Tests for attribute names that contains special characters
234 $ setfattr -n "user.sp ace" -v value f
235 $ setfattr -n "user.special " -v value f
244 > user.sp ace="value"
245 > user.special ="value"
248 $ setfattr -x "user.sp ace" f
249 $ setfattr -n "user.sp ace" -v value f
250 $ setfattr -x "user.sp ace" f
251 $ setfattr -x "user.special " f
257 Tests for proper path recursion reported by Tony Ernst <tee@sgi.com> bnc#457660
260 $ setfattr -n "user.9" 1
261 $ setfattr -n "user.a" 1
262 $ setfattr -n "user.9" 1/2
263 $ setfattr -n "user.a" 1/2
264 $ setfattr -n "user.9" 1/2/3
265 $ setfattr -n "user.a" 1/2/3
267 $ getfattr -h -L -R -m '.' -e hex 1 | ./sort-getfattr-output
281 $ getfattr -h -P -R -m '.' -e hex 1/2 | ./sort-getfattr-output
293 Test for proper recursion of directory structures with -L -P -R
297 $ touch 1/link/link-file
298 $ touch 1/sub/sub-file
299 $ ln -s `pwd`/1/link 1/sub/link
300 $ setfattr -n "user.a" 1
301 $ setfattr -n "user.a" 1/link/link-file
302 $ setfattr -n "user.a" 1/link
303 $ setfattr -n "user.a" 1/sub/sub-file
304 $ setfattr -n "user.a" 1/sub
305 $ getfattr -P -R 1 | ./sort-getfattr-output
312 > # file: 1/link/link-file
321 > # file: 1/sub/sub-file
325 $ getfattr -R -P 1/sub | ./sort-getfattr-output
332 > # file: 1/sub/sub-file
336 $ getfattr -L -R 1 | ./sort-getfattr-output
343 > # file: 1/link/link-file
352 > # file: 1/sub/link/link-file
355 > # file: 1/sub/sub-file
359 $ getfattr -R 1/sub/link | ./sort-getfattr-output
363 > # file: 1/sub/link/link-file
367 $ getfattr -L -R 1/sub/link | ./sort-getfattr-output
371 > # file: 1/sub/link/link-file