mirror of
https://github.com/torvalds/linux.git
synced 2026-04-19 15:24:02 -04:00
Add automatic TID derivation in test_common.sh based on the script filename. The TID is extracted by stripping the "test_" prefix and ".sh" suffix from the script name (e.g., test_loop_01.sh -> loop_01). This removes the need for each test script to manually define TID, reducing boilerplate and preventing potential mismatches between the script name and TID. Scripts can still override TID after sourcing test_common.sh if needed. Reviewed-by: Caleb Sander Mateos <csander@purestorage.com> Signed-off-by: Ming Lei <ming.lei@redhat.com> Signed-off-by: Jens Axboe <axboe@kernel.dk>
41 lines
1.0 KiB
Bash
Executable File
41 lines
1.0 KiB
Bash
Executable File
#!/bin/bash
|
|
# SPDX-License-Identifier: GPL-2.0
|
|
|
|
. "$(cd "$(dirname "$0")" && pwd)"/test_common.sh
|
|
|
|
ERR_CODE=0
|
|
|
|
_prep_test "fault_inject" "fast cleanup when all I/Os of one hctx are in server"
|
|
|
|
# configure ublk server to sleep 2s before completing each I/O
|
|
dev_id=$(_add_ublk_dev -t fault_inject -q 2 -d 1 --delay_us 2000000)
|
|
_check_add_dev $TID $?
|
|
|
|
STARTTIME=${SECONDS}
|
|
|
|
dd if=/dev/urandom of=/dev/ublkb${dev_id} oflag=direct bs=4k count=1 status=none > /dev/null 2>&1 &
|
|
dd_pid=$!
|
|
|
|
__ublk_kill_daemon ${dev_id} "DEAD" >/dev/null
|
|
|
|
wait $dd_pid
|
|
dd_exitcode=$?
|
|
|
|
ENDTIME=${SECONDS}
|
|
ELAPSED=$(($ENDTIME - $STARTTIME))
|
|
|
|
# assert that dd sees an error and exits quickly after ublk server is
|
|
# killed. previously this relied on seeing an I/O timeout and so would
|
|
# take ~30s
|
|
if [ $dd_exitcode -eq 0 ]; then
|
|
echo "dd unexpectedly exited successfully!"
|
|
ERR_CODE=255
|
|
fi
|
|
if [ $ELAPSED -ge 5 ]; then
|
|
echo "dd took $ELAPSED seconds to exit (>= 5s tolerance)!"
|
|
ERR_CODE=255
|
|
fi
|
|
|
|
_cleanup_test "fault_inject"
|
|
_show_result $TID $ERR_CODE
|