xfs/530: skip test if user MKFS_OPTIONS screw up formatting
[xfstests-dev.git] / tests / xfs / 216
1 #! /bin/bash
2 # SPDX-License-Identifier: GPL-2.0
3 # Copyright (c) 2008 Silicon Graphics, Inc.  All Rights Reserved.
4 #
5 # FS QA Test No. 216
6 #
7 # log size mkfs test - ensure the log size scaling works for small filesystems
8 #
9 . ./common/preamble
10 _begin_fstest log metadata auto quick
11
12 # Import common functions.
13 . ./common/filter
14
15 # real QA test starts here
16 _supported_fs xfs
17
18 _require_scratch
19 _scratch_mkfs_xfs >/dev/null 2>&1
20 _scratch_mount
21
22 _require_loop
23 LOOP_DEV=$SCRATCH_MNT/test_fs
24 LOOP_MNT=$SCRATCH_MNT/test_fs_dir
25
26 loop_mkfs_opts=
27 $MKFS_XFS_PROG 2>&1 | grep -q rmapbt && \
28         loop_mkfs_opts="$loop_mkfs_opts -m rmapbt=0"
29 $MKFS_XFS_PROG 2>&1 | grep -q reflink && \
30         loop_mkfs_opts="$loop_mkfs_opts -m reflink=0"
31
32 _do_mkfs()
33 {
34         for i in $*; do
35                 echo -n "fssize=${i}g "
36                 $MKFS_XFS_PROG -f -b size=4096 -l version=2 \
37                         -d name=$LOOP_DEV,size=${i}g $loop_mkfs_opts |grep log
38                 mount -o loop -t xfs $LOOP_DEV $LOOP_MNT
39                 echo "test write" > $LOOP_MNT/test
40                 umount $LOOP_MNT > /dev/null 2>&1
41         done
42 }
43 # make large holey file
44 $XFS_IO_PROG -f -c "truncate 256g" $LOOP_DEV
45
46 #make loopback mount dir
47 mkdir $LOOP_MNT
48
49 # walk over standard sizes (up to 256GB)
50 _do_mkfs 1 2 4 8 16 32 64 128 256
51
52 status=0
53 exit