flatcar-scripts/bin/cros_run_vm_test
Anush Elangovan dcd5b59d4a Disable chrome version check in vm_test since it is in a ebuild
Change-Id: I1a3f46cf37341255dbb01866cf68e5308bb36d83

BUG=10024
TEST=adhoc

Review URL: http://codereview.chromium.org/5603007
2010-12-04 17:21:38 -08:00

93 lines
2.8 KiB
Bash
Executable File

#!/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." b
DEFINE_string image_path "" "Full path of the VM image"
DEFINE_string results_dir_root "" "alternate root results directory"
DEFINE_string test_case "" "Name of the test case to run"
DEFINE_boolean use_emerged ${FLAGS_FALSE} \
"Force use of emerged autotest packages"
DEFINE_string verify_chrome_version "" \
"Verify that this chrome version matches that on vm."
set -e
# Returns normally if the given $1 is a valid chrome version.
chrome_version_is_valid() {
local chrome_version="$1"
echo ${chrome_version} | egrep '^[0-9]+.[0-9]+.[0-9]+.[0-9]+$' &> /dev/null
}
# Parse command line.
FLAGS "$@" || exit 1
# 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."
if [ -n "${FLAGS_test_case}" ]; then
warn "Use of --test_case=<test> is being deprecated. Just pass test names \
as separate command line arguments."
fi
if [ -z "${FLAGS_test_case}" ] && [ -z "${FLAGS_ARGV}" ]; then
die "You must specify a test case."
fi
USE_EMERGED=
if [[ ${FLAGS_use_emerged} -eq ${FLAGS_TRUE} ]]; then
USE_EMERGED="--use_emerged"
fi
tests=( )
[ -n "${FLAGS_test_case}" ] && tests=( "${FLAGS_test_case}" )
for test in ${FLAGS_ARGV}; do
tests=( "${tests[@]}" "$(remove_quotes "${test}")" )
done
trap stop_kvm EXIT
start_kvm "${FLAGS_image_path}"
info "Checking for ssh access to virtual machine."
retry_until_ssh ${MAX_RETRIES}
if [ -n "${FLAGS_verify_chrome_version}" ]; then
info "Verifying version of Chrome matches what we expect."
if chrome_version_is_valid "${FLAGS_verify_chrome_version}"; then
chrome_version_on_vm=$("$(dirname $0)/cros_get_chrome_version" \
--remote=127.0.0.1 \
--ssh_port=${FLAGS_ssh_port})
[[ ${chrome_version_on_vm} == ${FLAGS_verify_chrome_version} ]] || \
warn "CHROME_VERSION is no longer set.This check will be removed"
else
warn "${FLAGS_verify_chrome_version} is not a valid Chrome version"
fi
fi
"$(dirname $0)"/../run_remote_tests.sh \
--board=${FLAGS_board} \
--ssh_port=${FLAGS_ssh_port} \
--remote=127.0.0.1 \
--results_dir_root="${FLAGS_results_dir_root}" \
${USE_EMERGED} \
"${tests[@]}"