files and directories.
--- /dev/null
+#! /bin/sh
+# XFS QA Test No. 026
+# $Id: 1.1 $
+#
+# Test xfsdump/xfsrestore to a dump file (as opposed to a tape)
+# and test restoring various permissions/modes
+#
+#-----------------------------------------------------------------------
+# Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of version 2 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.
+#
+# Further, this software is distributed without any warranty that it is
+# free of the rightful claim of any third person regarding infringement
+# or the like. Any license provided herein, whether implied or
+# otherwise, applies only to this software file. Patent licenses, if
+# any, provided herein do not apply to combinations of this program with
+# other software, or any other product whatsoever.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write the Free Software Foundation, Inc., 59
+# Temple Place - Suite 330, Boston MA 02111-1307, USA.
+#
+# Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy,
+# Mountain View, CA 94043, or:
+#
+# http://www.sgi.com
+#
+# For further information regarding this notice, see:
+#
+# http://oss.sgi.com/projects/GenInfo/SGIGPLNoticeExplan/
+#-----------------------------------------------------------------------
+#
+# creator
+owner=tes@bruce.melbourne.sgi.com
+
+seq=`basename $0`
+echo "QA output created by $seq"
+
+here=`pwd`
+tmp=/tmp/$$
+status=0 # success is the default!
+trap "rm -f $tmp.*; exit \$status" 0 1 2 3 15
+
+# get standard environment, filters and checks
+. ./common.rc
+. ./common.dump
+
+# real QA test starts here
+
+_create_dumpdir_fill_perm
+_do_dump_file
+_do_restore_file
+_ls_compare_sub
+
+# success, all done
+exit
--- /dev/null
+QA output created by 056
+Creating directory system to dump using src/fill.
+Setup ..........
+Dumping to file...
+xfsdump -f DUMP_FILE -M stress_tape_media -L stress_056 SCRATCH_MNT
+xfsdump: version 3.0 - Running single-threaded
+xfsdump: level 0 dump of HOSTNAME:SCRATCH_MNT
+xfsdump: dump date: DATE
+xfsdump: session id: ID
+xfsdump: session label: "stress_056"
+xfsdump: ino map phase 1: skipping (no subtrees specified)
+xfsdump: ino map phase 2: constructing initial dump list
+xfsdump: ino map phase 3: skipping (no pruning necessary)
+xfsdump: ino map phase 4: skipping (size estimated in phase 2)
+xfsdump: ino map phase 5: skipping (only one dump stream)
+xfsdump: ino map construction complete
+xfsdump: estimated dump size: NUM bytes
+xfsdump: /var/xfsdump/inventory created
+xfsdump: creating dump session media file 0 (media 0, file 0)
+xfsdump: dumping ino map
+xfsdump: dumping directories
+xfsdump: dumping non-directory files
+xfsdump: ending media file
+xfsdump: media file size NUM bytes
+xfsdump: dump size (non-dir files) : NUM bytes
+xfsdump: dump complete: SECS seconds elapsed
+Restoring from file...
+xfsrestore -f DUMP_FILE -L stress_056 RESTORE_DIR
+xfsrestore: version 3.0 - Running single-threaded
+xfsrestore: using online session inventory
+xfsrestore: searching media for directory dump
+xfsrestore: examining media file 0
+xfsrestore: reading directories
+xfsrestore: directory post-processing
+xfsrestore: restoring non-directory files
+xfsrestore: restore complete: SECS seconds elapsed
+Comparing listing of dump directory with restore directory
+Files TMP.dump_dir and TMP.restore_dir are identical
End-of-File
}
+_mk_fillconfig_perm()
+{
+ cat <<End-of-File >$tmp.config
+# pathname size/dir user group mode
+#
+file_suid 10 $nobody $nobody 04777
+file_guid 10 $nobody $nobody 02777
+file_sticky 10 $nobody $nobody 01777
+file_mix1 10 $nobody $nobody 761
+file_mix2 10 $nobody $nobody 642
+dir_suid d $nobody $nobody 04777
+dir_guid d $nobody $nobody 02777
+dir_sticky d $nobody $nobody 01777
+dir_mix1 d $nobody $nobody 761
+dir_mix2 d $nobody $nobody 642
+End-of-File
+}
+
#
# Create a bunch of directories/files of different sizes
# filled with data.
sed -e '/^#/d' $tmp.config \
| while read file nbytes owner group perms
do
- dir=`dirname $file`
- if [ "$dir" != "." ]
- then
+ if [ $nbytes = "d" ]; then
+ # create a directory
+ dir=$file
if [ ! -d $dir ]
then
if mkdir $dir
exit 1
fi
fi
- fi
- rm -f $file
- if $here/src/fill $file $file $nbytes
- then
- :
else
- $verbose && echo
- echo "Error: cannot create \"$file\""
- exit 1
+ # create a directory/file
+ dir=`dirname $file`
+ if [ "$dir" != "." ]
+ then
+ if [ ! -d $dir ]
+ then
+ if mkdir $dir
+ then
+ :
+ else
+ $verbose && echo
+ echo "Error: cannot mkdir \"$dir\""
+ exit 1
+ fi
+ fi
+ fi
+ rm -f $file
+ if $here/src/fill $file $file $nbytes
+ then
+ :
+ else
+ $verbose && echo
+ echo "Error: cannot create \"$file\""
+ exit 1
+ fi
fi
if [ -n "$owner" -a -n "$group" ]; then
chown $owner.$group $file
_stable_fs
}
+_create_dumpdir_fill_perm()
+{
+ _wipe_fs
+ _mk_fillconfig_perm
+ _do_create_dumpdir_fill
+ _stable_fs
+}
+
#
052 quota db auto
053 acl repair auto
054 quota auto
-055 dump auto
+055 xfsdump auto
+056 xfsdump auto