#!/bin/bash -eu
# Copyright 2013 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

# Load common constants and variables.
. "$(dirname "$0")/../common.sh"

OUTDIR="${BUILD}/tests/futility_test_results"
[ -d "$OUTDIR" ] || mkdir -p "$OUTDIR"

# Let each test know where to find things...
export BUILD
export BUILD_RUN
export SRCDIR
export FUTILITY
export SCRIPT_DIR
export OUTDIR

# These are the scripts to run. Binaries are invoked directly by the Makefile.
TESTS="
${SCRIPT_DIR}/futility/test_create.sh
${SCRIPT_DIR}/futility/test_dump_fmap.sh
${SCRIPT_DIR}/futility/test_gbb_utility.sh
${SCRIPT_DIR}/futility/test_load_fmap.sh
${SCRIPT_DIR}/futility/test_main.sh
${SCRIPT_DIR}/futility/test_rwsig.sh
${SCRIPT_DIR}/futility/test_show_contents.sh
${SCRIPT_DIR}/futility/test_show_kernel.sh
${SCRIPT_DIR}/futility/test_show_vs_verify.sh
${SCRIPT_DIR}/futility/test_show_usbpd1.sh
${SCRIPT_DIR}/futility/test_sign_firmware.sh
${SCRIPT_DIR}/futility/test_sign_fw_main.sh
${SCRIPT_DIR}/futility/test_sign_kernel.sh
${SCRIPT_DIR}/futility/test_sign_keyblocks.sh
${SCRIPT_DIR}/futility/test_sign_usbpd1.sh
${SCRIPT_DIR}/futility/test_update.sh
${SCRIPT_DIR}/futility/test_file_types.sh
"

# Get ready...
pass=0
progs=0

##############################################################################
# Invoke the scripts that test the builtin functions.

# Let the test scripts use >&3 to indicate progress
exec 3>&1

echo "-- builtin --"
for i in $TESTS; do
  j=${i##*/}

  : $(( progs++ ))

  echo -n "$j ... "
  rm -rf "${OUTDIR}/$j."*
  rc=$("$i" "$FUTILITY" 1>"${OUTDIR}/$j.stdout" \
    2>"${OUTDIR}/$j.stderr" || echo "$?")
  echo "${rc:-0}" > "${OUTDIR}/$j.return"
  if [ ! "$rc" ]; then
    echo -e "${COL_GREEN}PASSED${COL_STOP}"
    : $(( pass++ ))
    rm -f ${OUTDIR}/$j.{stdout,stderr,return}
  else
    echo -e "${COL_RED}FAILED (${rc:-0}). Stdout is recorded in" \
      "${OUTDIR}/$j.stdout${COL_STOP}"
    cat ${OUTDIR}/$j.stderr
  fi
done

##############################################################################
# How'd we do?

if [ "$pass" -eq "$progs" ]; then
  echo -e "${COL_GREEN}Success: $pass / $progs passed${COL_STOP}"
  exit 0
fi

echo -e "${COL_RED}FAIL: $pass / $progs passed${COL_STOP}"
exit 1
