Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1a0e4d0b authored by Yi-Yo Chiang's avatar Yi-Yo Chiang
Browse files

adb-remount-test: Refactor check_eq & check_ne

Just use bash [[ for regex compare, which result in shorter code and
more robust.
Simplify the messaging pipeline:
  If success, don't print anything and return 0. Let caller decide what
  to log.
  If failure and --warning, log error message and return 1.
  If failure and ! --warning, die with error message.

Bug: 243116800
Test: adb-remount-test
Change-Id: Ie5426ff3fa57395aa6b4fe71c9bf96bd8e9afc35
parent bd9335d4
Loading
Loading
Loading
Loading
+35 −88
Original line number Diff line number Diff line
@@ -663,114 +663,61 @@ die() {
  exit 1
}

[ "USAGE: EXPECT_EQ <lval> <rval> [--warning [message]]

Returns true if (regex) lval matches rval" ]
EXPECT_EQ() {
  local lval="${1}"
  local rval="${2}"
  shift 2
  local error=1
  local prefix="${RED}[    ERROR ]${NORMAL}"
  if [ X"${1}" = X"--warning" ]; then
      prefix="${RED}[  WARNING ]${NORMAL}"
      error=0
      shift 1
  fi
  if ! ( echo X"${rval}" | grep '^X'"${lval}"'$' >/dev/null 2>/dev/null ); then
    if [ `echo ${lval}${rval}${*} | wc -c` -gt 50 -o "${rval}" != "${rval%
*}" ]; then
      echo "${prefix} expected \"${lval}\""
      echo "${prefix} got \"${rval}\"" |
        sed ": again
             N
             s/\(\n\)\([^ ]\)/\1${INDENT}\2/
             t again"
      if [ -n "${*}" ] ; then
        echo "${prefix} ${*}"
      fi
    else
      echo "${prefix} expected \"${lval}\" got \"${rval}\" ${*}"
    fi >&2
    return ${error}
  fi
  if [ -n "${*}" ] ; then
    prefix="${GREEN}[     INFO ]${NORMAL}"
    if [ X"${lval}" != X"${rval}" ]; then  # we were supplied a regex?
      if [ `echo ${lval}${rval}${*} | wc -c` -gt 60 -o "${rval}" != "${rval% *}" ]; then
        echo "${prefix} ok \"${lval}\""
        echo "       = \"${rval}\"" |
          sed ": again
               N
               s/\(\n\)\([^ ]\)/\1${INDENT}\2/
               t again"
        if [ -n "${*}" ] ; then
          echo "${prefix} ${*}"
        fi
      else
        echo "${prefix} ok \"${lval}\" = \"${rval}\" ${*}"
      fi
    else
      echo "${prefix} ok \"${lval}\" ${*}"
    fi >&2
  fi
  return 0
}
[ "USAGE: check_eq <lval> <rval> [--warning [message]]

[ "USAGE: EXPECT_NE <lval> <rval> [--warning [message]]
Exits if (regex) lval mismatches rval.

Returns true if lval matches rval" ]
EXPECT_NE() {
Returns: true if lval matches rval" ]
check_eq() {
  local lval="${1}"
  local rval="${2}"
  shift 2
  local error=1
  local prefix="${RED}[    ERROR ]${NORMAL}"
  if [ X"${1}" = X"--warning" ]; then
      prefix="${RED}[  WARNING ]${NORMAL}"
      error=0
      shift 1
  fi
  if [ X"${rval}" = X"${lval}" ]; then
    echo "${prefix} did not expect \"${lval}\" ${*}" >&2
    return ${error}
  fi
  if [ -n "${*}" ] ; then
    echo "${prefix} ok \"${lval}\" not \"${rval}\" ${*}" >&2
  fi
  if [[ "${rval}" =~ ^${lval}$ ]]; then
    return 0
}

[ "USAGE: check_eq <lval> <rval> [--warning [message]]
  fi

Exits if (regex) lval mismatches rval" ]
check_eq() {
  local lval="${1}"
  local rval="${2}"
  shift 2
  local error=true
  local logt=ERROR
  if [ X"${1}" = X"--warning" ]; then
      EXPECT_EQ "${lval}" "${rval}" ${*}
      return
    shift 1
    error=false
    logt=WARNING
  fi
  if ! EXPECT_EQ "${lval}" "${rval}"; then
    die "${@}"
  if [ $(( ${#lval} + ${#rval} )) -gt 40 ]; then
    LOG "${logt}" "expected \"${lval}\"
${INDENT}got      \"${rval}\""
  else
    LOG "${logt}" "expected \"${lval}\" got \"${rval}\""
  fi
  ${error} && die "${*}"
  [ -n "${*}" ] && LOG "${logt}" "${*}"
  return 1
}

[ "USAGE: check_ne <lval> <rval> [--warning [message]]

Exits if lval matches rval" ]
Exits if (regex) lval matches rval.

Returns: true if lval mismatches rval" ]
check_ne() {
  local lval="${1}"
  local rval="${2}"
  shift 2
  if [ X"${1}" = X"--warning" ]; then
      EXPECT_NE "${lval}" "${rval}" ${*}
      return
  if ! [[ "${rval}" =~ ^${lval}$ ]]; then
    return 0
  fi
  if ! EXPECT_NE "${lval}" "${rval}"; then
    die "${@}"

  local error=true
  local logt=ERROR
  if [ X"${1}" = X"--warning" ]; then
      shift 1
      error=false
      logt=WARNING
  fi
  LOG "${logt}" "unexpected \"${rval}\""
  ${error} && die "${*}"
  [ -n "${*}" ] && LOG "${logt}" "${*}"
  return 1
}

[ "USAGE: join_with <delimiter> <strings>