From: Darrick J. Wong <djwong@xxxxxxxxxx> For each iteration of the fuzz test loop, we try to correct the problem, and then we run fsstress on the (allegedly corrected) filesystem to check that subsequent use of the filesystem won't crash the kernel or panic. Now that fsstress has a --duration switch, let's add a new config variable that people can set to constrain the amount of time that a fuzz test run takes. Signed-off-by: Darrick J. Wong <djwong@xxxxxxxxxx> --- check | 12 ++++++++++++ common/fuzzy | 7 +++++-- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/check b/check index 723a52e30d..9222cd7e4f 100755 --- a/check +++ b/check @@ -376,6 +376,18 @@ if [ -n "$SOAK_DURATION" ]; then fi fi +# If the test config specified a fuzz rewrite test duration, see if there are +# any unit suffixes that need converting to an integer seconds count. +if [ -n "$FUZZ_REWRITE_DURATION" ]; then + FUZZ_REWRITE_DURATION="$(echo "$FUZZ_REWRITE_DURATION" | \ + sed -e 's/^\([.0-9]*\)\([a-z]\)*/\1 \2/g' | \ + $AWK_PROG -f $here/src/soak_duration.awk)" + if [ $? -ne 0 ]; then + status=1 + exit 1 + fi +fi + if [ -n "$subdir_xfile" ]; then for d in $SRC_GROUPS $FSTYP; do [ -f $SRC_DIR/$d/$subdir_xfile ] || continue diff --git a/common/fuzzy b/common/fuzzy index c07f461b61..ed79dbc7e5 100644 --- a/common/fuzzy +++ b/common/fuzzy @@ -6,16 +6,19 @@ # Modify various files after a fuzzing operation _scratch_fuzz_modify() { + local fsstress_args=(-n $((TIME_FACTOR * 10000)) -p $((LOAD_FACTOR * 4)) ) + test -n "${FUZZ_REWRITE_DURATION}" && fsstress_args+=("--duration=${FUZZ_REWRITE_DURATION}") + echo "+++ stressing filesystem" mkdir -p $SCRATCH_MNT/data [ "$FSTYP" == "xfs" ] && _xfs_force_bdev data $SCRATCH_MNT/data - $FSSTRESS_PROG -n $((TIME_FACTOR * 10000)) -p $((LOAD_FACTOR * 4)) -d $SCRATCH_MNT/data + $FSSTRESS_PROG "${fsstress_args[@]}" -d $SCRATCH_MNT/data if [ "$FSTYP" = "xfs" ]; then if _xfs_has_feature "$SCRATCH_MNT" realtime; then mkdir -p $SCRATCH_MNT/rt _xfs_force_bdev realtime $SCRATCH_MNT/rt - $FSSTRESS_PROG -n $((TIME_FACTOR * 10000)) -p $((LOAD_FACTOR * 4)) -d $SCRATCH_MNT/rt + $FSSTRESS_PROG "${fsstress_args[@]}" -d $SCRATCH_MNT/rt else echo "+++ xfs realtime not configured" fi