#!/bin/bash

# Copyright 2017 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.
#
# Starts a VM and runs one or more Tast tests inside of it.
#
# See https://chromium.googlesource.com/chromiumos/platform/tast/ for details.

# This can only run outside the chroot.
. $(dirname "$(readlink -f "$0")")/outside_chroot_common.sh || exit 1
. "${SCRIPT_ROOT}/common.sh" || exit 1
. "${SCRIPT_ROOT}/lib/cros_vm_lib.sh" || die "Unable to load cros_vm_lib.sh"
. "${SCRIPT_ROOT}/lib/cros_vm_constants.sh" ||
  die "Unable to load cros_vm_constants.sh"

FLAGS_HELP=$(cat <<-EOF
Usage: $0 [flags] <test-expr> <test-expr> ...
Starts a VM and runs one or more Tast tests inside of it.
See https://goo.gl/UPNEgT for info about test expressions.
EOF
)

# Note that cros_vm_lib.sh defines a bunch of additional flags.
DEFINE_string board "$DEFAULT_BOARD" "Board used to run tests." b
DEFINE_string image_path "" "Full path to the VM image."
DEFINE_string results_dir "" "Results directory (within the chroot)."

set -e

# Parse command line.
FLAGS "$@" || exit 1
eval set -- "${FLAGS_ARGV}"

[ -n "${FLAGS_board}" ] || die "Board must be specified (-b or --board)."

if [ -z "${FLAGS_image_path}" ]; then
  LATEST_IMAGE="$("${SCRIPT_ROOT}/get_latest_image.sh" \
      --board=${FLAGS_board})/${DEFAULT_QEMU_IMAGE}"
  info "Using latest vm image ${LATEST_IMAGE}"
  FLAGS_image_path=${LATEST_IMAGE}
fi

[ -e "${FLAGS_image_path}" ] || die "Image ${FLAGS_image_path} does not exist."

run_args=( )
if [ -n "${FLAGS_results_dir}" ]; then
  run_args+=("-resultsdir=${FLAGS_results_dir}")
fi
if [ -n "${FLAGS_ssh_private_key}" ]; then
  chroot_key="$(reinterpret_path_for_chroot "${FLAGS_ssh_private_key}")"
  run_args+=("-keyfile=${chroot_key}")
fi

trap stop_kvm EXIT
start_kvm "${FLAGS_image_path}" "${FLAGS_board}"
retry_until_ssh

${GCLIENT_ROOT}/chromite/bin/cros_sdk -- \
    tast -verbose run -build=false "${run_args[@]}" \
    127.0.0.1:${FLAGS_ssh_port} "$@"
