1b77aff570216cf1a58d687bde1512d88edba519fAlex Deymo#!/bin/sh
2b77aff570216cf1a58d687bde1512d88edba519fAlex Deymo# Copyright 2014 The Chromium OS Authors. All rights reserved.
3b77aff570216cf1a58d687bde1512d88edba519fAlex Deymo# Use of this source code is governed by a BSD-style license that can be
4b77aff570216cf1a58d687bde1512d88edba519fAlex Deymo# found in the LICENSE file.
5b77aff570216cf1a58d687bde1512d88edba519fAlex Deymo
6b77aff570216cf1a58d687bde1512d88edba519fAlex Deymo# Tests emerging all the ebuilds that use vboot_reference either as an
7b77aff570216cf1a58d687bde1512d88edba519fAlex Deymo# ebuild dependency or by checking out the code and compiling it in a
8b77aff570216cf1a58d687bde1512d88edba519fAlex Deymo# different ebuild. This is meant to be run from the chroot as part of testing
9b77aff570216cf1a58d687bde1512d88edba519fAlex Deymo# a new change in vboot_reference.
10b77aff570216cf1a58d687bde1512d88edba519fAlex Deymo
11b77aff570216cf1a58d687bde1512d88edba519fAlex Deymo# Required ebuilds:
12b77aff570216cf1a58d687bde1512d88edba519fAlex DeymoTEST_EBUILDS="
13b77aff570216cf1a58d687bde1512d88edba519fAlex Deymo  sys-boot/chromeos-bootimage
14e08ee28548934e933733babf0bc0c418142d095dAlex Deymo  sys-boot/chromeos-u-boot
15b77aff570216cf1a58d687bde1512d88edba519fAlex Deymo  sys-boot/coreboot
16b77aff570216cf1a58d687bde1512d88edba519fAlex Deymo  sys-boot/depthcharge
17b77aff570216cf1a58d687bde1512d88edba519fAlex Deymo  chromeos-base/chromeos-cryptohome
18b77aff570216cf1a58d687bde1512d88edba519fAlex Deymo  chromeos-base/chromeos-ec
19b77aff570216cf1a58d687bde1512d88edba519fAlex Deymo  chromeos-base/chromeos-installer
20b77aff570216cf1a58d687bde1512d88edba519fAlex Deymo  chromeos-base/chromeos-initramfs
21b77aff570216cf1a58d687bde1512d88edba519fAlex Deymo  chromeos-base/chromeos-login
22b77aff570216cf1a58d687bde1512d88edba519fAlex Deymo  chromeos-base/update_engine
23b77aff570216cf1a58d687bde1512d88edba519fAlex Deymo  chromeos-base/vboot_reference
24b77aff570216cf1a58d687bde1512d88edba519fAlex Deymo  chromeos-base/verity
25b77aff570216cf1a58d687bde1512d88edba519fAlex Deymo"
26b77aff570216cf1a58d687bde1512d88edba519fAlex Deymo
27b77aff570216cf1a58d687bde1512d88edba519fAlex Deymoset -e
28b77aff570216cf1a58d687bde1512d88edba519fAlex Deymo
29b77aff570216cf1a58d687bde1512d88edba519fAlex Deymo# Check running inside the chroot.
30b77aff570216cf1a58d687bde1512d88edba519fAlex Deymoif [ ! -e /etc/cros_chroot_version ]; then
31b77aff570216cf1a58d687bde1512d88edba519fAlex Deymo  echo "You must run this inside the chroot." >&2
32b77aff570216cf1a58d687bde1512d88edba519fAlex Deymo  exit 1
33b77aff570216cf1a58d687bde1512d88edba519fAlex Deymofi
34b77aff570216cf1a58d687bde1512d88edba519fAlex Deymo
35b77aff570216cf1a58d687bde1512d88edba519fAlex Deymo# Detect the target board.
36b77aff570216cf1a58d687bde1512d88edba519fAlex Deymoif [ "x${BOARD}" == "x" ]; then
37b77aff570216cf1a58d687bde1512d88edba519fAlex Deymo  if [ -e ~/trunk/src/scripts/.default_board ]; then
38b77aff570216cf1a58d687bde1512d88edba519fAlex Deymo    BOARD="`cat ~/trunk/src/scripts/.default_board`"
39b77aff570216cf1a58d687bde1512d88edba519fAlex Deymo  else
40b77aff570216cf1a58d687bde1512d88edba519fAlex Deymo    echo "You must pass BOARD environment variable or set a default board." >&2
41b77aff570216cf1a58d687bde1512d88edba519fAlex Deymo    exit 1
42b77aff570216cf1a58d687bde1512d88edba519fAlex Deymo  fi
43b77aff570216cf1a58d687bde1512d88edba519fAlex Deymofi
44b77aff570216cf1a58d687bde1512d88edba519fAlex Deymo
45b77aff570216cf1a58d687bde1512d88edba519fAlex DeymoVBOOT_REF_DIR="$(dirname "$0")"
46b77aff570216cf1a58d687bde1512d88edba519fAlex Deymoecho "Running tests for board '${BOARD}' from ${VBOOT_REF_DIR}"
47b77aff570216cf1a58d687bde1512d88edba519fAlex Deymo
48b77aff570216cf1a58d687bde1512d88edba519fAlex Deymocd "${VBOOT_REF_DIR}"
49b77aff570216cf1a58d687bde1512d88edba519fAlex Deymo
50b77aff570216cf1a58d687bde1512d88edba519fAlex Deymoecho "Running make runtests..."
51b77aff570216cf1a58d687bde1512d88edba519fAlex Deymomake runtests -j32
52b77aff570216cf1a58d687bde1512d88edba519fAlex Deymo
53b77aff570216cf1a58d687bde1512d88edba519fAlex Deymoecho "Removing build artifacts."
54b77aff570216cf1a58d687bde1512d88edba519fAlex Deymorm -rf build build-main
55b77aff570216cf1a58d687bde1512d88edba519fAlex Deymo
56b77aff570216cf1a58d687bde1512d88edba519fAlex Deymoecho "Running emerge tests (runs cros_workon start)."
57b77aff570216cf1a58d687bde1512d88edba519fAlex Deymo# Ignore errors about already working on those repos.
58b77aff570216cf1a58d687bde1512d88edba519fAlex Deymocros_workon-${BOARD} start ${TEST_EBUILDS} || true
59b77aff570216cf1a58d687bde1512d88edba519fAlex Deymo
60b77aff570216cf1a58d687bde1512d88edba519fAlex DeymoUSE=depthcharge emerge-${BOARD} ${TEST_EBUILDS}
61