2 # FS QA Test No. 097. Modifed from UDFQA test 033.
4 # simple attr tests for EAs:
11 #-----------------------------------------------------------------------
12 # Copyright (c) 2000-2004 Silicon Graphics, Inc. All Rights Reserved.
14 # This program is free software; you can redistribute it and/or
15 # modify it under the terms of the GNU General Public License as
16 # published by the Free Software Foundation.
18 # This program is distributed in the hope that it would be useful,
19 # but WITHOUT ANY WARRANTY; without even the implied warranty of
20 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 # GNU General Public License for more details.
23 # You should have received a copy of the GNU General Public License
24 # along with this program; if not, write the Free Software Foundation,
25 # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
27 #-----------------------------------------------------------------------
33 echo "QA output created by $seq"
37 status=1 # failure is the default!
39 trap "_cleanup; exit \$status" 0 1 2 3 15
52 if [ "$FSTYP" == "xfs" ]; then
61 # get standard environment, filters and checks
65 # link correct .out file
66 # This is done bacause udf and xfs print attrs in different orders.
68 if [ "$FSTYP" == "xfs" ]; then
69 ln -s $seq.out.xfs $seq.out
71 ln -s $seq.out.udf $seq.out
74 # real QA test starts here
81 TARGET_DIR=$SCRATCH_MNT
82 [ "$FSTYP" == "xfs" ] && TARGET_DIR=$TEST_DIR
85 echo "create file foo"
89 echo "should be no EAs for foo:"
92 echo "set EA <noise,woof>:"
93 attr -s noise -V woof foo
95 echo "set EA <colour,blue>:"
96 attr -s colour -V blue foo
98 echo "set EA <size,small>:"
99 attr -s size -V small foo
101 echo "list the EAs for foo: noise, colour, size"
104 echo "check the list again for foo"
107 echo "unmount the FS and see if EAs are persistent"
110 echo "check the list again for foo after umount/mount"
113 echo "get the value of the noise EA"
116 echo "get the value of the colour EA which was removed earlier"
119 echo "get the value of the size EA"
122 echo "remove the colour EA on foo"
125 echo "list EAs for foo: noise, size"
128 echo "get the value of the noise EA"
131 echo "get the value of the colour EA which was removed earlier"
134 echo "get the value of the size EA"
137 echo "list all the EAs again: noise, size"
140 echo "change the value of the size EA from small to huge"
141 attr -s size -V huge foo
143 echo "get the size EA which should now have value huge"
146 echo "list EAs: noise, size"
149 echo "remove the size EA from foo"
152 echo "list EAs: noise (size EA has been removed)"
155 echo "get the noise EA: woof"
158 echo "try removing non-existent EA named woof"
161 echo "try removing already removed EA size"
164 echo "list EAs: noise"
167 echo "try removing already removed EA colour"
170 echo "list EAs: noise"
173 echo "remove remaining EA noise"
176 echo "list EAs: should be no EAs left now"
179 echo "unmount the FS and see if EAs are persistent"
182 echo "list EAs: should still be no EAs left"
186 echo "*** Test out the root namespace ***"
189 echo "set EA <root:colour,marone>:"
190 attr -R -s colour -V marone foo
192 echo "set EA <user:colour,beige>:"
193 attr -s colour -V beige foo
195 echo "set EA <user:vomit,pizza>:"
196 attr -s vomit -V pizza foo
198 echo "set EA <root:noise,whack>:"
199 attr -R -s noise -V whack foo
201 echo "list root EAs: <root:colour,noise>:"
204 echo "list user EAs: <user:colour,vomit>:"
207 echo "get root EA colour: marone"
208 attr -R -g colour foo
210 echo "get root EA noise: whack"
213 echo "get root EA vomit which is a user EA => find nothing"
217 echo "unmount the FS and see if EAs are persistent"
221 echo "get root EA colour: marone"
222 attr -R -g colour foo
224 echo "get root EA noise: whack"
227 echo "get user EA vomit: pizza"
230 echo "remove the root colour EA"
231 attr -R -r colour foo
233 echo "list root EAs: <root:noise>:"
236 echo "list user EAs: <user:colour,vomit>:"
239 echo "remove the final root EA noise"
242 echo "list root EAs: none"
248 # Check the filesystem
251 # optional stuff if your test has verbose output to help resolve problems
253 #echo "If failure, check $seq.full (this) and $seq.full.ok (reference)"