fixed mkfs options to stop failure when sunit and swidth are set as MKFS_OPTIONS
[xfstests-dev.git] / common.config
1 ##/bin/sh
2 #
3 # Copyright (c) 2000-2003 Silicon Graphics, Inc.  All Rights Reserved.
4 #
5 # setup and check for config parameters, and in particular
6 #
7 # TEST_DIR              - scratch test directory that is in an already
8 #                         mounted XFS file system, needs to be be world
9 #                         writeable
10 # TEST_DEV              - device for file system containing TEST_DIR
11 # SCRATCH_DEV           - device you can make a scratch file system on
12 # SCRATCH_MNT           - mount point for scratch file system
13 #
14 # and optionally:
15 # SCRATCH_LOGDEV        - scratch log device for external log testing
16 # SCRATCH_RTDEV         - scratch rt dev
17 # TEST_LOGDEV           - test log device for external log testing
18 # TEST_RTDEV            - test rt dev
19 # TAPE_DEV              - the tape device for the xfsdump tests
20 # RMT_TAPE_DEV          - the remote tape device for the xfsdump tests
21 # RMT_IRIXTAPE_DEV      - the IRIX remote tape device for the xfsdump tests
22 # RMT_TAPE_USER         - remote user for tape device
23 #
24 # - These can be added to known_hosts() below or a separate local
25 #   configuration file can be used (using the HOST_OPTIONS variable).
26 # - This script is shared by the stress test system and the auto-qa
27 #   system (includes both regression test and benchmark components).
28 # - TEST_DEV & TEST_DIR must be assigned.
29 # - this script shouldn't make any assertions about filesystem
30 #   validity or mountedness.
31 #
32
33 # Warning: don't put freeware before /usr/bsd on IRIX coz you'll
34 #          get the wrong hostname and set your system name to -s  :)
35 [ -d /usr/bsd ] && PATH=$PATH:/usr/bsd
36 [ -d /usr/freeware/bin ] && PATH=$PATH:/usr/freeware/bin
37 PATH=".:$PATH"
38
39 HOST=`hostname -s`
40 HOSTOS=`uname -s`
41 [ "$HOSTOS" = "IRIX64" ] && HOSTOS="IRIX"
42
43 MODULAR=0               # using XFS as a module or not
44 BOOT="/boot"            # install target for kernels
45 export EXTRA=${EXTRA:=xfs-qa}
46
47 # general parameters (mainly for auto-qa)
48 SOAK_PROC=3             # -p option to fsstress
49 SOAK_STRESS=10000       # -n option to fsstress
50 SOAK_PASSES=-1          # count of repetitions of fsstress (while soaking)
51 EMAIL=root@localhost    # where auto-qa will send its status messages
52 export HOST_OPTIONS=${HOST_OPTIONS:=local.config}
53 export CHECK_OPTIONS=${CHECK_OPTIONS:="-g auto"}
54 export BENCH_PASSES=${BENCH_PASSES:=5}
55 export XFS_MKFS_OPTIONS=${XFS_MKFS_OPTIONS:=-bsize=4096}
56
57 export PWD=`pwd`
58 #export DEBUG=${DEBUG:=...} # arbitrary CFLAGS really.
59 export MALLOCLIB=${MALLOCLIB:=/usr/lib/libefence.a}
60 export LOCAL_CONFIGURE_OPTIONS=${LOCAL_CONFIGURE_OPTIONS:=--enable-readline=yes}
61
62 # $1 = prog to look for, $2* = default pathnames if not found in $PATH
63 set_prog_path()
64 {
65     p=`which $1 2> /dev/null`
66     if [ -n "$p" -a -x "$p" ]
67     then
68         echo $p
69         return 0
70     fi
71     p=$1
72
73     shift
74     for f
75     do
76         if [ -x $f ]
77         then
78             echo $f
79             return 0
80         fi
81     done
82
83     echo ""
84     return 1
85 }
86
87 _fatal()
88 {
89     echo "$*"
90     status=1
91     exit 1
92 }
93
94 export MKFS_PROG="`set_prog_path mkfs`"
95 [ "$MKFS_PROG" = "" ] && _fatal "mkfs not found"
96
97 export MOUNT_PROG="`set_prog_path mount`"
98 [ "$MOUNT_PROG" = "" ] && _fatal "mount not found"
99
100 export UMOUNT_PROG="`set_prog_path umount`"
101 [ "$UMOUNT_PROG" = "" ] && _fatal "umount not found"
102
103 export FSSTRESS_PROG="`set_prog_path fsstress $PWD/ltp/fsstress`"
104 [ "$FSSTRESS_PROG" = "" ] && _fatal "fsstress not found"
105
106 export NSLOOKUP_PROG="`set_prog_path nslookup`"
107 [ "$NSLOOKUP_PROG" = "" ] && _fatal "nslookup not found"
108
109 export PERL_PROG="`set_prog_path perl`"
110 [ "$PERL_PROG" = "" ] && _fatal "perl not found"
111
112 export AWK_PROG="`set_prog_path awk`"
113 [ "$AWK_PROG" = "" ] && _fatal "awk not found"
114
115 export SED_PROG="`set_prog_path sed`"
116 [ "$SED_PROG" = "" ] && _fatal "sed not found"
117
118 export PS_ALL_FLAGS="-ef"
119
120 export DF_PROG="`set_prog_path df`"
121 [ "$DF_PROG" = "" ] && _fatal "df not found"
122 [ "$HOSTOS" = "Linux" ] && export DF_PROG="$DF_PROG -T"
123
124 export XFS_LOGPRINT_PROG="`set_prog_path xfs_logprint`"
125 export XFS_REPAIR_PROG="`set_prog_path xfs_repair`"
126 export XFS_CHECK_PROG="`set_prog_path xfs_check`"
127 export XFS_DB_PROG="`set_prog_path xfs_db`"
128 export XFS_GROWFS_PROG=`set_prog_path xfs_growfs`
129 export XFS_IO_PROG="`set_prog_path xfs_io`"
130
131 case "$HOSTOS" in
132     IRIX*)
133            export MKFS_XFS_PROG="`set_prog_path mkfs_xfs`"
134            export MKFS_UDF_PROG="`set_prog_path mkfs_udf`"
135            export XFS_FSR_PROG="`set_prog_path /usr/etc/fsr_xfs`"
136            export MKFS_NFS_PROG="false"
137            ;;
138     Linux)
139            export MKFS_XFS_PROG="`set_prog_path mkfs.xfs`"
140            export MKFS_UDF_PROG="`set_prog_path mkudffs`"
141            export XFS_FSR_PROG="`set_prog_path xfs_fsr`"
142            export MKFS_NFS_PROG="false"
143            ;;
144 esac
145
146 known_hosts()
147 {
148         case "$HOST"
149         in
150             sheila)
151                 MODULAR=1
152                 EMAIL="nathans@larry"
153                 SCRATCH_MNT=/mnt/scratch
154                 SCRATCH_DEV=/dev/hdb1
155                 TEST_DIR=/mnt/test
156                 TEST_DEV=/dev/hdb2
157                 TEST_LOGDEV=/dev/hdb3
158                 SCRATCH_LOGDEV=/dev/hdb5
159                 #SCRATCH_RTDEV=/dev/hdb6
160                 #RMT_TAPE_DEV=bruce:/dev/st0
161                 #RMT_IRIXTAPE_DEV=snort:/dev/tape
162                 #RMT_TAPE_USER=guest
163                 ;;
164             bruce)
165                 MODULAR=0
166                 EMAIL="nathans@larry"
167                 SCRATCH_MNT=/mnt/xfs0
168                 SCRATCH_DEV=/dev/sdb5
169                 #SCRATCH_RTDEV=/dev/sdc1
170                 SCRATCH_LOGDEV=/dev/sda11
171                 TEST_DIR=/mnt/xfs1
172                 TEST_DEV=/dev/sdc3
173                 #TEST_RTDEV=/dev/sdb6
174                 TEST_LOGDEV=/dev/sda9
175                 #TAPE_DEV=/dev/st0
176                 #RMT_TAPE_DEV=bruce:/dev/st0
177                 #RMT_IRIXTAPE_DEV=snort:/dev/tape
178                 #RMT_TAPE_USER=guest
179                 ;;
180             frodo)
181                 MODULAR=0
182                 EMAIL="nathans@larry"
183                 TEST_DEV=/dev/hda6
184                 TEST_DIR=/mnt/test
185                 SCRATCH_DEV=/dev/hda7
186                 SCRATCH_MNT=/mnt/scratch
187                 SCRATCH_LOGDEV=/dev/hda9
188                 ;;
189             goldfish)
190                 MODULAR=0
191                 TEST_DEV=/dev/hdc1
192                 TEST_DIR=/mnt/xfs0
193                 SCRATCH_DEV=/dev/hdc2
194                 SCRATCH_MNT=/mnt/xfs1
195                 SCRATCH_LOGDEV=/dev/hdc3
196                 ;;
197             burst)
198                 TEST_DIR=/xfs
199                 TEST_DEV=/dev/hda3
200                 SCRATCH_DEV=/dev/hda7
201                 SCRATCH_MNT=/scratch
202                 ;;
203             lumpy)
204                 TEST_DEV=/dev/sdc5
205                 TEST_DIR=/mnt/scratch_0
206                 SCRATCH_DEV=/dev/sdc7
207                 SCRATCH_MNT=/mnt/scratch_2
208                 ;;
209             bongo)
210                 TEST_DEV=/dev/hda8
211                 TEST_DIR=/xfs1
212                 SCRATCH_DEV=/dev/hda9
213                 SCRATCH_MNT=/xfs2
214                 SCRATCH_LOGDEV=/dev/hda10
215                 SCRATCH_RTDEV=/dev/hda11
216                 ;;
217             surly)
218                 TEST_DEV=/dev/hda9
219                 TEST_DIR=/mnt/xfs1
220                 SCRATCH_DEV=/dev/hda8
221                 SCRATCH_MNT=/mnt/xfs0
222                 SCRATCH_LOGDEV=/dev/hda10
223                 TAPE_DEV=/dev/st0
224                 RMT_TAPE_DEV=fuzzy:/dev/st0
225                 RMT_IRIXTAPE_DEV=blub:/dev/tape
226                 RMT_TAPE_USER=guest
227                 ;;
228             permit)
229                 TEST_DEV=/dev/sdc1
230                 TEST_DIR=/mnt/xfs0
231                 SCRATCH_DEV=/dev/sdd1
232                 SCRATCH_MNT=/mnt/xfs1
233                 ;;
234             indra)
235                 TEST_DEV=/dev/sdb1
236                 TEST_DIR=/mnt/xfs0
237                 SCRATCH_DEV=/dev/sdb2
238                 SCRATCH_MNT=/mnt/xfs1
239                 ;;
240             usermode)
241                 TEST_DEV=/dev/ubd/1
242                 TEST_DIR=/mnt/test
243                 SCRATCH_DEV=/dev/ubd/2
244                 SCRATCH_MNT=/mnt/scratch
245                 SCRATCH_RTDEV=/dev/ubd/3
246                 SCRATCH_LOGDEV=/dev/ubd/4
247                 ;;
248             lite)
249                 TEST_DEV=/dev/sda1
250                 TEST_DIR=/mnt/sda1
251                 SCRATCH_DEV=/dev/sda2
252                 SCRATCH_MNT=/mnt/sda2
253                 SCRATCH_LOGDEV=/dev/sda3
254                 SCRATCH_RTDEV=/dev/sda4
255                 ;;
256             dmfnt2)
257                 TEST_DEV=/dev/sda6
258                 TEST_DIR=/mnt/test
259                 SCRATCH_DEV=/dev/sdc6
260                 SCRATCH_MNT=/mnt/scratch
261                 TAPE_DEV=/dev/st0
262                 RMT_TAPE_DEV=longhorn:/dev/tape
263                 # RMT_IRIXTAPE_DEV=longhorn:/dev/tape
264                 RMT_TAPE_USER=guest
265                 ;;
266             lab343)
267                 MODULAR=0
268                 EMAIL="hch@sgi.com"
269                 TEST_DEV=/dev/sdb1
270                 SCRATCH_DEV=/dev/sdb2
271                 SCRATCH_LOGDEV=/dev/sdb5
272                 SCRATCH_RTDEV=/dev/sdb6
273                 TEST_DIR=/qa/test
274                 SCRATCH_MNT=/qa/scratch
275                 ;;
276             dribble)
277                 MODULAR=0
278                 EMAIL="ajones@sgi.com"
279                 TEST_DIR=/mnt/test
280                 TEST_DEV=/dev/dsk/dks0d2s0
281                 #TEST_LOGDEV=
282                 SCRATCH_MNT=/mnt/scratch
283                 #SCRATCH_DEV=emu:/mnt/scratch
284                 SCRATCH_DEV=/dev/dsk/dks0d2s1
285                 #SCRATCH_LOGDEV=
286                 #SCRATCH_RTDEV=
287                 TAPE_DEV=/dev/tape
288                 RMT_TAPE_DEV=icy:/dev/st0
289                 RMT_TAPE_USER=guest
290                 #RMT_IRIXTAPE_DEV=snort:/dev/tape
291                 ;;
292             cxfsirix1)
293                 EMAIL="ajones@sgi.com"
294                 TEST_DIR=/mnt/xfs_test0
295                 TEST_DEV=/dev/cxvm/xfs_test0
296                 SCRATCH_MNT=/mnt/xfs_test1
297                 SCRATCH_DEV=/dev/cxvm/xfs_test1
298                 ;;
299             hammer)
300                 EMAIL="bnaujok@sgi.com"
301                 TEST_DIR=/mnt/xfs1
302                 TEST_DEV=/dev/sda5
303                 SCRATCH_MNT=/mnt/xfs2
304                 SCRATCH_DEV=/dev/sda6
305                 ;;
306             emu)
307                 MODULAR=0
308                 EMAIL="ajones@sgi.com"
309                 TEST_DIR=/mnt/test
310                 TEST_DEV=/dev/sdb1
311                 SCRATCH_MNT=/mnt/scratch
312                 SCRATCH_DEV=/dev/sdb2
313                 ;;
314             inferno)
315                 MODULAR=1
316                 EMAIL="ajones@sgi.com"
317                 TEST_DIR=/mnt/test
318                 TEST_DEV=/dev/sdb1
319                 TEST_LOGDEV=/dev/sdb3
320                 SCRATCH_MNT=/mnt/scratch
321                 SCRATCH_DEV=/dev/sdb2
322                 SCRATCH_LOGDEV=/dev/sdb4
323                 #SCRATCH_RTDEV=/dev/sdb5
324                 TAPE_DEV=/dev/st0
325                 #RMT_IRIXTAPE_DEV=snort:/dev/tape
326                 #RMT_TAPE_DEV=icy:/dev/st0
327                 #RMT_TAPE_USER=guest
328                 ;;
329             hellfire)
330                 MODULAR=1
331                 EMAIL="ajones@sgi.com"
332                 TEST_DIR=/mnt/test
333                 TEST_DEV=/dev/sda3
334                 TEST_LOGDEV=/dev/sda5
335                 SCRATCH_MNT=/mnt/scratch
336                 SCRATCH_DEV=/dev/sda4
337                 SCRATCH_LOGDEV=/dev/sda6
338                 #SCRATCH_RTDEV=/dev/sda7
339                 TAPE_DEV=/dev/st0
340                 #RMT_IRIXTAPE_DEV=snort:/dev/tape
341                 #RMT_TAPE_DEV=icy:/dev/st0
342                 #RMT_TAPE_USER=guest
343                 ;;
344             rooster)
345                 MODULAR=1
346                 EMAIL="ajones@sgi.com"
347                 TEST_DIR=/mnt/test
348                 TEST_DEV=/dev/sdb1
349                 SCRATCH_MNT=/mnt/scratch
350                 SCRATCH_DEV=/dev/sdb2
351                 TAPE_DEV=/dev/st0
352                 #RMT_IRIXTAPE_DEV=snort:/dev/tape
353                 #RMT_TAPE_DEV=icy:/dev/st0
354                 #RMT_TAPE_USER=guest
355                 ;;
356             rosella)
357                 MODULAR=1
358                 EMAIL="ajones@sgi.com"
359                 TEST_DIR=/mnt/test
360                 TEST_DEV=/dev/sdb1
361                 SCRATCH_MNT=/mnt/scratch
362                 SCRATCH_DEV=/dev/sdb3
363                 TAPE_DEV=/dev/st0
364                 #RMT_IRIXTAPE_DEV=snort:/dev/tape
365                 #RMT_TAPE_DEV=icy:/dev/st0
366                 #RMT_TAPE_USER=guest
367                 ;;
368             crackle)
369                 #irix-crackle
370                 TEST_DIR=/mnt/xfs
371                 SCRATCH_MNT=/mnt/xfs2
372                 TEST_DEV=/dev/dsk/dks0d1s3
373                 SCRATCH_DEV=/dev/dsk/dks0d1s4
374                 ;;
375             tinkle)
376                 #irix-patchbox-tinkle
377                 TEST_DEV=/dev/dsk/dks0d2s0
378                 TEST_DIR=/mnt/xfs_test
379                 SCRATCH_DEV=/dev/dsk/dks0d2s1
380                 SCRATCH_MNT=/mnt/xfs_scratch
381                 ;;
382             cocky)
383                 MODULAR=1
384                 EMAIL="ajones@sgi.com"
385                 TEST_DIR=/mnt/test
386                 TEST_DEV=/dev/sdb1
387                 TEST_LOGDEV=/dev/sdb3
388                 SCRATCH_MNT=/mnt/scratch
389                 SCRATCH_DEV=/dev/sdb2
390                 SCRATCH_LOGDEV=/dev/sdb4
391                 #SCRATCH_RTDEV=/dev/sdb5
392                 TAPE_DEV=/dev/st0
393                 #RMT_IRIXTAPE_DEV=snort:/dev/tape
394                 #RMT_TAPE_DEV=icy:/dev/st0
395                 #RMT_TAPE_USER=guest
396                 ;;
397             porky)
398                 MODULAR=1
399                 EMAIL="ajones@sgi.com"
400                 TEST_DIR=/mnt/test
401                 TEST_DEV=/dev/sdb2
402                 TEST_LOGDEV=/dev/sdb5
403                 SCRATCH_MNT=/mnt/scratch
404                 SCRATCH_DEV=/dev/sdb3
405                 SCRATCH_LOGDEV=/dev/sdb6
406                 #SCRATCH_RTDEV=/dev/sdb7
407                 TAPE_DEV=/dev/st0
408                 #RMT_IRIXTAPE_DEV=snort:/dev/tape
409                 #RMT_TAPE_DEV=icy:/dev/st0
410                 #RMT_TAPE_USER=guest
411                 ;;
412             puffy)
413                 MODULAR=1
414                 EMAIL="tes@sgi.com"
415                 TEST_DIR=/mnt/test
416                 TEST_DEV=/dev/sda7
417                 SCRATCH_MNT=/mnt/scratch
418                 SCRATCH_DEV=/dev/sda8
419                 TAPE_DEV=/dev/st0
420                 ;;
421             *)
422                 echo "Error: need to define parameters for host $HOST"
423                 exit 1
424                 ;;
425         esac
426 }
427
428 if [ -f "$HOST_OPTIONS" ]; then
429     . "$HOST_OPTIONS"
430 else
431     known_hosts
432 fi
433
434 echo $TEST_DEV | grep -q ":" > /dev/null 2>&1
435 if [ ! -b "$TEST_DEV" -a "$?" != "0" ]
436 then
437     echo "common.config: Error: \$TEST_DEV ($TEST_DEV) is not a block device or a NFS filesystem"
438     exit 1
439 fi
440
441 if [ ! -d "$TEST_DIR" ]
442 then
443     echo "common.config: Error: \$TEST_DIR ($TEST_DIR) is not a directory"
444     exit 1
445 fi
446
447 echo $SCRATCH_DEV | grep -q ":" > /dev/null 2>&1
448 if [ ! -z "$SCRATCH_DEV" -a ! -b "$SCRATCH_DEV" -a "$?" != "0" ]
449 then
450     echo "common.config: Error: \$SCRATCH_DEV ($SCRATCH_DEV) is not a block device or a NFS filesystem"
451     exit 1
452 fi
453
454 if [ ! -z "$SCRATCH_MNT" -a ! -d "$SCRATCH_MNT" ]
455 then
456     echo "common.config: Error: \$SCRATCH_MNT ($SCRATCH_MNT) is not a directory"
457     exit 1
458 fi
459
460 _readlink()
461 {
462     if [ $# -ne 1 ]
463     then
464         echo "Usage: _readlink filename" 1>&2
465         exit 1
466     fi
467
468     perl -e "\$in=\"$1\";" -e '
469         $lnk = readlink($in);
470         if ($lnk =~ m!^/.*!) {
471           print "$lnk\n";
472         }
473         else {
474           chomp($dir = `dirname $in`);
475           print "$dir/$lnk\n";
476         }'
477 }
478
479 # if devfs is running expand the full /dev/.. pathname - this is what will be
480 # returned by utilities such as mount
481 [ -L "$TEST_DEV" ] && TEST_DEV=`_readlink $TEST_DEV`
482 [ -L "$SCRATCH_DEV" ] && SCRATCH_DEV=`_readlink $SCRATCH_DEV`
483 [ -L "$SCRATCH_LOGDEV" ] && SCRATCH_LOGDEV=`_readlink $SCRATCH_LOGDEV`
484 [ -L "$SCRATCH_RTDEV" ] && SCRATCH_RTDEV=`_readlink $SCRATCH_LOGDEV`
485
486 # make sure this script returns success
487 /bin/true