mirror of
https://chromium.googlesource.com/crosvm/crosvm
synced 2025-02-10 12:09:31 +00:00
Run tools/fmt --nightly BUG=None TEST=None Change-Id: Iaccfc5fe141c512f4b508c699f89686a4552bf96 Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3988327 Reviewed-by: Daniel Verkamp <dverkamp@chromium.org> Commit-Queue: Dennis Kempin <denniskempin@google.com>
56 lines
1.9 KiB
Rust
56 lines
1.9 KiB
Rust
// Copyright 2022 The ChromiumOS Authors
|
|
// Use of this source code is governed by a BSD-style license that can be
|
|
// found in the LICENSE file.
|
|
|
|
#![cfg(unix)]
|
|
|
|
mod x86_64;
|
|
|
|
use devices::irqchip::IrqChip;
|
|
use devices::irqchip::KvmKernelIrqChip;
|
|
use hypervisor::kvm::Kvm;
|
|
use hypervisor::kvm::KvmVm;
|
|
use hypervisor::MPState;
|
|
use hypervisor::Vm;
|
|
#[cfg(any(target_arch = "arm", target_arch = "aarch64"))]
|
|
use hypervisor::VmAArch64;
|
|
#[cfg(any(target_arch = "x86", target_arch = "x86_64"))]
|
|
use hypervisor::VmX86_64;
|
|
use vm_memory::GuestMemory;
|
|
|
|
#[test]
|
|
fn create_kvm_kernel_irqchip() {
|
|
let kvm = Kvm::new().expect("failed to instantiate Kvm");
|
|
let mem = GuestMemory::new(&[]).unwrap();
|
|
let vm = KvmVm::new(&kvm, mem, Default::default()).expect("failed to instantiate vm");
|
|
|
|
let mut chip = KvmKernelIrqChip::new(vm.try_clone().expect("failed to clone vm"), 1)
|
|
.expect("failed to instantiate KvmKernelIrqChip");
|
|
|
|
let vcpu = vm.create_vcpu(0).expect("failed to instantiate vcpu");
|
|
chip.add_vcpu(0, vcpu.as_vcpu())
|
|
.expect("failed to add vcpu");
|
|
}
|
|
|
|
#[test]
|
|
fn mp_state() {
|
|
let kvm = Kvm::new().expect("failed to instantiate Kvm");
|
|
let mem = GuestMemory::new(&[]).unwrap();
|
|
let vm = KvmVm::new(&kvm, mem, Default::default()).expect("failed to instantiate vm");
|
|
|
|
let mut chip = KvmKernelIrqChip::new(vm.try_clone().expect("failed to clone vm"), 1)
|
|
.expect("failed to instantiate KvmKernelIrqChip");
|
|
|
|
let vcpu = vm.create_vcpu(0).expect("failed to instantiate vcpu");
|
|
chip.add_vcpu(0, vcpu.as_vcpu())
|
|
.expect("failed to add vcpu");
|
|
|
|
let state = chip.get_mp_state(0).expect("failed to get mp state");
|
|
assert_eq!(state, MPState::Runnable);
|
|
|
|
chip.set_mp_state(0, &MPState::Stopped)
|
|
.expect("failed to set mp state");
|
|
|
|
let state = chip.get_mp_state(0).expect("failed to get mp state");
|
|
assert_eq!(state, MPState::Stopped);
|
|
}
|