#!/bin/sh
# Copyright 2014 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.

# Tests emerging all the ebuilds that use vboot_reference either as an
# ebuild dependency or by checking out the code and compiling it in a
# different ebuild. This is meant to be run from the chroot as part of testing
# a new change in vboot_reference.

# Required ebuilds:
TEST_EBUILDS="
  sys-boot/chromeos-bootimage
  sys-boot/chromeos-u-boot
  sys-boot/coreboot
  sys-boot/depthcharge
  chromeos-base/chromeos-cryptohome
  chromeos-base/chromeos-ec
  chromeos-base/chromeos-installer
  chromeos-base/chromeos-initramfs
  chromeos-base/chromeos-login
  chromeos-base/update_engine
  chromeos-base/vboot_reference
  chromeos-base/verity
"

set -e

# Check running inside the chroot.
if [ ! -e /etc/cros_chroot_version ]; then
  echo "You must run this inside the chroot." >&2
  exit 1
fi

# Detect the target board.
if [ "x${BOARD}" == "x" ]; then
  if [ -e ~/trunk/src/scripts/.default_board ]; then
    BOARD="`cat ~/trunk/src/scripts/.default_board`"
  else
    echo "You must pass BOARD environment variable or set a default board." >&2
    exit 1
  fi
fi

VBOOT_REF_DIR="$(dirname "$0")"
echo "Running tests for board '${BOARD}' from ${VBOOT_REF_DIR}"

cd "${VBOOT_REF_DIR}"

echo "Running make runtests..."
make runtests -j32

echo "Removing build artifacts."
rm -rf build build-main

echo "Running emerge tests (runs cros_workon start)."
# Ignore errors about already working on those repos.
cros_workon-${BOARD} start ${TEST_EBUILDS} || true

emerge-${BOARD} ${TEST_EBUILDS}
