Fix up configure problems in xfstests and xfsprogs.
[xfstests-dev.git] / 082
1 #! /bin/sh
2 # FS QA Test No. 082
3 #
4 # Test out the v2 stripe logs with logprint
5 #
6 #-----------------------------------------------------------------------
7 # Copyright (c) 2000-2003 Silicon Graphics, Inc.  All Rights Reserved.
8
9 # This program is free software; you can redistribute it and/or modify it
10 # under the terms of version 2 of the GNU General Public License as
11 # published by the Free Software Foundation.
12
13 # This program is distributed in the hope that it would be useful, but
14 # WITHOUT ANY WARRANTY; without even the implied warranty of
15 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
16
17 # Further, this software is distributed without any warranty that it is
18 # free of the rightful claim of any third person regarding infringement
19 # or the like.  Any license provided herein, whether implied or
20 # otherwise, applies only to this software file.  Patent licenses, if
21 # any, provided herein do not apply to combinations of this program with
22 # other software, or any other product whatsoever.
23
24 # You should have received a copy of the GNU General Public License along
25 # with this program; if not, write the Free Software Foundation, Inc., 59
26 # Temple Place - Suite 330, Boston MA 02111-1307, USA.
27
28 # Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy,
29 # Mountain View, CA  94043, or:
30
31 # http://www.sgi.com 
32
33 # For further information regarding this notice, see: 
34
35 # http://oss.sgi.com/projects/GenInfo/SGIGPLNoticeExplan/
36 #-----------------------------------------------------------------------
37 #
38 # creator
39 owner=tes@melbourne.sgi.com
40
41 seq=`basename $0`
42 echo "QA output created by $seq"
43
44 here=`pwd`
45 tmp=/tmp/$$
46 status=1        # failure is the default!
47
48 # get standard environment, filters and checks
49 . ./common.rc
50 . ./common.filter
51 . ./common.log
52
53 _cleanup()
54 {
55     cd /
56     _cleanup_logfiles
57     rm -f $tmp.*
58     echo "*** unmount"
59     umount $SCRATCH_MNT 2>/dev/null
60 }
61 trap "_cleanup; exit \$status" 0 1 2 3 15
62
63 # real QA test starts here
64 _supported_fs xfs
65 _supported_os IRIX Linux
66
67 # prelim
68 rm -f $seq.full $tmp.*
69 _require_scratch
70
71 # link correct .out file
72 _link_out_file $seq.op
73
74 echo "*** init FS"
75 umount $SCRATCH_DEV >/dev/null 2>&1
76
77 cat >$tmp.seq.params <<EOF
78 # mkfs-opt             mount-opt            start-blk
79   version=2            logbsize=32k       2
80   version=2,su=4096    logbsize=32k       8
81   version=2,su=32768   logbsize=32k       64
82 #
83 # expect following line to fail
84 #
85   version=2,su=36864   logbsize=32k       72
86 #
87 # following is not a power of 2 BBs 
88 #
89   version=2,su=5120    logbsize=32k       10
90 EOF
91
92 # Do the work for various log params which
93 # should not effect the data content of the log
94 # Try with and without sync'ing - sync'ing will mean that
95 # the log will be written out unfilled and thus the log 
96 # stripe can have an effect.
97 #
98 for s in sync nosync ; do
99     cat $tmp.seq.params \
100     | while read mkfs mnt start restofline
101     do
102         if [ "$mkfs" = "#" ]; then 
103             continue
104         fi
105         if [ "$HOSTOS" = "IRIX" ]; then 
106             # don't have umount rec at start on IRIX
107             # so we won't have to skip over it and get to 
108             # another stripe boundary
109             start=0
110         fi
111         echo "--- mkfs=$mkfs, mnt=$mnt, sync=$s ---"
112         export MKFS_OPTIONS="-l $mkfs"
113         export MOUNT_OPTIONS="-o $mnt"
114         if ! _mkfs_log; then
115             continue
116         fi      
117         if [ $s = "sync" ]; then
118             _create_log_sync
119         else
120             _create_log
121         fi
122         if [ $? -ne 0 ]; then
123             continue
124         fi
125         _check_log
126
127         sync_suffix=".$s"
128
129         if [ $s = "sync" ]; then
130             # if sync then we have chance of DATA FORK EXTENTS items
131             # not hanging around very long due to inode syncing to disk
132             # (see comment in xfs_iflush_int())
133             # and this is to hard to reconcile in the op output
134             :
135         else
136             _print_operation
137             _cmp_op_output $seq.op $filtered
138         fi
139
140         _print_transaction_inode $start
141         _cmp_output $seq.trans_inode $filtered
142
143         _print_transaction_buf $start
144         _cmp_output $seq.trans_buf $filtered
145     done
146 done
147
148 status=0
149 exit