diff --git a/bin/cros_au_test_harness.py b/bin/cros_au_test_harness.py index 6e537036ae..5d5b221760 100755 --- a/bin/cros_au_test_harness.py +++ b/bin/cros_au_test_harness.py @@ -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.""" diff --git a/bin/cros_stop_vm b/bin/cros_stop_vm new file mode 100755 index 0000000000..84fa56c291 --- /dev/null +++ b/bin/cros_stop_vm @@ -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 diff --git a/lib/cros_vm_lib.sh b/lib/cros_vm_lib.sh index 741c5feae5..b0cd1ee6da 100644 --- a/lib/cros_vm_lib.sh +++ b/lib/cros_vm_lib.sh @@ -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 }