summaryrefslogtreecommitdiff
path: root/tests/udf
diff options
context:
space:
mode:
authorDave Chinner <dchinner@redhat.com>2013-03-15 12:27:58 +0000
committerRich Johnston <rjohnston@sgi.com>2013-03-26 20:45:43 -0500
commit8ff10d6d1c5ff473541d6d698ee4fb9cb9f29dab (patch)
tree5f895db92dbaaac877bcf5b8d5e30653c01bdd37 /tests/udf
parentfc48dfb96676c140ab371ab7723d59e3a4445d84 (diff)
xfstests: move remaining tests out of top level directory
These are tests that are shared between multiple filesystems (moved to shared), and udf/btrfs/ext4 specific tests, moved to appropriate directories. I created the "shared" directory to indicate tests that are not truly generic, but also not filesystem specific. They might rely on a feature that is only implmented in a few filesystems and so can't be truly generic. Signed-off-by: Dave Chinner <dchinner@redhat.com> Reviewed-by: Phil White <pwhite@sgi.com> [rjohnston@sgi.com reworked for TOT changes] Signed-off-by: Rich Johnston <rjohnston@sgi.com>
Diffstat (limited to 'tests/udf')
-rwxr-xr-xtests/udf/098275
-rw-r--r--tests/udf/098.out1594
-rwxr-xr-xtests/udf/10161
-rw-r--r--tests/udf/101.out19
-rwxr-xr-xtests/udf/10258
-rw-r--r--tests/udf/102.out2
-rw-r--r--tests/udf/group8
7 files changed, 2017 insertions, 0 deletions
diff --git a/tests/udf/098 b/tests/udf/098
new file mode 100755
index 00000000..58d2a954
--- /dev/null
+++ b/tests/udf/098
@@ -0,0 +1,275 @@
+#! /bin/bash
+# FS QA Test No. 098. Modified from UDFQA test 035
+#
+# simple attr tests for EAs:
+# - set
+# - get
+# - list
+# - remove
+# Basic testing.
+# + udf_db checks.
+# (033 + udf_db)
+#
+#-----------------------------------------------------------------------
+# Copyright (c) 2000-2004 Silicon Graphics, Inc. All Rights Reserved.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License as
+# published by the Free Software Foundation.
+#
+# This program is distributed in the hope that it would be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+#
+#-----------------------------------------------------------------------
+#
+
+seq=`basename $0`
+echo "QA output created by $seq"
+
+here=`pwd`
+tmp=/tmp/$$
+status=1 # failure is the default!
+trap "_cleanup; exit \$status" 0 1 2 3 15
+
+_cleanup()
+{
+ rm -f $tmp.*
+}
+
+# get standard environment, filters and checks
+. ./common.rc
+. ./common.filter
+
+_db_filter()
+{
+ awk '
+ /<file_entry name=/ { fe_on=1 }
+ /<timestamp/ { ts_on=1; next }
+ /<\/timestamp/ { ts_on=0; next }
+ /<cksum/ { next }
+ /<desc_crc/ { next }
+ /<pos/ { next }
+ /<tag_loc/ { next }
+ /<lb_num/ { next }
+ fe_on == 1 && ts_on == 0 { print; next }
+ { next }
+ '
+}
+
+_umount_check_mount()
+{
+ cd /
+ umount $SCRATCH_MNT
+
+ udf_db -f $SCRATCH_DEV | _db_filter
+
+ _scratch_mount
+ cd $SCRATCH_MNT
+}
+
+# real QA test starts here
+_supported_fs udf
+_supported_os IRIX
+
+_require_scratch
+_require_attrs
+
+_setup_testdir
+
+cd $SCRATCH_MNT
+
+echo "create file foo"
+echo "file_contents" >foo
+cat foo
+
+echo "should be no EAs for foo:"
+${ATTR_PROG} -l foo
+
+echo "set EA <noise,woof>:"
+${ATTR_PROG} -s noise -V woof foo
+
+echo "set EA <colour,blue>:"
+${ATTR_PROG} -s colour -V blue foo
+
+echo "set EA <size,small>:"
+${ATTR_PROG} -s size -V small foo
+
+echo "list the EAs for foo: noise, colour, size"
+${ATTR_PROG} -l foo
+
+echo "check the list again for foo"
+${ATTR_PROG} -l foo
+
+echo "unmount the FS and see if EAs are persistent"
+_umount_check_mount
+
+echo "check the list again for foo after umount/mount"
+${ATTR_PROG} -l foo
+
+echo "get the value of the noise EA"
+${ATTR_PROG} -g noise foo
+
+echo "get the value of the colour EA which was removed earlier"
+${ATTR_PROG} -g colour foo
+
+echo "get the value of the size EA"
+${ATTR_PROG} -g size foo
+
+echo "remove the colour EA on foo"
+${ATTR_PROG} -r colour foo
+
+echo "list EAs for foo: noise, size"
+${ATTR_PROG} -l foo
+
+echo "get the value of the noise EA"
+${ATTR_PROG} -g noise foo
+
+echo "get the value of the colour EA which was removed earlier"
+${ATTR_PROG} -g colour foo
+
+echo "get the value of the size EA"
+${ATTR_PROG} -g size foo
+
+echo "list all the EAs again: noise, size"
+${ATTR_PROG} -l foo
+
+echo "change the value of the size EA from small to huge"
+${ATTR_PROG} -s size -V huge foo
+
+echo "get the size EA which should now have value huge"
+${ATTR_PROG} -g size foo
+
+echo "list EAs: noise, size"
+${ATTR_PROG} -l foo
+
+echo "remove the size EA from foo"
+${ATTR_PROG} -r size foo
+
+echo "list EAs: noise (size EA has been removed)"
+${ATTR_PROG} -l foo
+
+echo "get the noise EA: woof"
+${ATTR_PROG} -g noise foo
+
+echo "try removing non-existent EA named woof"
+${ATTR_PROG} -r woof foo
+
+echo "try removing already removed EA size"
+${ATTR_PROG} -r size foo
+
+echo "list EAs: noise"
+${ATTR_PROG} -l foo
+
+echo "try removing already removed EA colour"
+${ATTR_PROG} -r colour foo
+
+echo "list EAs: noise"
+${ATTR_PROG} -l foo
+
+echo "remove remaining EA noise"
+${ATTR_PROG} -r noise foo
+
+echo "list EAs: should be no EAs left now"
+${ATTR_PROG} -l foo
+
+echo "unmount the FS and see if EAs are persistent"
+_umount_check_mount
+
+echo "list EAs: should still be no EAs left"
+${ATTR_PROG} -l foo
+
+echo ""
+echo "*** Test out the root namespace ***"
+echo ""
+
+echo "set EA <root:colour,marone>:"
+${ATTR_PROG} -R -s colour -V marone foo
+
+echo "set EA <user:colour,beige>:"
+${ATTR_PROG} -s colour -V beige foo
+
+echo "set EA <user:vomit,pizza>:"
+${ATTR_PROG} -s vomit -V pizza foo
+
+echo "set EA <root:noise,whack>:"
+${ATTR_PROG} -R -s noise -V whack foo
+
+echo "list root EAs: <root:colour,noise>:"
+${ATTR_PROG} -R -l foo
+
+echo "list user EAs: <user:colour,vomit>:"
+${ATTR_PROG} -l foo
+
+echo "get root EA colour: marone"
+${ATTR_PROG} -R -g colour foo
+
+echo "get root EA noise: whack"
+${ATTR_PROG} -R -g noise foo
+
+echo "get root EA vomit which is a user EA => find nothing"
+${ATTR_PROG} -R -g vomit foo
+
+echo ""
+echo "unmount the FS and see if EAs are persistent"
+echo ""
+_umount_check_mount
+
+echo "get root EA colour: marone"
+${ATTR_PROG} -R -g colour foo
+
+echo "get root EA noise: whack"
+${ATTR_PROG} -R -g noise foo
+
+echo "get user EA vomit: pizza"
+${ATTR_PROG} -g vomit foo
+
+echo "remove the root colour EA"
+${ATTR_PROG} -R -r colour foo
+
+echo "list root EAs: <root:noise>:"
+${ATTR_PROG} -R -l foo
+
+echo "list user EAs: <user:colour,vomit>:"
+${ATTR_PROG} -l foo
+
+echo "remove the final root EA noise"
+${ATTR_PROG} -R -r noise foo
+
+echo "list root EAs: none"
+${ATTR_PROG} -R -l foo
+
+cd /
+umount $SCRATCH_MNT
+
+udf_db -f $SCRATCH_DEV | _db_filter
+
+# Checks the udf filesystem
+_check_udf_filesystem $SCRATCH_DEV
+
+_scratch_mount
+cd $SCRATCH_MNT
+
+echo "delete the file foo - which will delete the associated streams"
+rm foo
+
+cd /
+umount $SCRATCH_MNT
+
+udf_db -f $SCRATCH_DEV | _db_filter
+
+# Checks the udf filesystem
+_check_udf_filesystem $SCRATCH_DEV
+
+# optional stuff if your test has verbose output to help resolve problems
+#echo
+#echo "If failure, check $seq.full (this) and $seq.full.ok (reference)"
+
+# success, all done
+status=0
+exit
diff --git a/tests/udf/098.out b/tests/udf/098.out
new file mode 100644
index 00000000..63772a0a
--- /dev/null
+++ b/tests/udf/098.out
@@ -0,0 +1,1594 @@
+QA output created by 098
+create file foo
+file_contents
+should be no EAs for foo:
+set EA <noise,woof>:
+Attribute "noise" set to a 4 byte value for foo:
+woof
+set EA <colour,blue>:
+Attribute "colour" set to a 4 byte value for foo:
+blue
+set EA <size,small>:
+Attribute "size" set to a 5 byte value for foo:
+small
+list the EAs for foo: noise, colour, size
+Attribute "noise" has a 4 byte value for foo
+Attribute "colour" has a 4 byte value for foo
+Attribute "size" has a 5 byte value for foo
+check the list again for foo
+Attribute "noise" has a 4 byte value for foo
+Attribute "colour" has a 4 byte value for foo
+Attribute "size" has a 5 byte value for foo
+unmount the FS and see if EAs are persistent
+ <file_entry name="/">
+ <desc_tag name="tag">
+ <id val="261" />
+ <descriptor_ver val="3" />
+ <reserved val="0" />
+ <serial_num val="0" />
+ </desc_tag>
+ <icb_tag name="icbtag">
+ <prev_num_dirs val="0" />
+ <strat_type val="4" />
+ <strat_param val="0x0 0x0" />
+ <max_num_entries val="1" />
+ <reserved val="0x0" />
+ <file_type val="4" />
+ <lb_addr name="parent_icb">
+ <part_num val="0" />
+ </lb_addr>
+ <flags val="0" />
+ </icb_tag>
+ <uid val="0" />
+ <gid val="0" />
+ <perm val="0x3CA5" />
+ <link_cnt val="1" />
+ <rec_format val="0" />
+ <rec_disp_attr val="0" />
+ <rec_len val="0" />
+ <inf_len val="84" />
+ <logblks_rec val="1" />
+ <ckpoint val="1" />
+ <long_ad name="ex_attr_icb">
+ <len val="0" />
+ <lb_addr name="loc">
+ <part_num val="0" />
+ </lb_addr>
+ <ad_flags val="0" />
+ <ad_id val="0" />
+ </long_ad>
+ <regid name="imp_id">
+ <flags val="0" />
+ <id val="*Silicon Graphics, Inc." />
+ <id_suffix val="" />
+ </regid>
+ <unique_id val="0" />
+ <l_ea val="0" />
+ <l_ad val="8" />
+ <short_ad name="ads.sht">
+ <len val="84" />
+ </short_ad>
+ <fileid_desc>
+ <desc_tag name="tag">
+ <id val="257" />
+ <descriptor_ver val="3" />
+ <reserved val="0" />
+ <serial_num val="0" />
+ </desc_tag>
+ <file_num val="1" />
+ <file_char val="10" char=".Parent.Dir." />
+ <l_fi val="0" />
+ <long_ad name="icb">
+ <len val="2048" />
+ <lb_addr name="loc">
+ <part_num val="0" />
+ </lb_addr>
+ <ad_flags val="0" />
+ <ad_id val="0" />
+ </long_ad>
+ <l_iu val="0" />
+ <file_id name="" />
+ </fileid_desc>
+ <fileid_desc>
+ <desc_tag name="tag">
+ <id val="257" />
+ <descriptor_ver val="3" />
+ <reserved val="0" />
+ <serial_num val="0" />
+ </desc_tag>
+ <file_num val="1" />
+ <file_char val="0" char="....." />
+ <l_fi val="4" />
+ <long_ad name="icb">
+ <len val="2048" />
+ <lb_addr name="loc">
+ <part_num val="0" />
+ </lb_addr>
+ <ad_flags val="0" />
+ <ad_id val="16" />
+ </long_ad>
+ <l_iu val="0" />
+ <file_id name="foo" comp_id="8" />
+ <extended_file_entry name="foo" comp_id="8">
+ <desc_tag name="tag">
+ <id val="266" />
+ <descriptor_ver val="3" />
+ <reserved val="0" />
+ <serial_num val="0" />
+ </desc_tag>
+ <icb_tag name="icbtag">
+ <prev_num_dirs val="0" />
+ <strat_type val="4" />
+ <strat_param val="0x0 0x0" />
+ <max_num_entries val="1" />
+ <reserved val="0x0" />
+ <file_type val="5" />
+ <lb_addr name="parent_icb">
+ <part_num val="0" />
+ </lb_addr>
+ <flags val="0" />
+ </icb_tag>
+ <uid val="0" />
+ <gid val="0" />
+ <perm val="0x1884" />
+ <link_cnt val="2" />
+ <rec_format val="0" />
+ <rec_disp_attr val="0" />
+ <rec_len val="0" />
+ <inf_len val="14" />
+ <obj_size val="27" />
+ <logblks_rec val="1" />
+ <ckpoint val="1" />
+ <long_ad name="ex_attr_icb">
+ <len val="0" />
+ <lb_addr name="loc">
+ <part_num val="0" />
+ </lb_addr>
+ <ad_flags val="0" />
+ <ad_id val="0" />
+ </long_ad>
+ <long_ad name="streamdir_icb">
+ <len val="2048" />
+ <lb_addr name="loc">
+ <part_num val="0" />
+ </lb_addr>
+ <ad_flags val="0" />
+ <ad_id val="16" />
+ </long_ad>
+ <regid name="imp_id">
+ <flags val="0" />
+ <id val="*Silicon Graphics, Inc" />
+ <id_suffix val="" />
+ </regid>
+ <unique_id val="16" />
+ <l_ea val="0" />
+ <l_ad val="8" />
+ <short_ad name="ads.sht">
+ <len val="14" />
+ </short_ad>
+ <stream_directory>
+ <fileid_desc>
+ <desc_tag name="tag">
+ <id val="257" />
+ <descriptor_ver val="3" />
+ <reserved val="0" />
+ <serial_num val="0" />
+ </desc_tag>
+ <file_num val="1" />
+ <file_char val="8" char=".Parent..." />
+ <l_fi val="0" />
+ <long_ad name="icb">
+ <len val="2048" />
+ <lb_addr name="loc">
+ <part_num val="0" />
+ </lb_addr>
+ <ad_flags val="0" />
+ <ad_id val="16" />
+ </long_ad>
+ <l_iu val="0" />
+ <file_id name="" />
+ </fileid_desc>
+ <fileid_desc>
+ <desc_tag name="tag">
+ <id val="257" />
+ <descriptor_ver val="3" />
+ <reserved val="0" />
+ <serial_num val="0" />
+ </desc_tag>
+ <file_num val="1" />
+ <file_char val="0" char="....." />
+ <l_fi val="6" />
+ <long_ad name="icb">
+ <len val="2048" />
+ <lb_addr name="loc">
+ <part_num val="0" />
+ </lb_addr>
+ <ad_flags val="0" />
+ <ad_id val="16" />
+ </long_ad>
+ <l_iu val="0" />
+ <file_id name="noise" comp_id="8" />
+ <file_entry name="noise" comp_id="8">
+ <desc_tag name="tag">
+ <id val="261" />
+ <descriptor_ver val="3" />
+ <reserved val="0" />
+ <serial_num val="0" />
+ </desc_tag>
+ <icb_tag name="icbtag">
+ <prev_num_dirs val="0" />
+ <strat_type val="4" />
+ <strat_param val="0x0 0x0" />
+ <max_num_entries val="1" />
+ <reserved val="0x0" />
+ <file_type val="5" />
+ <lb_addr name="parent_icb">
+ <part_num val="0" />
+ </lb_addr>
+ <flags val="8192" />
+ </icb_tag>
+ <uid val="0" />
+ <gid val="0" />
+ <perm val="0x1884" />
+ <link_cnt val="1" />
+ <rec_format val="0" />
+ <rec_disp_attr val="0" />
+ <rec_len val="0" />
+ <inf_len val="4" />
+ <logblks_rec val="1" />
+ <ckpoint val="1" />
+ <long_ad name="ex_attr_icb">
+ <len val="0" />
+ <lb_addr name="loc">
+ <part_num val="0" />
+ </lb_addr>
+ <ad_flags val="0" />
+ <ad_id val="0" />
+ </long_ad>
+ <regid name="imp_id">
+ <flags val="0" />
+ <id val="*Silicon Graphics, Inc" />
+ <id_suffix val="" />
+ </regid>
+ <unique_id val="16" />
+ <l_ea val="0" />
+ <l_ad val="8" />
+ <short_ad name="ads.sht">
+ <len val="4" />
+ </short_ad>
+ <file_content>
+ 77 6F 6F 66
+ </file_content>
+ </file_entry>
+ </fileid_desc>
+ <fileid_desc>
+ <desc_tag name="tag">
+ <id val="257" />
+ <descriptor_ver val="3" />
+ <reserved val="0" />
+ <serial_num val="0" />
+ </desc_tag>
+ <file_num val="1" />
+ <file_char val="0" char="....." />
+ <l_fi val="7" />
+ <long_ad name="icb">
+ <len val="2048" />
+ <lb_addr name="loc">
+ <part_num val="0" />
+ </lb_addr>
+ <ad_flags val="0" />
+ <ad_id val="16" />
+ </long_ad>
+ <l_iu val="0" />
+ <file_id name="colour" comp_id="8" />
+ <file_entry name="colour" comp_id="8">
+ <desc_tag name="tag">
+ <id val="261" />
+ <descriptor_ver val="3" />
+ <reserved val="0" />
+ <serial_num val="0" />
+ </desc_tag>
+ <icb_tag name="icbtag">
+ <prev_num_dirs val="0" />
+ <strat_type val="4" />
+ <strat_param val="0x0 0x0" />
+ <max_num_entries val="1" />
+ <reserved val="0x0" />
+ <file_type val="5" />
+ <lb_addr name="parent_icb">
+ <part_num val="0" />
+ </lb_addr>
+ <flags val="8192" />
+ </icb_tag>
+ <uid val="0" />
+ <gid val="0" />
+ <perm val="0x1884" />
+ <link_cnt val="1" />
+ <rec_format val="0" />
+ <rec_disp_attr val="0" />
+ <rec_len val="0" />
+ <inf_len val="4" />
+ <logblks_rec val="1" />
+ <ckpoint val="1" />
+ <long_ad name="ex_attr_icb">
+ <len val="0" />
+ <lb_addr name="loc">
+ <part_num val="0" />
+ </lb_addr>
+ <ad_flags val="0" />
+ <ad_id val="0" />
+ </long_ad>
+ <regid name="imp_id">
+ <flags val="0" />
+ <id val="*Silicon Graphics, Inc" />
+ <id_suffix val="" />
+ </regid>
+ <unique_id val="16" />
+ <l_ea val="0" />
+ <l_ad val="8" />
+ <short_ad name="ads.sht">
+ <len val="4" />
+ </short_ad>
+ <file_content>
+ 62 6C 75 65
+ </file_content>
+ </file_entry>
+ </fileid_desc>
+ <fileid_desc>
+ <desc_tag name="tag">
+ <id val="257" />
+ <descriptor_ver val="3" />
+ <reserved val="0" />
+ <serial_num val="0" />
+ </desc_tag>
+ <file_num val="1" />
+ <file_char val="0" char="....." />
+ <l_fi val="5" />
+ <long_ad name="icb">
+ <len val="2048" />
+ <lb_addr name="loc">
+ <part_num val="0" />
+ </lb_addr>
+ <ad_flags val="0" />
+ <ad_id val="16" />
+ </long_ad>
+ <l_iu val="0" />
+ <file_id name="size" comp_id="8" />
+ <file_entry name="size" comp_id="8">
+ <desc_tag name="tag">
+ <id val="261" />
+ <descriptor_ver val="3" />
+ <reserved val="0" />
+ <serial_num val="0" />
+ </desc_tag>
+ <icb_tag name="icbtag">
+ <prev_num_dirs val="0" />
+ <strat_type val="4" />
+ <strat_param val="0x0 0x0" />
+ <max_num_entries val="1" />
+ <reserved val="0x0" />
+ <file_type val="5" />
+ <lb_addr name="parent_icb">
+ <part_num val="0" />
+ </lb_addr>
+ <flags val="8192" />
+ </icb_tag>
+ <uid val="0" />
+ <gid val="0" />
+ <perm val="0x1884" />
+ <link_cnt val="1" />
+ <rec_format val="0" />
+ <rec_disp_attr val="0" />
+ <rec_len val="0" />
+ <inf_len val="5" />
+ <logblks_rec val="1" />
+ <ckpoint val="1" />
+ <long_ad name="ex_attr_icb">
+ <len val="0" />
+ <lb_addr name="loc">
+ <part_num val="0" />
+ </lb_addr>
+ <ad_flags val="0" />
+ <ad_id val="0" />
+ </long_ad>
+ <regid name="imp_id">
+ <flags val="0" />
+ <id val="*Silicon Graphics, Inc" />
+ <id_suffix val="" />
+ </regid>
+ <unique_id val="16" />
+ <l_ea val="0" />
+ <l_ad val="8" />
+ <short_ad name="ads.sht">
+ <len val="5" />
+ </short_ad>
+ <file_content>
+ 73 6D 6C 6C
+ </file_content>
+ </file_entry>
+ </fileid_desc>
+ </stream_directory>
+ <file_content>
+ 66 69 6C 65 5F 63 6F 6E 74 65 6E 74 73 A
+ </file_content>
+ </extended_file_entry>
+ </fileid_desc>
+ </file_entry>
+</udf>
+check the list again for foo after umount/mount
+Attribute "noise" has a 4 byte value for foo
+Attribute "colour" has a 4 byte value for foo
+Attribute "size" has a 5 byte value for foo
+get the value of the noise EA
+Attribute "noise" had a 4 byte value for foo:
+woof
+get the value of the colour EA which was removed earlier
+Attribute "colour" had a 4 byte value for foo:
+blue
+get the value of the size EA
+Attribute "size" had a 5 byte value for foo:
+small
+remove the colour EA on foo
+list EAs for foo: noise, size
+Attribute "noise" has a 4 byte value for foo
+Attribute "size" has a 5 byte value for foo
+get the value of the noise EA
+Attribute "noise" had a 4 byte value for foo:
+woof
+get the value of the colour EA which was removed earlier
+attr_get: Attribute not found
+Could not get "colour" for foo
+get the value of the size EA
+Attribute "size" had a 5 byte value for foo:
+small
+list all the EAs again: noise, size
+Attribute "noise" has a 4 byte value for foo
+Attribute "size" has a 5 byte value for foo
+change the value of the size EA from small to huge
+Attribute "size" set to a 4 byte value for foo:
+huge
+get the size EA which should now have value huge
+Attribute "size" had a 4 byte value for foo:
+huge
+list EAs: noise, size
+Attribute "noise" has a 4 byte value for foo
+Attribute "size" has a 4 byte value for foo
+remove the size EA from foo
+list EAs: noise (size EA has been removed)
+Attribute "noise" has a 4 byte value for foo
+get the noise EA: woof
+Attribute "noise" had a 4 byte value for foo:
+woof
+try removing non-existent EA named woof
+attr_remove: Attribute not found
+Could not remove "woof" for foo
+try removing already removed EA size
+attr_remove: Attribute not found
+Could not remove "size" for foo
+list EAs: noise
+Attribute "noise" has a 4 byte value for foo
+try removing already removed EA colour
+attr_remove: Attribute not found
+Could not remove "colour" for foo
+list EAs: noise
+Attribute "noise" has a 4 byte value for foo
+remove remaining EA noise
+list EAs: should be no EAs left now
+unmount the FS and see if EAs are persistent
+ <file_entry name="/">
+ <desc_tag name="tag">
+ <id val="261" />
+ <descriptor_ver val="3" />
+ <reserved val="0" />
+ <serial_num val="0" />
+ </desc_tag>
+ <icb_tag name="icbtag">
+ <prev_num_dirs val="0" />
+ <strat_type val="4" />
+ <strat_param val="0x0 0x0" />
+ <max_num_entries val="1" />
+ <reserved val="0x0" />
+ <file_type val="4" />
+ <lb_addr name="parent_icb">
+ <part_num val="0" />
+ </lb_addr>
+ <flags val="0" />
+ </icb_tag>
+ <uid val="0" />
+ <gid val="0" />
+ <perm val="0x3CA5" />
+ <link_cnt val="1" />
+ <rec_format val="0" />
+ <rec_disp_attr val="0" />
+ <rec_len val="0" />
+ <inf_len val="84" />
+ <logblks_rec val="1" />
+ <ckpoint val="1" />
+ <long_ad name="ex_attr_icb">
+ <len val="0" />
+ <lb_addr name="loc">
+ <part_num val="0" />
+ </lb_addr>
+ <ad_flags val="0" />
+ <ad_id val="0" />
+ </long_ad>
+ <regid name="imp_id">
+ <flags val="0" />
+ <id val="*Silicon Graphics, Inc." />
+ <id_suffix val="" />
+ </regid>
+ <unique_id val="0" />
+ <l_ea val="0" />
+ <l_ad val="8" />
+ <short_ad name="ads.sht">
+ <len val="84" />
+ </short_ad>
+ <fileid_desc>
+ <desc_tag name="tag">
+ <id val="257" />
+ <descriptor_ver val="3" />
+ <reserved val="0" />
+ <serial_num val="0" />
+ </desc_tag>
+ <file_num val="1" />
+ <file_char val="10" char=".Parent.Dir." />
+ <l_fi val="0" />
+ <long_ad name="icb">
+ <len val="2048" />
+ <lb_addr name="loc">
+ <part_num val="0" />
+ </lb_addr>
+ <ad_flags val="0" />
+ <ad_id val="0" />
+ </long_ad>
+ <l_iu val="0" />
+ <file_id name="" />
+ </fileid_desc>
+ <fileid_desc>
+ <desc_tag name="tag">
+ <id val="257" />
+ <descriptor_ver val="3" />
+ <reserved val="0" />
+ <serial_num val="0" />
+ </desc_tag>
+ <file_num val="1" />
+ <file_char val="0" char="....." />
+ <l_fi val="4" />
+ <long_ad name="icb">
+ <len val="2048" />
+ <lb_addr name="loc">
+ <part_num val="0" />
+ </lb_addr>
+ <ad_flags val="0" />
+ <ad_id val="16" />
+ </long_ad>
+ <l_iu val="0" />
+ <file_id name="foo" comp_id="8" />
+ <file_entry name="foo" comp_id="8">
+ <desc_tag name="tag">
+ <id val="261" />
+ <descriptor_ver val="3" />
+ <reserved val="0" />
+ <serial_num val="0" />
+ </desc_tag>
+ <icb_tag name="icbtag">
+ <prev_num_dirs val="0" />
+ <strat_type val="4" />
+ <strat_param val="0x0 0x0" />
+ <max_num_entries val="1" />
+ <reserved val="0x0" />
+ <file_type val="5" />
+ <lb_addr name="parent_icb">
+ <part_num val="0" />
+ </lb_addr>
+ <flags val="0" />
+ </icb_tag>
+ <uid val="0" />
+ <gid val="0" />
+ <perm val="0x1884" />
+ <link_cnt val="1" />
+ <rec_format val="0" />
+ <rec_disp_attr val="0" />
+ <rec_len val="0" />
+ <inf_len val="14" />
+ <logblks_rec val="1" />
+ <ckpoint val="1" />
+ <long_ad name="ex_attr_icb">
+ <len val="0" />
+ <lb_addr name="loc">
+ <part_num val="0" />
+ </lb_addr>
+ <ad_flags val="0" />
+ <ad_id val="0" />
+ </long_ad>
+ <regid name="imp_id">
+ <flags val="0" />
+ <id val="*Silicon Graphics, Inc" />
+ <id_suffix val="" />
+ </regid>
+ <unique_id val="16" />
+ <l_ea val="0" />
+ <l_ad val="8" />
+ <short_ad name="ads.sht">
+ <len val="14" />
+ </short_ad>
+ <file_content>
+ 66 69 6C 65 5F 63 6F 6E 74 65 6E 74 73 A
+ </file_content>
+ </file_entry>
+ </fileid_desc>
+ </file_entry>
+</udf>
+list EAs: should still be no EAs left
+
+*** Test out the root namespace ***
+
+set EA <root:colour,marone>:
+Attribute "colour" set to a 6 byte value for foo:
+marone
+set EA <user:colour,beige>:
+Attribute "colour" set to a 5 byte value for foo:
+beige
+set EA <user:vomit,pizza>:
+Attribute "vomit" set to a 5 byte value for foo:
+pizza
+set EA <root:noise,whack>:
+Attribute "noise" set to a 5 byte value for foo:
+whack
+list root EAs: <root:colour,noise>:
+Attribute "colour" has a 6 byte value for foo
+Attribute "noise" has a 5 byte value for foo
+list user EAs: <user:colour,vomit>:
+Attribute "colour" has a 5 byte value for foo
+Attribute "vomit" has a 5 byte value for foo
+get root EA colour: marone
+Attribute "colour" had a 6 byte value for foo:
+marone
+get root EA noise: whack
+Attribute "noise" had a 5 byte value for foo:
+whack
+get root EA vomit which is a user EA => find nothing
+attr_get: Attribute not found
+Could not get "vomit" for foo
+
+unmount the FS and see if EAs are persistent
+
+ <file_entry name="/">
+ <desc_tag name="tag">
+ <id val="261" />
+ <descriptor_ver val="3" />
+ <reserved val="0" />
+ <serial_num val="0" />
+ </desc_tag>
+ <icb_tag name="icbtag">
+ <prev_num_dirs val="0" />
+ <strat_type val="4" />
+ <strat_param val="0x0 0x0" />
+ <max_num_entries val="1" />
+ <reserved val="0x0" />
+ <file_type val="4" />
+ <lb_addr name="parent_icb">
+ <part_num val="0" />
+ </lb_addr>
+ <flags val="0" />
+ </icb_tag>
+ <uid val="0" />
+ <gid val="0" />
+ <perm val="0x3CA5" />
+ <link_cnt val="1" />
+ <rec_format val="0" />
+ <rec_disp_attr val="0" />
+ <rec_len val="0" />
+ <inf_len val="84" />
+ <logblks_rec val="1" />
+ <ckpoint val="1" />
+ <long_ad name="ex_attr_icb">
+ <len val="0" />
+ <lb_addr name="loc">
+ <part_num val="0" />
+ </lb_addr>
+ <ad_flags val="0" />
+ <ad_id val="0" />
+ </long_ad>
+ <regid name="imp_id">
+ <flags val="0" />
+ <id val="*Silicon Graphics, Inc." />
+ <id_suffix val="" />
+ </regid>
+ <unique_id val="0" />
+ <l_ea val="0" />
+ <l_ad val="8" />
+ <short_ad name="ads.sht">
+ <len val="84" />
+ </short_ad>
+ <fileid_desc>
+ <desc_tag name="tag">
+ <id val="257" />
+ <descriptor_ver val="3" />
+ <reserved val="0" />
+ <serial_num val="0" />
+ </desc_tag>
+ <file_num val="1" />
+ <file_char val="10" char=".Parent.Dir." />
+ <l_fi val="0" />
+ <long_ad name="icb">
+ <len val="2048" />
+ <lb_addr name="loc">
+ <part_num val="0" />
+ </lb_addr>
+ <ad_flags val="0" />
+ <ad_id val="0" />
+ </long_ad>
+ <l_iu val="0" />
+ <file_id name="" />
+ </fileid_desc>
+ <fileid_desc>
+ <desc_tag name="tag">
+ <id val="257" />
+ <descriptor_ver val="3" />
+ <reserved val="0" />
+ <serial_num val="0" />
+ </desc_tag>
+ <file_num val="1" />
+ <file_char val="0" char="....." />
+ <l_fi val="4" />
+ <long_ad name="icb">
+ <len val="2048" />
+ <lb_addr name="loc">
+ <part_num val="0" />
+ </lb_addr>
+ <ad_flags val="0" />
+ <ad_id val="16" />
+ </long_ad>
+ <l_iu val="0" />
+ <file_id name="foo" comp_id="8" />
+ <extended_file_entry name="foo" comp_id="8">
+ <desc_tag name="tag">
+ <id val="266" />
+ <descriptor_ver val="3" />
+ <reserved val="0" />
+ <serial_num val="0" />
+ </desc_tag>
+ <icb_tag name="icbtag">
+ <prev_num_dirs val="0" />
+ <strat_type val="4" />
+ <strat_param val="0x0 0x0" />
+ <max_num_entries val="1" />
+ <reserved val="0x0" />
+ <file_type val="5" />
+ <lb_addr name="parent_icb">
+ <part_num val="0" />
+ </lb_addr>
+ <flags val="0" />
+ </icb_tag>
+ <uid val="0" />
+ <gid val="0" />
+ <perm val="0x1884" />
+ <link_cnt val="2" />
+ <rec_format val="0" />
+ <rec_disp_attr val="0" />
+ <rec_len val="0" />
+ <inf_len val="14" />
+ <obj_size val="35" />
+ <logblks_rec val="1" />
+ <ckpoint val="1" />
+ <long_ad name="ex_attr_icb">
+ <len val="0" />
+ <lb_addr name="loc">
+ <part_num val="0" />
+ </lb_addr>
+ <ad_flags val="0" />
+ <ad_id val="0" />
+ </long_ad>
+ <long_ad name="streamdir_icb">
+ <len val="2048" />
+ <lb_addr name="loc">
+ <part_num val="0" />
+ </lb_addr>
+ <ad_flags val="0" />
+ <ad_id val="16" />
+ </long_ad>
+ <regid name="imp_id">
+ <flags val="0" />
+ <id val="*Silicon Graphics, Inc" />
+ <id_suffix val="" />
+ </regid>
+ <unique_id val="16" />
+ <l_ea val="0" />
+ <l_ad val="8" />
+ <short_ad name="ads.sht">
+ <len val="14" />
+ </short_ad>
+ <stream_directory>
+ <fileid_desc>
+ <desc_tag name="tag">
+ <id val="257" />
+ <descriptor_ver val="3" />
+ <reserved val="0" />
+ <serial_num val="0" />
+ </desc_tag>
+ <file_num val="1" />
+ <file_char val="8" char=".Parent..." />
+ <l_fi val="0" />
+ <long_ad name="icb">
+ <len val="2048" />
+ <lb_addr name="loc">
+ <part_num val="0" />
+ </lb_addr>
+ <ad_flags val="0" />
+ <ad_id val="16" />
+ </long_ad>
+ <l_iu val="0" />
+ <file_id name="" />
+ </fileid_desc>
+ <fileid_desc>
+ <desc_tag name="tag">
+ <id val="257" />
+ <descriptor_ver val="3" />
+ <reserved val="0" />
+ <serial_num val="0" />
+ </desc_tag>
+ <file_num val="1" />
+ <file_char val="16" char="Meta...." />
+ <l_fi val="7" />
+ <long_ad name="icb">
+ <len val="2048" />
+ <lb_addr name="loc">
+ <part_num val="0" />
+ </lb_addr>
+ <ad_flags val="0" />
+ <ad_id val="16" />
+ </long_ad>
+ <l_iu val="0" />
+ <file_id name="colour" comp_id="8" />
+ <file_entry name="colour" comp_id="8">
+ <desc_tag name="tag">
+ <id val="261" />
+ <descriptor_ver val="3" />
+ <reserved val="0" />
+ <serial_num val="0" />
+ </desc_tag>
+ <icb_tag name="icbtag">
+ <prev_num_dirs val="0" />
+ <strat_type val="4" />
+ <strat_param val="0x0 0x0" />
+ <max_num_entries val="1" />
+ <reserved val="0x0" />
+ <file_type val="5" />
+ <lb_addr name="parent_icb">
+ <part_num val="0" />
+ </lb_addr>
+ <flags val="8192" />
+ </icb_tag>
+ <uid val="0" />
+ <gid val="0" />
+ <perm val="0x1884" />
+ <link_cnt val="1" />
+ <rec_format val="0" />
+ <rec_disp_attr val="0" />
+ <rec_len val="0" />
+ <inf_len val="6" />
+ <logblks_rec val="1" />
+ <ckpoint val="1" />
+ <long_ad name="ex_attr_icb">
+ <len val="0" />
+ <lb_addr name="loc">
+ <part_num val="0" />
+ </lb_addr>
+ <ad_flags val="0" />
+ <ad_id val="0" />
+ </long_ad>
+ <regid name="imp_id">
+ <flags val="0" />
+ <id val="*Silicon Graphics, Inc" />
+ <id_suffix val="" />
+ </regid>
+ <unique_id val="16" />
+ <l_ea val="0" />
+ <l_ad val="8" />
+ <short_ad name="ads.sht">
+ <len val="6" />
+ </short_ad>
+ <file_content>
+ 6D 61 72 6F 6E 65
+ </file_content>
+ </file_entry>
+ </fileid_desc>
+ <fileid_desc>
+ <desc_tag name="tag">
+ <id val="257" />
+ <descriptor_ver val="3" />
+ <reserved val="0" />
+ <serial_num val="0" />
+ </desc_tag>
+ <file_num val="1" />
+ <file_char val="0" char="....." />
+ <l_fi val="7" />
+ <long_ad name="icb">
+ <len val="2048" />
+ <lb_addr name="loc">
+ <part_num val="0" />
+ </lb_addr>
+ <ad_flags val="0" />
+ <ad_id val="16" />
+ </long_ad>
+ <l_iu val="0" />
+ <file_id name="colour" comp_id="8" />
+ <file_entry name="colour" comp_id="8">
+ <desc_tag name="tag">
+ <id val="261" />
+ <descriptor_ver val="3" />
+ <reserved val="0" />
+ <serial_num val="0" />
+ </desc_tag>
+ <icb_tag name="icbtag">
+ <prev_num_dirs val="0" />
+ <strat_type val="4" />
+ <strat_param val="0x0 0x0" />
+ <max_num_entries val="1" />
+ <reserved val="0x0" />
+ <file_type val="5" />
+ <lb_addr name="parent_icb">
+ <part_num val="0" />
+ </lb_addr>
+ <flags val="8192" />
+ </icb_tag>
+ <uid val="0" />
+ <gid val="0" />
+ <perm val="0x1884" />
+ <link_cnt val="1" />
+ <rec_format val="0" />
+ <rec_disp_attr val="0" />
+ <rec_len val="0" />
+ <inf_len val="5" />
+ <logblks_rec val="1" />
+ <ckpoint val="1" />
+ <long_ad name="ex_attr_icb">
+ <len val="0" />
+ <lb_addr name="loc">
+ <part_num val="0" />
+ </lb_addr>
+ <ad_flags val="0" />
+ <ad_id val="0" />
+ </long_ad>
+ <regid name="imp_id">
+ <flags val="0" />
+ <id val="*Silicon Graphics, Inc" />
+ <id_suffix val="" />
+ </regid>
+ <unique_id val="16" />
+ <l_ea val="0" />
+ <l_ad val="8" />
+ <short_ad name="ads.sht">
+ <len val="5" />
+ </short_ad>
+ <file_content>
+ 62 65 67 65
+ </file_content>
+ </file_entry>
+ </fileid_desc>
+ <fileid_desc>
+ <desc_tag name="tag">
+ <id val="257" />
+ <descriptor_ver val="3" />
+ <reserved val="0" />
+ <serial_num val="0" />
+ </desc_tag>
+ <file_num val="1" />
+ <file_char val="0" char="....." />
+ <l_fi val="6" />
+ <long_ad name="icb">
+ <len val="2048" />
+ <lb_addr name="loc">
+ <part_num val="0" />
+ </lb_addr>
+ <ad_flags val="0" />
+ <ad_id val="16" />
+ </long_ad>
+ <l_iu val="0" />
+ <file_id name="vomit" comp_id="8" />
+ <file_entry name="vomit" comp_id="8">
+ <desc_tag name="tag">
+ <id val="261" />
+ <descriptor_ver val="3" />
+ <reserved val="0" />
+ <serial_num val="0" />
+ </desc_tag>
+ <icb_tag name="icbtag">
+ <prev_num_dirs val="0" />
+ <strat_type val="4" />
+ <strat_param val="0x0 0x0" />
+ <max_num_entries val="1" />
+ <reserved val="0x0" />
+ <file_type val="5" />
+ <lb_addr name="parent_icb">
+ <part_num val="0" />
+ </lb_addr>
+ <flags val="8192" />
+ </icb_tag>
+ <uid val="0" />
+ <gid val="0" />
+ <perm val="0x1884" />
+ <link_cnt val="1" />
+ <rec_format val="0" />
+ <rec_disp_attr val="0" />
+ <rec_len val="0" />
+ <inf_len val="5" />
+ <logblks_rec val="1" />
+ <ckpoint val="1" />
+ <long_ad name="ex_attr_icb">
+ <len val="0" />
+ <lb_addr name="loc">
+ <part_num val="0" />
+ </lb_addr>
+ <ad_flags val="0" />
+ <ad_id val="0" />
+ </long_ad>
+ <regid name="imp_id">
+ <flags val="0" />
+ <id val="*Silicon Graphics, Inc" />
+ <id_suffix val="" />
+ </regid>
+ <unique_id val="16" />
+ <l_ea val="0" />
+ <l_ad val="8" />
+ <short_ad name="ads.sht">
+ <len val="5" />
+ </short_ad>
+ <file_content>
+ 70 69 7A 61
+ </file_content>
+ </file_entry>
+ </fileid_desc>
+ <fileid_desc>
+ <desc_tag name="tag">
+ <id val="257" />
+ <descriptor_ver val="3" />
+ <reserved val="0" />
+ <serial_num val="0" />
+ </desc_tag>
+ <file_num val="1" />
+ <file_char val="16" char="Meta...." />
+ <l_fi val="6" />
+ <long_ad name="icb">
+ <len val="2048" />
+ <lb_addr name="loc">
+ <part_num val="0" />
+ </lb_addr>
+ <ad_flags val="0" />
+ <ad_id val="16" />
+ </long_ad>
+ <l_iu val="0" />
+ <file_id name="noise" comp_id="8" />
+ <file_entry name="noise" comp_id="8">
+ <desc_tag name="tag">
+ <id val="261" />
+ <descriptor_ver val="3" />
+ <reserved val="0" />
+ <serial_num val="0" />
+ </desc_tag>
+ <icb_tag name="icbtag">
+ <prev_num_dirs val="0" />
+ <strat_type val="4" />
+ <strat_param val="0x0 0x0" />
+ <max_num_entries val="1" />
+ <reserved val="0x0" />
+ <file_type val="5" />
+ <lb_addr name="parent_icb">
+ <part_num val="0" />
+ </lb_addr>
+ <flags val="8192" />
+ </icb_tag>
+ <uid val="0" />
+ <gid val="0" />
+ <perm val="0x1884" />
+ <link_cnt val="1" />
+ <rec_format val="0" />
+ <rec_disp_attr val="0" />
+ <rec_len val="0" />
+ <inf_len val="5" />
+ <logblks_rec val="1" />
+ <ckpoint val="1" />
+ <long_ad name="ex_attr_icb">
+ <len val="0" />
+ <lb_addr name="loc">
+ <part_num val="0" />
+ </lb_addr>
+ <ad_flags val="0" />
+ <ad_id val="0" />
+ </long_ad>
+ <regid name="imp_id">
+ <flags val="0" />
+ <id val="*Silicon Graphics, Inc" />
+ <id_suffix val="" />
+ </regid>
+ <unique_id val="16" />
+ <l_ea val="0" />
+ <l_ad val="8" />
+ <short_ad name="ads.sht">
+ <len val="5" />
+ </short_ad>
+ <file_content>
+ 77 68 63 6B
+ </file_content>
+ </file_entry>
+ </fileid_desc>
+ </stream_directory>
+ <file_content>
+ 66 69 6C 65 5F 63 6F 6E 74 65 6E 74 73 A
+ </file_content>
+ </extended_file_entry>
+ </fileid_desc>
+ </file_entry>
+</udf>
+get root EA colour: marone
+Attribute "colour" had a 6 byte value for foo:
+marone
+get root EA noise: whack
+Attribute "noise" had a 5 byte value for foo:
+whack
+get user EA vomit: pizza
+Attribute "vomit" had a 5 byte value for foo:
+pizza
+remove the root colour EA
+list root EAs: <root:noise>:
+Attribute "noise" has a 5 byte value for foo
+list user EAs: <user:colour,vomit>:
+Attribute "colour" has a 5 byte value for foo
+Attribute "vomit" has a 5 byte value for foo
+remove the final root EA noise
+list root EAs: none
+ <file_entry name="/">
+ <desc_tag name="tag">
+ <id val="261" />
+ <descriptor_ver val="3" />
+ <reserved val="0" />
+ <serial_num val="0" />
+ </desc_tag>
+ <icb_tag name="icbtag">
+ <prev_num_dirs val="0" />
+ <strat_type val="4" />
+ <strat_param val="0x0 0x0" />
+ <max_num_entries val="1" />
+ <reserved val="0x0" />
+ <file_type val="4" />
+ <lb_addr name="parent_icb">
+ <part_num val="0" />
+ </lb_addr>
+ <flags val="0" />
+ </icb_tag>
+ <uid val="0" />
+ <gid val="0" />
+ <perm val="0x3CA5" />
+ <link_cnt val="1" />
+ <rec_format val="0" />
+ <rec_disp_attr val="0" />
+ <rec_len val="0" />
+ <inf_len val="84" />
+ <logblks_rec val="1" />
+ <ckpoint val="1" />
+ <long_ad name="ex_attr_icb">
+ <len val="0" />
+ <lb_addr name="loc">
+ <part_num val="0" />
+ </lb_addr>
+ <ad_flags val="0" />
+ <ad_id val="0" />
+ </long_ad>
+ <regid name="imp_id">
+ <flags val="0" />
+ <id val="*Silicon Graphics, Inc." />
+ <id_suffix val="" />
+ </regid>
+ <unique_id val="0" />
+ <l_ea val="0" />
+ <l_ad val="8" />
+ <short_ad name="ads.sht">
+ <len val="84" />
+ </short_ad>
+ <fileid_desc>
+ <desc_tag name="tag">
+ <id val="257" />
+ <descriptor_ver val="3" />
+ <reserved val="0" />
+ <serial_num val="0" />
+ </desc_tag>
+ <file_num val="1" />
+ <file_char val="10" char=".Parent.Dir." />
+ <l_fi val="0" />
+ <long_ad name="icb">
+ <len val="2048" />
+ <lb_addr name="loc">
+ <part_num val="0" />
+ </lb_addr>
+ <ad_flags val="0" />
+ <ad_id val="0" />
+ </long_ad>
+ <l_iu val="0" />
+ <file_id name="" />
+ </fileid_desc>
+ <fileid_desc>
+ <desc_tag name="tag">
+ <id val="257" />
+ <descriptor_ver val="3" />
+ <reserved val="0" />
+ <serial_num val="0" />
+ </desc_tag>
+ <file_num val="1" />
+ <file_char val="0" char="....." />
+ <l_fi val="4" />
+ <long_ad name="icb">
+ <len val="2048" />
+ <lb_addr name="loc">
+ <part_num val="0" />
+ </lb_addr>
+ <ad_flags val="0" />
+ <ad_id val="16" />
+ </long_ad>
+ <l_iu val="0" />
+ <file_id name="foo" comp_id="8" />
+ <extended_file_entry name="foo" comp_id="8">
+ <desc_tag name="tag">
+ <id val="266" />
+ <descriptor_ver val="3" />
+ <reserved val="0" />
+ <serial_num val="0" />
+ </desc_tag>
+ <icb_tag name="icbtag">
+ <prev_num_dirs val="0" />
+ <strat_type val="4" />
+ <strat_param val="0x0 0x0" />
+ <max_num_entries val="1" />
+ <reserved val="0x0" />
+ <file_type val="5" />
+ <lb_addr name="parent_icb">
+ <part_num val="0" />
+ </lb_addr>
+ <flags val="0" />
+ </icb_tag>
+ <uid val="0" />
+ <gid val="0" />
+ <perm val="0x1884" />
+ <link_cnt val="2" />
+ <rec_format val="0" />
+ <rec_disp_attr val="0" />
+ <rec_len val="0" />
+ <inf_len val="14" />
+ <obj_size val="24" />
+ <logblks_rec val="1" />
+ <ckpoint val="1" />
+ <long_ad name="ex_attr_icb">
+ <len val="0" />
+ <lb_addr name="loc">
+ <part_num val="0" />
+ </lb_addr>
+ <ad_flags val="0" />
+ <ad_id val="0" />
+ </long_ad>
+ <long_ad name="streamdir_icb">
+ <len val="2048" />
+ <lb_addr name="loc">
+ <part_num val="0" />
+ </lb_addr>
+ <ad_flags val="0" />
+ <ad_id val="16" />
+ </long_ad>
+ <regid name="imp_id">
+ <flags val="0" />
+ <id val="*Silicon Graphics, Inc" />
+ <id_suffix val="" />
+ </regid>
+ <unique_id val="16" />
+ <l_ea val="0" />
+ <l_ad val="8" />
+ <short_ad name="ads.sht">
+ <len val="14" />
+ </short_ad>
+ <stream_directory>
+ <fileid_desc>
+ <desc_tag name="tag">
+ <id val="257" />
+ <descriptor_ver val="3" />
+ <reserved val="0" />
+ <serial_num val="0" />
+ </desc_tag>
+ <file_num val="1" />
+ <file_char val="8" char=".Parent..." />
+ <l_fi val="0" />
+ <long_ad name="icb">
+ <len val="2048" />
+ <lb_addr name="loc">
+ <part_num val="0" />
+ </lb_addr>
+ <ad_flags val="0" />
+ <ad_id val="16" />
+ </long_ad>
+ <l_iu val="0" />
+ <file_id name="" />
+ </fileid_desc>
+ <fileid_desc>
+ <desc_tag name="tag">
+ <id val="257" />
+ <descriptor_ver val="3" />
+ <reserved val="0" />
+ <serial_num val="0" />
+ </desc_tag>
+ <file_num val="1" />
+ <file_char val="20" char="Meta.Deleted.." />
+ <l_fi val="7" />
+ <long_ad name="icb">
+ <len val="0" />
+ <lb_addr name="loc">
+ <part_num val="0" />
+ </lb_addr>
+ <ad_flags val="0" />
+ <ad_id val="0" />
+ </long_ad>
+ <l_iu val="0" />
+ <file_id name="colour" comp_id="254" />
+ <fileid_desc>
+ <desc_tag name="tag">
+ <id val="257" />
+ <descriptor_ver val="3" />
+ <reserved val="0" />
+ <serial_num val="0" />
+ </desc_tag>
+ <file_num val="1" />
+ <file_char val="0" char="....." />
+ <l_fi val="7" />
+ <long_ad name="icb">
+ <len val="2048" />
+ <lb_addr name="loc">
+ <part_num val="0" />
+ </lb_addr>
+ <ad_flags val="0" />
+ <ad_id val="16" />
+ </long_ad>
+ <l_iu val="0" />
+ <file_id name="colour" comp_id="8" />
+ <file_entry name="colour" comp_id="8">
+ <desc_tag name="tag">
+ <id val="261" />
+ <descriptor_ver val="3" />
+ <reserved val="0" />
+ <serial_num val="0" />
+ </desc_tag>
+ <icb_tag name="icbtag">
+ <prev_num_dirs val="0" />
+ <strat_type val="4" />
+ <strat_param val="0x0 0x0" />
+ <max_num_entries val="1" />
+ <reserved val="0x0" />
+ <file_type val="5" />
+ <lb_addr name="parent_icb">
+ <part_num val="0" />
+ </lb_addr>
+ <flags val="8192" />
+ </icb_tag>
+ <uid val="0" />
+ <gid val="0" />
+ <perm val="0x1884" />
+ <link_cnt val="1" />
+ <rec_format val="0" />
+ <rec_disp_attr val="0" />
+ <rec_len val="0" />
+ <inf_len val="5" />
+ <logblks_rec val="1" />
+ <ckpoint val="1" />
+ <long_ad name="ex_attr_icb">
+ <len val="0" />
+ <lb_addr name="loc">
+ <part_num val="0" />
+ </lb_addr>
+ <ad_flags val="0" />
+ <ad_id val="0" />
+ </long_ad>
+ <regid name="imp_id">
+ <flags val="0" />
+ <id val="*Silicon Graphics, Inc" />
+ <id_suffix val="" />
+ </regid>
+ <unique_id val="16" />
+ <l_ea val="0" />
+ <l_ad val="8" />
+ <short_ad name="ads.sht">
+ <len val="5" />
+ </short_ad>
+ <file_content>
+ 62 65 67 65
+ </file_content>
+ </file_entry>
+ </fileid_desc>
+ <fileid_desc>
+ <desc_tag name="tag">
+ <id val="257" />
+ <descriptor_ver val="3" />
+ <reserved val="0" />
+ <serial_num val="0" />
+ </desc_tag>
+ <file_num val="1" />
+ <file_char val="0" char="....." />
+ <l_fi val="6" />
+ <long_ad name="icb">
+ <len val="2048" />
+ <lb_addr name="loc">
+ <part_num val="0" />
+ </lb_addr>
+ <ad_flags val="0" />
+ <ad_id val="16" />
+ </long_ad>
+ <l_iu val="0" />
+ <file_id name="vomit" comp_id="8" />
+ <file_entry name="vomit" comp_id="8">
+ <desc_tag name="tag">
+ <id val="261" />
+ <descriptor_ver val="3" />
+ <reserved val="0" />
+ <serial_num val="0" />
+ </desc_tag>
+ <icb_tag name="icbtag">
+ <prev_num_dirs val="0" />
+ <strat_type val="4" />
+ <strat_param val="0x0 0x0" />
+ <max_num_entries val="1" />
+ <reserved val="0x0" />
+ <file_type val="5" />
+ <lb_addr name="parent_icb">
+ <part_num val="0" />
+ </lb_addr>
+ <flags val="8192" />
+ </icb_tag>
+ <uid val="0" />
+ <gid val="0" />
+ <perm val="0x1884" />
+ <link_cnt val="1" />
+ <rec_format val="0" />
+ <rec_disp_attr val="0" />
+ <rec_len val="0" />
+ <inf_len val="5" />
+ <logblks_rec val="1" />
+ <ckpoint val="1" />
+ <long_ad name="ex_attr_icb">
+ <len val="0" />
+ <lb_addr name="loc">
+ <part_num val="0" />
+ </lb_addr>
+ <ad_flags val="0" />
+ <ad_id val="0" />
+ </long_ad>
+ <regid name="imp_id">
+ <flags val="0" />
+ <id val="*Silicon Graphics, Inc" />
+ <id_suffix val="" />
+ </regid>
+ <unique_id val="16" />
+ <l_ea val="0" />
+ <l_ad val="8" />
+ <short_ad name="ads.sht">
+ <len val="5" />
+ </short_ad>
+ <file_content>
+ 70 69 7A 61
+ </file_content>
+ </file_entry>
+ </fileid_desc>
+ <fileid_desc>
+ <desc_tag name="tag">
+ <id val="257" />
+ <descriptor_ver val="3" />
+ <reserved val="0" />
+ <serial_num val="0" />
+ </desc_tag>
+ <file_num val="1" />
+ <file_char val="20" char="Meta.Deleted.." />
+ <l_fi val="6" />
+ <long_ad name="icb">
+ <len val="0" />
+ <lb_addr name="loc">
+ <part_num val="0" />
+ </lb_addr>
+ <ad_flags val="0" />
+ <ad_id val="0" />
+ </long_ad>
+ <l_iu val="0" />
+ <file_id name="noise" comp_id="254" />
+ </stream_directory>
+ <file_content>
+ 66 69 6C 65 5F 63 6F 6E 74 65 6E 74 73 A
+ </file_content>
+ </extended_file_entry>
+ </fileid_desc>
+ </file_entry>
+</udf>
+delete the file foo - which will delete the associated streams
+ <file_entry name="/">
+ <desc_tag name="tag">
+ <id val="261" />
+ <descriptor_ver val="3" />
+ <reserved val="0" />
+ <serial_num val="0" />
+ </desc_tag>
+ <icb_tag name="icbtag">
+ <prev_num_dirs val="0" />
+ <strat_type val="4" />
+ <strat_param val="0x0 0x0" />
+ <max_num_entries val="1" />
+ <reserved val="0x0" />
+ <file_type val="4" />
+ <lb_addr name="parent_icb">
+ <part_num val="0" />
+ </lb_addr>
+ <flags val="0" />
+ </icb_tag>
+ <uid val="0" />
+ <gid val="0" />
+ <perm val="0x3CA5" />
+ <link_cnt val="1" />
+ <rec_format val="0" />
+ <rec_disp_attr val="0" />
+ <rec_len val="0" />
+ <inf_len val="84" />
+ <logblks_rec val="1" />
+ <ckpoint val="1" />
+ <long_ad name="ex_attr_icb">
+ <len val="0" />
+ <lb_addr name="loc">
+ <part_num val="0" />
+ </lb_addr>
+ <ad_flags val="0" />
+ <ad_id val="0" />
+ </long_ad>
+ <regid name="imp_id">
+ <flags val="0" />
+ <id val="*Silicon Graphics, Inc." />
+ <id_suffix val="" />
+ </regid>
+ <unique_id val="0" />
+ <l_ea val="0" />
+ <l_ad val="8" />
+ <short_ad name="ads.sht">
+ <len val="84" />
+ </short_ad>
+ <fileid_desc>
+ <desc_tag name="tag">
+ <id val="257" />
+ <descriptor_ver val="3" />
+ <reserved val="0" />
+ <serial_num val="0" />
+ </desc_tag>
+ <file_num val="1" />
+ <file_char val="10" char=".Parent.Dir." />
+ <l_fi val="0" />
+ <long_ad name="icb">
+ <len val="2048" />
+ <lb_addr name="loc">
+ <part_num val="0" />
+ </lb_addr>
+ <ad_flags val="0" />
+ <ad_id val="0" />
+ </long_ad>
+ <l_iu val="0" />
+ <file_id name="" />
+ </fileid_desc>
+ <fileid_desc>
+ <desc_tag name="tag">
+ <id val="257" />
+ <descriptor_ver val="3" />
+ <reserved val="0" />
+ <serial_num val="0" />
+ </desc_tag>
+ <file_num val="1" />
+ <file_char val="4" char="..Deleted.." />
+ <l_fi val="4" />
+ <long_ad name="icb">
+ <len val="0" />
+ <lb_addr name="loc">
+ <part_num val="0" />
+ </lb_addr>
+ <ad_flags val="0" />
+ <ad_id val="0" />
+ </long_ad>
+ <l_iu val="0" />
+ <file_id name="foo" comp_id="254" />
+ </file_entry>
+</udf>
diff --git a/tests/udf/101 b/tests/udf/101
new file mode 100755
index 00000000..0d274e53
--- /dev/null
+++ b/tests/udf/101
@@ -0,0 +1,61 @@
+#! /bin/bash
+# FS QA Test No. 101. Modified from UDFQA test 029.
+#
+# This tests mkfs_udf with -s [SIZE] option.
+#
+#-----------------------------------------------------------------------
+# Copyright (c) 2000-2004 Silicon Graphics, Inc. All Rights Reserved.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License as
+# published by the Free Software Foundation.
+#
+# This program is distributed in the hope that it would be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+#
+#-----------------------------------------------------------------------
+#
+
+seq=`basename $0`
+echo "QA output created by $seq"
+
+here=`pwd`
+tmp=/tmp/$$
+status=1 # failure is the default!
+FS_SIZE=2048
+trap "_cleanup; exit \$status" 0 1 2 3 15
+
+_cleanup()
+{
+ rm -f $tmp.*
+}
+
+# get standard environment, filters and checks
+. ./common.rc
+. ./common.filter
+
+# real QA test starts here
+_supported_fs udf
+_supported_os IRIX
+
+MKFS_OPTIONS="-s $FS_SIZE"
+
+_require_scratch
+_setup_udf_scratchdir
+umount $SCRATCH_MNT
+
+# Inspect the space bitmap
+echo bitmap | udf_db -c - $SCRATCH_DEV
+
+# Run udf_test
+_check_udf_filesystem $SCRATCH_DEV $FS_SIZE
+
+# success, all done
+status=0
+exit
diff --git a/tests/udf/101.out b/tests/udf/101.out
new file mode 100644
index 00000000..1ca59a8c
--- /dev/null
+++ b/tests/udf/101.out
@@ -0,0 +1,19 @@
+QA output created by 101
+ <space_bitmap name="unalloc">
+ <desc_tag name="tag">
+ <id val="264" />
+ <descriptor_ver val="3" />
+ <cksum val="13" />
+ <reserved val="0" />
+ <serial_num val="0" />
+ <desc_crc val="0" />
+ <desc_crc_len val="0" />
+ <tag_loc val="1" />
+ </desc_tag>
+ <num_bits val="1500" />
+ <num_bytes val="188" />
+ <bitmap>
+ 0-3 [4]: 0
+ 4-1499 [1496]: 1
+ </bitmap>
+ </space_bitmap>
diff --git a/tests/udf/102 b/tests/udf/102
new file mode 100755
index 00000000..68407a7e
--- /dev/null
+++ b/tests/udf/102
@@ -0,0 +1,58 @@
+#! /bin/bash
+# FS QA Test No. 102
+#
+# This tests mkfs_udf/mkudffs and the device detection code
+# Modified from UDFQA test 031.
+#
+#-----------------------------------------------------------------------
+# Copyright (c) 2000-2004 Silicon Graphics, Inc. All Rights Reserved.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License as
+# published by the Free Software Foundation.
+#
+# This program is distributed in the hope that it would be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+#
+#-----------------------------------------------------------------------
+#
+
+seq=`basename $0`
+echo "QA output created by $seq"
+
+here=`pwd`
+tmp=/tmp/$$
+status=1 # failure is the default!
+trap "_cleanup; exit \$status" 0 1 2 3 15
+
+_cleanup()
+{
+ rm -f $tmp.*
+ cd /
+ _cleanup_testdir
+}
+# get standard environment, filters and checks
+. ./common.rc
+. ./common.filter
+
+# real QA test starts here
+_supported_fs udf
+_supported_os Linux IRIX
+
+_require_scratch
+_setup_udf_scratchdir
+
+# Checks the udf filesystem
+_check_udf_filesystem $SCRATCH_DEV
+
+echo "Finished"
+
+# success, all done
+status=0
+exit
diff --git a/tests/udf/102.out b/tests/udf/102.out
new file mode 100644
index 00000000..bce1a19d
--- /dev/null
+++ b/tests/udf/102.out
@@ -0,0 +1,2 @@
+QA output created by 102
+Finished
diff --git a/tests/udf/group b/tests/udf/group
new file mode 100644
index 00000000..24f682cc
--- /dev/null
+++ b/tests/udf/group
@@ -0,0 +1,8 @@
+# QA groups control file
+# Defines test groups and nominal group owners
+# - do not start group names with a digit
+# - comment line before each group is "new" description
+#
+098 udf auto
+101 udf
+102 udf