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

Unified Diff: bin/cros_run_vm_test

Issue 5174009: Add support for saving VM state when a test fails. (Closed) Base URL: http://git.chromium.org/git/crosutils.git@master
Patch Set: Created 10 years, 1 month 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 | image_to_vm.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
index d62a2b98524fadc489971677df2df893e1be18bc..968e74a92f02619dca16681a80f1a4a2c7cf7e90 100755
--- a/bin/cros_run_vm_test
+++ b/bin/cros_run_vm_test
@@ -23,6 +23,10 @@ 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."
+DEFINE_boolean save_vm_state ${FLAGS_FALSE} \
sosa 2010/11/20 08:55:08 Sort in alphabetical order
thieule 2010/11/24 00:51:34 Done.
+ "Save the state of the VM when a test fails"
+DEFINE_string save_vm_state_file ${DEFAULT_QEMU_COW_IMAGE} \
+ "Name of file to save VM state into if test fails"
set -e
@@ -54,6 +58,16 @@ if [ -z "${FLAGS_test_case}" ] && [ -z "${FLAGS_ARGV}" ]; then
die "You must specify a test case."
fi
+if [ ${FLAGS_save_vm_state} -eq ${FLAGS_TRUE} ] &&
+ [ ${FLAGS_snapshot} -eq ${FLAGS_TRUE} ]; then
+ die "You cannot set both --snapshot and --save_vm_state."
+fi
+
+if [ ${FLAGS_save_vm_state} -eq ${FLAGS_TRUE} ] &&
+ [ -z ${FLAGS_save_vm_state_file} ]; then
+ die "You must specify a save_vm_state_file."
+fi
+
USE_EMERGED=
if [[ ${FLAGS_use_emerged} -eq ${FLAGS_TRUE} ]]; then
USE_EMERGED="--use_emerged"
@@ -65,6 +79,15 @@ for test in ${FLAGS_ARGV}; do
tests=( "${tests[@]}" "$(remove_quotes "${test}")" )
done
+# Create a copy-on-write qcow2 file that is based off the default QEMU image
+# so that we can save state information into it.
+if [ ${FLAGS_save_vm_state} -eq ${FLAGS_TRUE} ]; then
+ QEMU_COW_IMAGE="$(${SCRIPTS_DIR}/get_latest_image.sh \
+ --board=${FLAGS_board})/${FLAGS_save_vm_state_file}"
+ qemu-img create -f qcow2 -b ${LATEST_IMAGE} ${QEMU_COW_IMAGE}
+ FLAGS_image_path=${QEMU_COW_IMAGE}
+fi
+
trap stop_kvm EXIT
start_kvm "${FLAGS_image_path}"
info "Checking for ssh access to virtual machine."
« no previous file with comments | « no previous file | image_to_vm.sh » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698