Add new script to stop a kvm using vm library and use in harness.

Change-Id: Ie80843a7b81a37b41ae19fc33244b5c0b8152282

BUG=chromium-os:10434
TEST=Ran it with full au test harness (still running but already showing promise).

Review URL: http://codereview.chromium.org/5988006
This commit is contained in:
Chris Sosa 2010-12-21 14:56:32 -08:00
parent c6c925d8ef
commit 4e32890c9b
3 changed files with 29 additions and 6 deletions

View File

@ -446,12 +446,10 @@ class VirtualAUTest(unittest.TestCase, AUTest):
if os.path.exists(pid_file):
Warning('Existing %s found. Deleting and killing process' %
pid_file)
pid = RunCommand(['sudo', 'cat', pid_file], redirect_stdout=True,
enter_chroot=False)
if pid:
RunCommand(['sudo', 'kill', pid.strip()], error_ok=True,
enter_chroot=False)
RunCommand(['sudo', 'rm', pid_file], enter_chroot=False)
RunCommand(['./cros_stop_vm', '--kvm_pid=%s' % pid_file],
cwd=self.crosutilsbin)
assert not os.path.exists(pid_file)
def setUp(self):
"""Unit test overriden method. Is called before every test."""

24
bin/cros_stop_vm Executable file
View File

@ -0,0 +1,24 @@
#!/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.
#
# Simple wrapper scipt to stop a vm specified from a pid file.
. "$(dirname $0)/../common.sh"
. "$(dirname $0)/../lib/cros_vm_lib.sh"
set -e
# Parse command line.
FLAGS "$@" || exit 1
eval set -- "${FLAGS_ARGV}"
# Requires pid file to be set.
if [ -z "${FLAGS_kvm_pid}" ]; then
die "Must specify file with pid of kvm to kill."
fi
KVM_PID_FILE="${FLAGS_kvm_pid}"
stop_kvm

View File

@ -86,6 +86,7 @@ function start_kvm() {
-net user,hostfwd=tcp::${FLAGS_ssh_port}-:22 \
-hda "${1}"
info "KVM started with pid stored in ${KVM_PID_FILE}"
LIVE_VM_IMAGE="${1}"
fi
}