blob: 327eac70a9da8e26e317c08a7ee00c563d8a5533 (
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
|
#!/bin/bash
#
# Open-iSCSI Regression Test Utility
# Copyright (C) 2004 Dmitry Yusupov
# maintained by open-iscsi@googlegroups.com
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published
# by the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# See the file COPYING included with this distribution for more details.
#
PATH=$PATH:.
function update_cfg() {
./iscsiadm -m node -r $record -o update \
-n node.session.iscsi.ImmediateData -v $imm_data_en
./iscsiadm -m node -r $record -o update \
-n node.session.iscsi.InitialR2T -v $initial_r2t_en
./iscsiadm -m node -r $record -o update \
-n node.cnx[0].iscsi.HeaderDigest -v $hdrdgst_en
./iscsiadm -m node -r $record -o update \
-n node.session.iscsi.FirstBurstLength -v $first_burst
./iscsiadm -m node -r $record -o update \
-n node.session.iscsi.MaxBurstLength -v $max_burst
./iscsiadm -m node -r $record -o update \
-n node.cnx[0].iscsi.MaxRecvDataSegmentLength -v $max_recv_dlength
}
function disktest_run() {
for bs in 512 1024 2048 4096 8192 16384 32768 65536 131072 1000000; do
echo -n "disktest -T2 -K8 -B$bs -r -ID $device: "
if ! disktest -T2 -K8 -B$bs -r -ID $device >/dev/null; then
echo "FAILED"
return 1;
fi
echo "PASSED"
echo -n "disktest -T2 -K8 -B$bs -E16 -w -ID $device: "
if ! disktest -T2 -K8 -B$bs -E16 -w -ID $device >/dev/null;then
echo "FAILED"
return 1;
fi
echo "PASSED"
done
return 0;
}
function fatal() {
echo "regression.sh: $1"
echo "Usage: regression.sh <node record> <device> [test#]"
exit 1
}
############################ main ###################################
test ! -e regression.dat && fatal "can not find regression.dat"
test ! -e disktest && fatal "can not find disktest"
test ! -e iscsiadm && fatal "can not find iscsiadm"
test x$1 = x && fatal "node record parameter error"
test x$2 = x && fatal "SCSI device parameter error"
record=$1
device=$2
test x$3 != x && begin=$3
i=0
cat regression.dat | while read line; do
if test x$begin != x; then
if test x$begin != x$i; then
let i=i+1
continue
fi
fi
imm_data_en=`echo $line | awk '/^[YesNo]+/ {print $1}'`
if test x$imm_data_en = x; then continue; fi
initial_r2t_en=`echo $line | awk '{print $2}'`
hdrdgst_en=`echo $line | awk '{print $3}'`
first_burst=`echo $line | awk '{print $4}'`
max_burst=`echo $line | awk '{print $5}'`
max_recv_dlength=`echo $line | awk '{print $6}'`
max_r2t=`echo $line | awk '{print $7}'`
update_cfg
echo "================== TEST #$i BEGIN ===================="
echo "imm_data_en = $imm_data_en"
echo "initial_r2t_en = $initial_r2t_en"
echo "hdrdgst_en = $hdrdgst_en"
echo "first_burst = $first_burst"
echo "max_burst = $max_burst"
echo "max_recv_dlength = $max_recv_dlength"
echo "max_r2t = $max_r2t"
if ! disktest_run; then break; fi
let i=i+1
done
echo
echo "===================== THE END ========================"
|