When testing FS instances of block size other than 4k, the output of fiemap command will not match those in *.out files. This commit adds an optional "block size" argument to _filter_fiemap() which prints fiemap output in units of block size. Signed-off-by: Chandan Rajendra <chandan@xxxxxxxxxxxxxxxxxx> --- common/punch | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/common/punch b/common/punch index 8088b01..0fc7729 100644 --- a/common/punch +++ b/common/punch @@ -165,7 +165,11 @@ _test_punch() { _coalesce_extents() { - awk -F: ' + block_size=$1 + + [[ -z $block_size ]] && block_size=512 + + awk -v block_size="$block_size" -F: ' { range = $2; type = $3; @@ -176,19 +180,24 @@ _coalesce_extents() if (type != prev_type) { if (prev_type != "") - printf("%u]:%s\n", low - 1, prev_type); - printf("%u: [%u..", out_count++, low); + printf("%u]:%s\n", (low * 512 / block_size) - 1, + prev_type); + printf("%u: [%u..", out_count++, + (low * 512) / block_size); prev_type = type; } } END { if (prev_type != "") - printf("%u]:%s\n", high, prev_type); + printf("%u]:%s\n", ((high + 1) * 512 / block_size) - 1, + prev_type); }' } _filter_fiemap() { + block_size=$1 + $AWK_PROG ' $3 ~ /hole/ { print $1, $2, $3; @@ -201,7 +210,7 @@ _filter_fiemap() $5 ~ /0x[[:xdigit:]]+/ { print $1, $2, "data"; }' | - _coalesce_extents + _coalesce_extents $block_size } _filter_fiemap_flags() -- 2.9.5