generic/554: hide permision warning on exfat
[xfstests-dev.git] / tests / generic / 074
1 #! /bin/bash
2 # SPDX-License-Identifier: GPL-2.0
3 # Copyright (c) 2000-2003 Silicon Graphics, Inc.  All Rights Reserved.
4 #
5 # FS QA Test No. 074
6 #
7 # fstest
8 #
9 seq=`basename $0`
10 seqres=$RESULT_DIR/$seq
11 echo "QA output created by $seq"
12
13 here=`pwd`
14 tmp=/tmp/$$
15 fstest_dir=$TEST_DIR/fstest
16 status=0        # success is the default!
17 trap "_cleanup; exit \$status" 0 1 2 3 15
18
19 _cleanup()
20 {
21     rm -rf $fstest_dir.* $tmp.*
22 }
23
24 # get standard environment, filters and checks
25 . ./common/rc
26 . ./common/filter
27
28 _supported_fs generic
29 _require_test
30
31 rm -f $seqres.full
32
33 _do_test()
34 {
35     _n="$1"
36     _param="$2"
37
38     out=$fstest_dir.$_n
39     rm -rf $out
40     if ! mkdir $out
41     then
42         echo "    failed to mkdir $out"
43         status=1
44         exit
45     fi
46
47     _filter_param=`echo "$_param" | sed\
48         -e 's/-n [0-9][0-9]*/-n children/' \
49         -e 's/-l [0-9][0-9]*/-l loops/' \
50         -e 's/-f [0-9][0-9]*/-f files/'`
51
52     echo ""
53     echo "-----------------------------------------------"
54     echo "fstest.$_n : $_filter_param"
55     echo "-----------------------------------------------"
56     if ! $here/src/fstest $_param -p $out >>$seqres.full
57     then
58         echo "    fstest ($_param) returned $? - see $seqres.full"
59         status=1
60         exit
61     fi
62
63     _check_test_fs
64 }
65
66 _usage()
67 {
68     echo "$0: [-f files] [-l loops] [-n children]"
69 }
70
71 _process_args()
72 {
73     OPTIND=1
74     while getopts "f:l:n:?" c $@
75     do
76         case $c
77         in
78             f)
79                 numfiles=$OPTARG
80                 param_type="$param_type, overidde -f"
81                 ;;
82             l)
83                 numloops=$OPTARG
84                 param_type="$param_type, overidde -l"
85                 ;;
86             n)
87                 numchildren=$OPTARG
88                 param_type="$param_type, overidde -n"
89                 ;;
90             ?)
91                 _usage
92                 exit    
93                 ;;
94         esac
95     done
96 }
97
98 #
99 # set params
100 # These params can take a while on different CPUs/OSs
101 # so we set them differently for different machines
102 #
103 if uname -a | grep -q SMP; then
104         numloops=10
105         numfiles=5
106         numchildren=3
107         param_type="Linux SMP"
108 else
109         numloops=2
110         numfiles=3
111         numchildren=3
112         param_type="Linux UP"
113 fi
114
115 # can override the params here
116 _process_args "$@"
117
118 echo "Params are for $param_type" >>$seqres.full
119 echo "Params: n = $numchildren l = $numloops f = $numfiles" >>$seqres.full
120
121 _check_test_fs
122
123 # Options:
124 # -F                    generate files with holes  (default=no)
125 # -n num_children       set number of child processes (default=1)
126 # -f num_files          set number of files (default=1)
127 # -s file_size          set file sizes (default=1MiB)
128 # -b block_size         set block (IO) size (default=1024)
129 # -l loops              set loop count (default=100)
130 # -m                    use mmap (default=no)
131 # -S                    use synchronous IO (default=no)
132 # -P                    preallocate space (default=no)
133
134 size10=`expr 10 \* 1024 \* 1024`        # 10 megabytes
135 size30=`expr 30 \* 1024 \* 1024`        # 30 megabytes
136
137 _do_test 0 "-l $numloops"
138
139 _do_test 1 "-l $numloops -s $size10 -b 8192 -m"
140
141 _do_test 2 "-n $numchildren -F -l $numloops -f $numfiles -s $size30 -b 512"
142
143 _do_test 3 "-n $numchildren -F -l $numloops -f $numfiles -s $size30 -b 512 -m"
144
145 _do_test 4 "-n $numchildren -F -l $numloops -f $numfiles -s $size10 -b 512 -mS"