#!/bin/bash # Copyright (c) 2010 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. # # Runs a given test case under a VM. . "$(dirname $0)/../common.sh" . "$(dirname $0)/../lib/cros_vm_lib.sh" . "$(dirname "$0")/../lib/cros_vm_constants.sh" MAX_RETRIES=3 get_default_board DEFINE_string board "$DEFAULT_BOARD" \ "The board for which you built autotest." DEFINE_string image_path "" "Full path of the VM image" DEFINE_string test_case "" "Name of the test case to run" set -e # Parse command line. FLAGS "$@" || exit 1 eval set -- "${FLAGS_ARGV}" # Use latest if not specified. if [ -z "${FLAGS_image_path}" ]; then LATEST_IMAGE="$(${SCRIPTS_DIR}/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." [ -n "${FLAGS_test_case}" ] || die "You must specify a test case." trap stop_kvm EXIT start_kvm "${FLAGS_image_path}" info "Checking for ssh access to virtual machine." retry_until_ssh ${MAX_RETRIES} "$(dirname $0)"/../run_remote_tests.sh \ --board=${FLAGS_board} \ --ssh_port=${FLAGS_ssh_port} \ --remote=127.0.0.1 \ "${FLAGS_test_case}"