From: Leah Rumancik Date: Mon, 7 Jun 2021 21:36:38 +0000 (+0000) Subject: ext4/048: add check for od endian flag X-Git-Tag: v2022.05.01~372 X-Git-Url: http://git.apps.os.sepia.ceph.com/?p=xfstests-dev.git;a=commitdiff_plain;h=9ff5f0ccac24fb2b37272f8f6efae920104ecee8 ext4/048: add check for od endian flag 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 Reviewed-by: Yang Xu Signed-off-by: Eryu Guan --- diff --git a/common/rc b/common/rc index 4efd4364..d4ad421e 100644 --- a/common/rc +++ b/common/rc @@ -4593,6 +4593,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)