2 # FS QA Test No. 098. Modified from UDFQA test 035
4 # simple attr tests for EAs:
13 #-----------------------------------------------------------------------
14 # Copyright (c) 2000-2004 Silicon Graphics, Inc. All Rights Reserved.
16 # This program is free software; you can redistribute it and/or
17 # modify it under the terms of the GNU General Public License as
18 # published by the Free Software Foundation.
20 # This program is distributed in the hope that it would be useful,
21 # but WITHOUT ANY WARRANTY; without even the implied warranty of
22 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
23 # GNU General Public License for more details.
25 # You should have received a copy of the GNU General Public License
26 # along with this program; if not, write the Free Software Foundation,
27 # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
29 #-----------------------------------------------------------------------
35 echo "QA output created by $seq"
39 status=1 # failure is the default!
40 trap "_cleanup; exit \$status" 0 1 2 3 15
47 # get standard environment, filters and checks
54 /<file_entry name=/ { fe_on=1 }
55 /<timestamp/ { ts_on=1; next }
56 /<\/timestamp/ { ts_on=0; next }
62 fe_on == 1 && ts_on == 0 { print; next }
72 udf_db -f $SCRATCH_DEV | _db_filter
78 # real QA test starts here
87 echo "create file foo"
88 echo "file_contents" >foo
91 echo "should be no EAs for foo:"
94 echo "set EA <noise,woof>:"
95 attr -s noise -V woof foo
97 echo "set EA <colour,blue>:"
98 attr -s colour -V blue foo
100 echo "set EA <size,small>:"
101 attr -s size -V small foo
103 echo "list the EAs for foo: noise, colour, size"
106 echo "check the list again for foo"
109 echo "unmount the FS and see if EAs are persistent"
112 echo "check the list again for foo after umount/mount"
115 echo "get the value of the noise EA"
118 echo "get the value of the colour EA which was removed earlier"
121 echo "get the value of the size EA"
124 echo "remove the colour EA on foo"
127 echo "list EAs for foo: noise, size"
130 echo "get the value of the noise EA"
133 echo "get the value of the colour EA which was removed earlier"
136 echo "get the value of the size EA"
139 echo "list all the EAs again: noise, size"
142 echo "change the value of the size EA from small to huge"
143 attr -s size -V huge foo
145 echo "get the size EA which should now have value huge"
148 echo "list EAs: noise, size"
151 echo "remove the size EA from foo"
154 echo "list EAs: noise (size EA has been removed)"
157 echo "get the noise EA: woof"
160 echo "try removing non-existent EA named woof"
163 echo "try removing already removed EA size"
166 echo "list EAs: noise"
169 echo "try removing already removed EA colour"
172 echo "list EAs: noise"
175 echo "remove remaining EA noise"
178 echo "list EAs: should be no EAs left now"
181 echo "unmount the FS and see if EAs are persistent"
184 echo "list EAs: should still be no EAs left"
188 echo "*** Test out the root namespace ***"
191 echo "set EA <root:colour,marone>:"
192 attr -R -s colour -V marone foo
194 echo "set EA <user:colour,beige>:"
195 attr -s colour -V beige foo
197 echo "set EA <user:vomit,pizza>:"
198 attr -s vomit -V pizza foo
200 echo "set EA <root:noise,whack>:"
201 attr -R -s noise -V whack foo
203 echo "list root EAs: <root:colour,noise>:"
206 echo "list user EAs: <user:colour,vomit>:"
209 echo "get root EA colour: marone"
210 attr -R -g colour foo
212 echo "get root EA noise: whack"
215 echo "get root EA vomit which is a user EA => find nothing"
219 echo "unmount the FS and see if EAs are persistent"
223 echo "get root EA colour: marone"
224 attr -R -g colour foo
226 echo "get root EA noise: whack"
229 echo "get user EA vomit: pizza"
232 echo "remove the root colour EA"
233 attr -R -r colour foo
235 echo "list root EAs: <root:noise>:"
238 echo "list user EAs: <user:colour,vomit>:"
241 echo "remove the final root EA noise"
244 echo "list root EAs: none"
250 udf_db -f $SCRATCH_DEV | _db_filter
252 # Checks the udf filesystem
253 _check_udf_filesystem $SCRATCH_DEV
258 echo "delete the file foo - which will delete the associated streams"
264 udf_db -f $SCRATCH_DEV | _db_filter
266 # Checks the udf filesystem
267 _check_udf_filesystem $SCRATCH_DEV
269 # optional stuff if your test has verbose output to help resolve problems
271 #echo "If failure, check $seq.full (this) and $seq.full.ok (reference)"