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