diff mbox

[ndctl] ndctl, test: add start/wait scrub to injection tests

Message ID 20180628221303.3837-1-vishal.l.verma@intel.com (mailing list archive)
State New, archived
Headers show

Commit Message

Verma, Vishal L June 28, 2018, 10:13 p.m. UTC
A number of tests that perform error injection were missing the
start/wait scrub workaround needed for nfit_test namespaces, causing
these tests to ocassionally fail. Fix it by starting and waiting for a
scrub after injection in these remaining places.

Cc: Dan Williams <dan.j.williams@intel.com>
Signed-off-by: Vishal Verma <vishal.l.verma@intel.com>
---
 test/btt-errors.sh   | 2 ++
 test/clear.sh        | 1 +
 test/inject-error.sh | 1 +
 3 files changed, 4 insertions(+)

Comments

Dan Williams June 30, 2018, 6:08 p.m. UTC | #1
On Thu, Jun 28, 2018 at 3:13 PM, Vishal Verma <vishal.l.verma@intel.com> wrote:
> A number of tests that perform error injection were missing the
> start/wait scrub workaround needed for nfit_test namespaces, causing
> these tests to ocassionally fail. Fix it by starting and waiting for a
> scrub after injection in these remaining places.
>
> Cc: Dan Williams <dan.j.williams@intel.com>
> Signed-off-by: Vishal Verma <vishal.l.verma@intel.com>

Looks good.

Tested-by:  Dan Williams <dan.j.williams@intel.com>
diff mbox

Patch

diff --git a/test/btt-errors.sh b/test/btt-errors.sh
index e9cc209..cb35865 100755
--- a/test/btt-errors.sh
+++ b/test/btt-errors.sh
@@ -115,6 +115,7 @@  bb_inj=$((dataoff/512))
 
 # inject badblocks for one page at the start of the file
 $NDCTL inject-error --block="$bb_inj" --count=8 $dev
+$NDCTL start-scrub && $NDCTL wait-scrub
 
 force_raw 0
 mount -o nodelalloc "/dev/$blockdev" $MNT
@@ -148,6 +149,7 @@  map=$(hexdump -s 96 -n 4 "/dev/$raw_bdev" | head -1 | cut -d' ' -f2-)
 map=$(tr -d ' ' <<< "0x${map#* }${map%% *}")
 bb_inj=$((map/512))
 $NDCTL inject-error --block="$bb_inj" --count=1 $dev
+$NDCTL start-scrub && $NDCTL wait-scrub
 force_raw 0
 
 # make sure reading the first block of the namespace fails
diff --git a/test/clear.sh b/test/clear.sh
index 6cc43db..17d5bed 100755
--- a/test/clear.sh
+++ b/test/clear.sh
@@ -41,6 +41,7 @@  err_sector="$(((size/512) / 2))"
 err_count=8
 if ! read sector len < /sys/block/$blockdev/badblocks; then
 	$NDCTL inject-error --block="$err_sector" --count=$err_count $dev
+	$NDCTL start-scrub && $NDCTL wait-scrub
 fi
 read sector len < /sys/block/$blockdev/badblocks
 [ $((sector * 2)) -ne $((size /512)) ] && echo "fail: $LINENO" && exit 1
diff --git a/test/inject-error.sh b/test/inject-error.sh
index 7bda35b..49e68b3 100755
--- a/test/inject-error.sh
+++ b/test/inject-error.sh
@@ -77,6 +77,7 @@  do_tests()
 
 	# inject normally
 	$NDCTL inject-error --block=$err_block --count=$err_count $dev
+	$NDCTL start-scrub && $NDCTL wait-scrub
 	check_status "$err_block" "$err_count"
 	if read -r sector len < /sys/block/$blockdev/badblocks; then
 		test "$sector" -eq "$err_block"