Skip to content

Commit 8044f71

Browse files
committed
scsi/007: Check whether scsi_timeout() has been called
Check whether scsi_timeout() has been called. Fail immediately if an unexpected error occurs. Signed-off-by: Bart Van Assche <[email protected]>
1 parent 0ca7b32 commit 8044f71

1 file changed

Lines changed: 61 additions & 4 deletions

File tree

tests/scsi/007

Lines changed: 61 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,45 @@ requires() {
1515
_have_module scsi_debug
1616
}
1717

18-
test() {
19-
local dev freq delay_s jdelay
18+
start_tracing() {
19+
if [ -e /sys/kernel/tracing/tracing_on ]; then
20+
(
21+
set -e
22+
cd /sys/kernel/tracing
23+
echo 1024 > buffer_size_kb
24+
echo function > current_tracer
25+
echo 0 > tracing_on
26+
echo > trace
27+
{
28+
echo scsi_error_handler
29+
echo "scsi_eh_*"
30+
echo scsi_timeout
31+
echo scsi_try_host_reset
32+
} > set_ftrace_filter
33+
echo 0 > events/enable
34+
echo 1 > tracing_on
35+
)
36+
fi
37+
}
2038

21-
echo "Running ${TEST_NAME}"
39+
stop_tracing() {
40+
if [ -e /sys/kernel/tracing/tracing_on ]; then
41+
(
42+
set -e
43+
cd /sys/kernel/tracing
44+
cat trace >> "${FULL}"
45+
if ! grep -qw scsi_timeout trace; then
46+
echo "Unexpected: scsi_timeout() has not been called"
47+
fi
48+
echo 0 > tracing_on
49+
)
50+
fi
51+
}
52+
53+
run_test() {
54+
set -e
55+
56+
local dev freq delay_s jdelay
2257

2358
if ! _init_scsi_debug; then
2459
return 1
@@ -38,17 +73,39 @@ test() {
3873
jdelay=$((delay_s * "${freq}"))
3974
echo "CONFIG_HZ=${freq} jdelay=${jdelay}" >>"$FULL"
4075
echo "$jdelay" > /sys/module/scsi_debug/parameters/delay
76+
77+
start_tracing
78+
79+
set +e
80+
4181
if dd if="/dev/$dev" of=/dev/null bs=512 count=1 \
4282
iflag=direct >&/dev/null; then
4383
echo "Reading from scsi_debug succeeded"
4484
else
4585
echo "Reading from scsi_debug failed"
4686
fi
4787

88+
stop_tracing
89+
4890
# Disable SCSI error handler logging
4991
echo 0 > /sys/module/scsi_mod/parameters/scsi_logging_level
92+
}
93+
94+
test() {
95+
echo "Running ${TEST_NAME}"
96+
97+
(
98+
run_test
99+
)
100+
# shellcheck disable=SC2181
101+
(($? != 0)) && fail=true
50102

51103
_exit_scsi_debug
52104

53-
echo "Test complete"
105+
if [ -z "$fail" ]; then
106+
echo "Test complete"
107+
else
108+
echo "Test failed"
109+
return 1
110+
fi
54111
}

0 commit comments

Comments
 (0)