From: Darrick J. Wong Date: Thu, 16 Nov 2017 01:22:25 +0000 (-0800) Subject: common/fuzzy: if the fuzz verb is random, keep fuzzing until we get a new value X-Git-Tag: v2022.05.01~1779 X-Git-Url: http://git.apps.os.sepia.ceph.com/?p=xfstests-dev.git;a=commitdiff_plain;h=01140c76e4854634b6ec0c94eadc2045864e7fb1 common/fuzzy: if the fuzz verb is random, keep fuzzing until we get a new value If the fuzz verb is 'random', keep generating new random values until we get one that is distinct from the previous value. Signed-off-by: Darrick J. Wong Reviewed-by: Eryu Guan Signed-off-by: Eryu Guan --- diff --git a/common/fuzzy b/common/fuzzy index 3d86e1c8..d70964f4 100644 --- a/common/fuzzy +++ b/common/fuzzy @@ -179,9 +179,14 @@ _scratch_xfs_fuzz_metadata_field() { for arg in "$@"; do cmds+=("-c" "${arg}") done - _scratch_xfs_db -x "${cmds[@]}" -c "fuzz ${fuzz_arg} ${key} ${value}" - echo - newval="$(_scratch_xfs_get_metadata_field "${key}" "$@" 2> /dev/null)" + while true; do + _scratch_xfs_db -x "${cmds[@]}" -c "fuzz ${fuzz_arg} ${key} ${value}" + echo + newval="$(_scratch_xfs_get_metadata_field "${key}" "$@" 2> /dev/null)" + if [ "${key}" != "random" ] || [ "${oldval}" != "${newval}" ]; then + break; + fi + done if [ "${oldval}" = "${newval}" ]; then echo "Field ${key} already set to ${newval}, skipping test." return 1