ZTS: Fix zfs_diff_timestamp
When using mawk instead of gawk zfs_diff_timestamp fails consistently: this is due to a subtle difference in how mawk handles substr(). From awk(1): --- Finally, here is how mawk handles exceptional cases not discussed in the AWK book or the Posix draft. It is unsafe to assume consistency across awks and safe to skip to the next section. substr(s, i, n) returns the characters of s in the intersection of the closed interval [1, length(s)] and the half-open interval [i, i+n). When this intersection is empty, the empty string is returned; so substr("ABC", 1, 0) = "" and substr("ABC", -4, 6) = "A". --- To support running zfs_diff_timestamp with both gawk and mawk change the second parameter passed to substr(). Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by: loli10K <ezomori.nozomu@gmail.com> Closes #7503 Closes #7510
This commit is contained in:
parent
64c1dcefe3
commit
fb0da71fd9
|
@ -75,7 +75,7 @@ log_must zfs snapshot "$TESTSNAP2"
|
||||||
# 3. Verify 'zfs diff -t' correctly display timestamps
|
# 3. Verify 'zfs diff -t' correctly display timestamps
|
||||||
typeset -i count=0
|
typeset -i count=0
|
||||||
log_must eval "zfs diff -t $TESTSNAP1 $TESTSNAP2 > $FILEDIFF"
|
log_must eval "zfs diff -t $TESTSNAP1 $TESTSNAP2 > $FILEDIFF"
|
||||||
awk '{print substr($1,0,index($1,".")-1)" "$NF}' < "$FILEDIFF" | while read line
|
awk '{print substr($1,1,index($1,".")-1)" "$NF}' < "$FILEDIFF" | while read line
|
||||||
do
|
do
|
||||||
read ctime file <<< "$line"
|
read ctime file <<< "$line"
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue