From: Christoph Hellwig <hch@lst.de>
To: shinichiro.kawasaki@wdc.com
Cc: linux-block@vger.kernel.org
Subject: [PATCH blktests] block/044: basic block error injection sanity test
Date: Mon, 22 Jun 2026 18:08:08 +0200 [thread overview]
Message-ID: <20260622160808.1552568-1-hch@lst.de> (raw)
Test the basic block layer error injection functionality.
Signed-off-by: Christoph Hellwig <hch@lst.de>
---
tests/block/044 | 71 +++++++++++++++++++++++++++++++++++++++++++++
tests/block/044.out | 9 ++++++
2 files changed, 80 insertions(+)
create mode 100755 tests/block/044
create mode 100644 tests/block/044.out
diff --git a/tests/block/044 b/tests/block/044
new file mode 100755
index 000000000000..8baf9fa59c68
--- /dev/null
+++ b/tests/block/044
@@ -0,0 +1,71 @@
+#!/bin/bash
+# SPDX-License-Identifier: GPL-2.0
+# Copyright (c) 2026 Christoph Hellwig.
+#
+# Basic block error injection test.
+
+. tests/block/rc
+. common/scsi_debug
+
+DESCRIPTION="basic block error injection test"
+QUICK=1
+
+requires()
+{
+ _have_loadable_scsi_debug
+ _have_program xfs_io
+}
+
+# load and remove scsi_debug once to test the static_key bug in the
+# initial commit
+_test_load_unload()
+{
+ if ! _init_scsi_debug dev_size_mb=500; then
+ return 1
+ fi
+
+ local dev=${SCSI_DEBUG_DEVICES[0]}
+ local debugfs_file="/sys/kernel/debug/block/$dev/error_injection"
+ if [[ ! -f "${debugfs_file}" ]]; then
+ SKIP_REASONS+=("error injection not supported")
+ _exit_scsi_debug
+ return 1
+ fi
+ echo "Testing unload without rules"
+ _exit_scsi_debug
+}
+
+_test_rules()
+{
+ if ! _init_scsi_debug dev_size_mb=500; then
+ return 1
+ fi
+
+ local dev=${SCSI_DEBUG_DEVICES[0]}
+ local debugfs_file="/sys/kernel/debug/block/$dev/error_injection"
+
+ echo "Testing valid rules"
+ echo "add,op=WRITE,status=RESOURCE,start=0,nr_sectors=8" > $debugfs_file
+ echo "add,op=READ,status=IOERR,start=16,nr_sectors=8" > $debugfs_file
+ xfs_io -d -c 'pwrite -q 0 4096' /dev/$dev
+ xfs_io -d -c 'pread -q 0 4096' /dev/$dev
+ xfs_io -d -c 'pwrite -q 4096 4096' /dev/$dev
+ xfs_io -d -c 'pread -q 8192 8192' /dev/$dev
+
+ echo "Testing invalid rules"
+ echo "op=READ,status=IOERR" > $debugfs_file
+ echo "add,op=READ,status=EIO,start=32" > $debugfs_file
+ _exit_scsi_debug
+}
+
+test()
+{
+ echo "Running ${TEST_NAME}"
+
+ local ret
+
+ _test_load_unload
+ _test_rules
+
+ echo "Test complete"
+}
diff --git a/tests/block/044.out b/tests/block/044.out
new file mode 100644
index 000000000000..92efcddf7c8e
--- /dev/null
+++ b/tests/block/044.out
@@ -0,0 +1,9 @@
+Running block/044
+Testing unload without rules
+Testing valid rules
+pwrite: Cannot allocate memory
+pread: Input/output error
+Testing invalid rules
+tests/block/044: line 56: echo: write error: Invalid argument
+tests/block/044: line 57: echo: write error: Invalid argument
+Test complete
--
2.53.0
next reply other threads:[~2026-06-22 16:08 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-06-22 16:08 Christoph Hellwig [this message]
2026-06-25 6:36 ` [PATCH blktests] block/044: basic block error injection sanity test Shin'ichiro Kawasaki
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260622160808.1552568-1-hch@lst.de \
--to=hch@lst.de \
--cc=linux-block@vger.kernel.org \
--cc=shinichiro.kawasaki@wdc.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox