From: Chandan Rajendra Date: Mon, 21 Dec 2015 07:01:29 +0000 (+1100) Subject: filter: Filter xfs_io and od's output in units of FS block size X-Git-Tag: v2022.05.01~2733 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=dedf2c79f568f50d91d1ba2c7d5a1a6d2894539f;p=users%2Fhch%2Fxfstests-dev.git filter: Filter xfs_io and od's output in units of FS block size The helpers introduced in this commit will be used to make btrfs tests that assume 4k as the block size to work on non-4k blocksized filesystem instances as well. Signed-off-by: Chandan Rajendra Reviewed-by: Filipe Manana Signed-off-by: Dave Chinner --- diff --git a/common/filter b/common/filter index af456c93f..05f2fab3c 100644 --- a/common/filter +++ b/common/filter @@ -229,6 +229,38 @@ _filter_xfs_io_unique() common_line_filter | _filter_xfs_io } +_filter_xfs_io_units_modified() +{ + UNIT=$1 + UNIT_SIZE=$2 + + $AWK_PROG -v unit="$UNIT" -v unit_size=$UNIT_SIZE ' + /wrote/ { + split($2, bytes, "/") + + bytes_written = strtonum(bytes[1]) + + offset = strtonum($NF) + + unit_start = offset / unit_size + unit_start = int(unit_start) + unit_end = (offset + bytes_written - 1) / unit_size + unit_end = int(unit_end) + + printf("%ss modified: [%d - %d]\n", unit, unit_start, unit_end) + + next + } + ' +} + +_filter_xfs_io_blocks_modified() +{ + BLOCK_SIZE=$(get_block_size $SCRATCH_MNT) + + _filter_xfs_io_units_modified "Block" $BLOCK_SIZE +} + _filter_test_dir() { sed -e "s,$TEST_DEV,TEST_DEV,g" -e "s,$TEST_DIR,TEST_DIR,g" @@ -323,5 +355,18 @@ _filter_ro_mount() { -e "s/mount: cannot mount block device/mount: cannot mount/g" } +_filter_od() +{ + BLOCK_SIZE=$(get_block_size $SCRATCH_MNT) + $AWK_PROG -v block_size=$BLOCK_SIZE ' + /^[0-9]+/ { + offset = strtonum("0"$1); + $1 = sprintf("%o", offset / block_size); + print $0; + } + /\*/ + ' +} + # make sure this script returns success /bin/true