Message ID | 20210607213638.3431530-1-leah.rumancik@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | ext4/048: add check for od endian flag | expand |
on 2021/6/8 5:36, Leah Rumancik wrote: > From: Leah Rumancik<lrumancik@google.com> > > od --endian=little is used to read bytes in little endian when on a > big endian machine. Update test ext4/048 to require od endian flag > support on big endian machines, otherwise, skip test. > Looks good to me, Reviewed-by: Yang Xu <xuyang2018.jy@fujitsu.com> > Signed-off-by: Leah Rumancik<leah.rumancik@gmail.com> > --- > common/rc | 6 ++++++ > tests/ext4/048 | 13 ++++++++++++- > 2 files changed, 18 insertions(+), 1 deletion(-) > > diff --git a/common/rc b/common/rc > index a0aa7300..70aa7176 100644 > --- a/common/rc > +++ b/common/rc > @@ -4582,6 +4582,12 @@ _getcap() > return ${PIPESTATUS[0]} > } > > +_require_od_endian_flag() > +{ > + od --endian=little< /dev/null> /dev/null 2>&1 || \ > + _notrun "od does not support endian flag" > +} > + > init_rc > > ################################################################################ > diff --git a/tests/ext4/048 b/tests/ext4/048 > index 35d3ece8..51189618 100755 > --- a/tests/ext4/048 > +++ b/tests/ext4/048 > @@ -26,6 +26,11 @@ _supported_fs ext4 > _require_scratch > _require_command "$DEBUGFS_PROG" debugfs > > +big_endian=$(echo -ne '\x11' | od -tx2 | head -1 | cut -f2 -d' ' | cut -c1) > +if (( big_endian )); then > + _require_od_endian_flag > +fi > + > testdir="${SCRATCH_MNT}/testdir" > > # get block number filename's dir ent > @@ -44,7 +49,13 @@ get_offset() { > # argument 1: block > # argument 2: offset > get_reclen() { > - echo $(od $SCRATCH_DEV --skip-bytes=$(($1 * $blocksize + $2 + 4)) --read-bytes=2 -d -An --endian=little | tr -d ' \t\n\r') > + if (( big_endian )); then > + echo $(od $SCRATCH_DEV --skip-bytes=$(($1 * $blocksize + $2 + 4)) --read-bytes=2 -d -An --endian=little | \ > + tr -d ' \t\n\r') > + else > + echo $(od $SCRATCH_DEV --skip-bytes=$(($1 * $blocksize + $2 + 4)) --read-bytes=2 -d -An | \ > + tr -d ' \t\n\r') > + fi > } > > # reads portion of dirent that should be zero'd out (starting at offset of name_len = 6)
diff --git a/common/rc b/common/rc index a0aa7300..70aa7176 100644 --- a/common/rc +++ b/common/rc @@ -4582,6 +4582,12 @@ _getcap() return ${PIPESTATUS[0]} } +_require_od_endian_flag() +{ + od --endian=little < /dev/null > /dev/null 2>&1 || \ + _notrun "od does not support endian flag" +} + init_rc ################################################################################ diff --git a/tests/ext4/048 b/tests/ext4/048 index 35d3ece8..51189618 100755 --- a/tests/ext4/048 +++ b/tests/ext4/048 @@ -26,6 +26,11 @@ _supported_fs ext4 _require_scratch _require_command "$DEBUGFS_PROG" debugfs +big_endian=$(echo -ne '\x11' | od -tx2 | head -1 | cut -f2 -d' ' | cut -c1) +if (( big_endian )); then + _require_od_endian_flag +fi + testdir="${SCRATCH_MNT}/testdir" # get block number filename's dir ent @@ -44,7 +49,13 @@ get_offset() { # argument 1: block # argument 2: offset get_reclen() { - echo $(od $SCRATCH_DEV --skip-bytes=$(($1 * $blocksize + $2 + 4)) --read-bytes=2 -d -An --endian=little | tr -d ' \t\n\r') + if (( big_endian )); then + echo $(od $SCRATCH_DEV --skip-bytes=$(($1 * $blocksize + $2 + 4)) --read-bytes=2 -d -An --endian=little | \ + tr -d ' \t\n\r') + else + echo $(od $SCRATCH_DEV --skip-bytes=$(($1 * $blocksize + $2 + 4)) --read-bytes=2 -d -An | \ + tr -d ' \t\n\r') + fi } # reads portion of dirent that should be zero'd out (starting at offset of name_len = 6)