From: Leah Rumancik <lrumancik@xxxxxxxxxx> 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. Signed-off-by: Leah Rumancik <leah.rumancik@xxxxxxxxx> --- 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) -- 2.32.0.rc1.229.g3e70b5a671-goog