Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(999)

Unified Diff: bin/cros_run_vm_test

Issue 3107039: Runs our BVT suite in a VM (Closed) Base URL: ssh://git@gitrw.chromium.org:9222/crosutils.git
Patch Set: removes some extraneous logging Created 10 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | run_remote_tests.sh » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: bin/cros_run_vm_test
diff --git a/bin/cros_run_vm_test b/bin/cros_run_vm_test
new file mode 100755
index 0000000000000000000000000000000000000000..82b3b8fcd41ca0ed7db56a30f8be8e574682e195
--- /dev/null
+++ b/bin/cros_run_vm_test
@@ -0,0 +1,58 @@
+#!/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"
+
+DEFINE_string image_path "" "Full path of the VM image"
+DEFINE_boolean no_graphics ${FLAGS_FALSE} "Runs the KVM instance silently"
+DEFINE_integer ssh_port 9222 "Port to tunnel ssh traffic over"
+DEFINE_string test_case "" "Name of the test case to run"
+
+set -e
+
+KVM_PID_FILE=/tmp/kvm.$$.pid
+
+# TODO(rtc): These flags assume that we'll be using KVM on Lucid and won't work
+# on Hardy.
+function start_kvm {
+ echo "Starting the KVM instance"
+ local nographics=""
+ if [ ${FLAGS_no_graphics} -eq ${FLAGS_TRUE} ]; then
+ nographics="-nographic"
+ fi
+ sudo kvm -m 1024 \
+ -vga std \
+ -pidfile "${KVM_PID_FILE}" \
+ -daemonize \
+ -net nic \
+ ${nographics} \
+ -net user,hostfwd=tcp::${FLAGS_ssh_port}-:22 \
+ -hda "${FLAGS_image_path}"
+}
+
+function stop_kvm {
+ echo "Stopping the KVM instance"
+ local pid=$(sudo cat "${KVM_PID_FILE}")
+ echo "Killing ${pid}"
+ sudo kill ${pid}
+ sudo rm "${KVM_PID_FILE}"
+}
+
+# Parse command line
+FLAGS "$@" || exit 1
+eval set -- "${FLAGS_ARGV}"
+
+[ -n "${FLAGS_image_path}" ] || die "You must specify a path to an image"
+[ -n "${FLAGS_test_case}" ] || die "You must specify a test case"
+
+trap stop_kvm EXIT
+start_kvm
+"$(dirname $0)"/../run_remote_tests.sh \
+ --ssh_port=${FLAGS_ssh_port} \
+ --remote="${HOSTNAME}" \
+ "${FLAGS_test_case}"
« no previous file with comments | « no previous file | run_remote_tests.sh » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698