Message ID | 20191202094302206.XGZM.12759.ppp.dion.ne.jp@dmta0004.auone-net.jp (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | common/filter: Don't use strtonum | expand |
On Mon, Dec 02, 2019 at 06:43:01PM +0900, Kusanagi Kouichi wrote: > It's a gawk extension and not needed. Make tests pass with non-gawk. gawk is listed in README as one of the "prerequisite packages", so I think using gawk extention is fine. But if we could get rid of it easily, that will be better. Thanks for the fix! Eryu > > Signed-off-by: Kusanagi Kouichi <slash@ac.auone-net.jp> > --- > common/filter | 23 +++++++++++++---------- > tests/generic/386 | 2 +- > tests/xfs/009 | 10 +++++----- > 3 files changed, 19 insertions(+), 16 deletions(-) > > diff --git a/common/filter b/common/filter > index 2477f386..e02cc0b9 100644 > --- a/common/filter > +++ b/common/filter > @@ -241,9 +241,9 @@ _filter_xfs_io_units_modified() > /wrote/ { > split($2, bytes, "/") > > - bytes_written = strtonum(bytes[1]) > + bytes_written = bytes[1] > > - offset = strtonum($NF) > + offset = $NF > > unit_start = offset / unit_size > unit_start = int(unit_start) > @@ -487,14 +487,17 @@ _filter_busy_mount() > _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; > - } > - /\*/ > - ' > + while read line > + do > + if test "$line" = '*' > + then > + printf '*\n' > + continue > + fi > + > + offset="${line%% *}" > + printf '%o%s\n' $((offset / BLOCK_SIZE)) "${line#$offset}" > + done > } > > # Remove quotes from failed mknod calls. Starting with Coreutils v8.25, > diff --git a/tests/generic/386 b/tests/generic/386 > index 462c5869..ba6e654e 100755 > --- a/tests/generic/386 > +++ b/tests/generic/386 > @@ -75,7 +75,7 @@ _filter_quota_rpt() { > # This function parses the human-readable values produced > # by xfs_quota output > function byte_size(value, result) { > - result = strtonum(value); > + result = value; > unit = value; > gsub("[0-9][0-9]*", "", unit); > shift = index("KMGTPE", unit); > diff --git a/tests/xfs/009 b/tests/xfs/009 > index 6a31514c..956c4772 100755 > --- a/tests/xfs/009 > +++ b/tests/xfs/009 > @@ -66,12 +66,12 @@ _block_filter() > > /CMD/ { > split($3, off, "=") > - offset = strtonum(off[2]) > + offset = off[2] > if (offset != -1) > offset = offset / bsize > > split($4, len, "=") > - nr_blocks = strtonum(len[2]) > + nr_blocks = len[2] > if (nr_blocks != -1) > nr_blocks = nr_blocks / bsize > > @@ -82,13 +82,13 @@ _block_filter() > > /MAP/ { > split($2, off, "=") > - offset = strtonum(off[2]) > + offset = off[2] > if (offset != -1) > offset = offset / bsize > > split($3, len, "=") > > - nr_blocks = strtonum(len[2]) > + nr_blocks = len[2] > > if (nr_blocks != -1) > nr_blocks = nr_blocks / bsize > @@ -100,7 +100,7 @@ _block_filter() > > /TRUNCATE/ { > split($2, off, "=") > - offset = strtonum(off[2]) / bsize > + offset = off[2] / bsize > > printf(" %s off=%s\n", $1, offset) > > -- > 2.24.0 >
diff --git a/common/filter b/common/filter index 2477f386..e02cc0b9 100644 --- a/common/filter +++ b/common/filter @@ -241,9 +241,9 @@ _filter_xfs_io_units_modified() /wrote/ { split($2, bytes, "/") - bytes_written = strtonum(bytes[1]) + bytes_written = bytes[1] - offset = strtonum($NF) + offset = $NF unit_start = offset / unit_size unit_start = int(unit_start) @@ -487,14 +487,17 @@ _filter_busy_mount() _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; - } - /\*/ - ' + while read line + do + if test "$line" = '*' + then + printf '*\n' + continue + fi + + offset="${line%% *}" + printf '%o%s\n' $((offset / BLOCK_SIZE)) "${line#$offset}" + done } # Remove quotes from failed mknod calls. Starting with Coreutils v8.25, diff --git a/tests/generic/386 b/tests/generic/386 index 462c5869..ba6e654e 100755 --- a/tests/generic/386 +++ b/tests/generic/386 @@ -75,7 +75,7 @@ _filter_quota_rpt() { # This function parses the human-readable values produced # by xfs_quota output function byte_size(value, result) { - result = strtonum(value); + result = value; unit = value; gsub("[0-9][0-9]*", "", unit); shift = index("KMGTPE", unit); diff --git a/tests/xfs/009 b/tests/xfs/009 index 6a31514c..956c4772 100755 --- a/tests/xfs/009 +++ b/tests/xfs/009 @@ -66,12 +66,12 @@ _block_filter() /CMD/ { split($3, off, "=") - offset = strtonum(off[2]) + offset = off[2] if (offset != -1) offset = offset / bsize split($4, len, "=") - nr_blocks = strtonum(len[2]) + nr_blocks = len[2] if (nr_blocks != -1) nr_blocks = nr_blocks / bsize @@ -82,13 +82,13 @@ _block_filter() /MAP/ { split($2, off, "=") - offset = strtonum(off[2]) + offset = off[2] if (offset != -1) offset = offset / bsize split($3, len, "=") - nr_blocks = strtonum(len[2]) + nr_blocks = len[2] if (nr_blocks != -1) nr_blocks = nr_blocks / bsize @@ -100,7 +100,7 @@ _block_filter() /TRUNCATE/ { split($2, off, "=") - offset = strtonum(off[2]) / bsize + offset = off[2] / bsize printf(" %s off=%s\n", $1, offset)
It's a gawk extension and not needed. Make tests pass with non-gawk. Signed-off-by: Kusanagi Kouichi <slash@ac.auone-net.jp> --- common/filter | 23 +++++++++++++---------- tests/generic/386 | 2 +- tests/xfs/009 | 10 +++++----- 3 files changed, 19 insertions(+), 16 deletions(-)