unit tests: Fix broken AArch64 unit tests

https://github.com/cloud-hypervisor/cloud-hypervisor/pull/1225
introduces a hypervisor abstraction crate, which breaks some of
the unit test cases on AArch64. This commit fixes related test
cases.

Signed-off-by: Henry Wang <henry.wang@arm.com>
This commit is contained in:
Henry Wang 2020-06-28 17:36:23 +08:00 committed by Rob Bradford
parent 462c58d58b
commit d824d55562
3 changed files with 15 additions and 16 deletions

View File

@ -531,7 +531,7 @@ mod tests {
use super::*; use super::*;
use crate::aarch64::gic::create_gic; use crate::aarch64::gic::create_gic;
use crate::aarch64::layout; use crate::aarch64::layout;
use kvm_ioctls::Kvm; use std::sync::Arc;
const LEN: u64 = 4096; const LEN: u64 = 4096;
@ -585,8 +585,10 @@ mod tests {
.iter() .iter()
.cloned() .cloned()
.collect(); .collect();
let kvm = Kvm::new().unwrap();
let vm = kvm.create_vm().unwrap(); let kvm = hypervisor::kvm::KvmHypervisor::new().unwrap();
let hv: Arc<dyn hypervisor::Hypervisor> = Arc::new(kvm);
let vm = hv.create_vm().unwrap();
let gic = create_gic(&vm, 1).unwrap(); let gic = create_gic(&vm, 1).unwrap();
assert!(create_fdt( assert!(create_fdt(
&mem, &mem,

View File

@ -146,14 +146,14 @@ pub fn create_gic(vm: &Arc<dyn hypervisor::Vm>, vcpu_count: u64) -> Result<Box<d
#[cfg(test)] #[cfg(test)]
mod tests { mod tests {
use super::*; use super::*;
use kvm_ioctls::Kvm;
#[test] #[test]
fn test_create_gic() { fn test_create_gic() {
let kvm = Kvm::new().unwrap(); let kvm = hypervisor::kvm::KvmHypervisor::new().unwrap();
let vm = kvm.create_vm().unwrap(); let hv: Arc<dyn hypervisor::Hypervisor> = Arc::new(kvm);
let vm = hv.create_vm().unwrap();
assert!(create_gic(&vm, 1).is_ok()); assert!(create_gic(&vm, 1).is_ok());
} }
} }

View File

@ -159,13 +159,13 @@ pub fn read_mpidr(vcpu: &Arc<dyn hypervisor::Vcpu>) -> Result<u64> {
mod tests { mod tests {
use super::*; use super::*;
use crate::aarch64::layout; use crate::aarch64::layout;
use kvm_ioctls::Kvm;
use vm_memory::{GuestAddress, GuestMemoryMmap}; use vm_memory::{GuestAddress, GuestMemoryMmap};
#[test] #[test]
fn test_setup_regs() { fn test_setup_regs() {
let kvm = Kvm::new().unwrap(); let kvm = hypervisor::kvm::KvmHypervisor::new().unwrap();
let vm = kvm.create_vm().unwrap(); let hv: Arc<dyn hypervisor::Hypervisor> = Arc::new(kvm);
let vm = hv.create_vm().unwrap();
let vcpu = vm.create_vcpu(0).unwrap(); let vcpu = vm.create_vcpu(0).unwrap();
let mut regions = Vec::new(); let mut regions = Vec::new();
regions.push(( regions.push((
@ -174,10 +174,6 @@ mod tests {
)); ));
let mem = GuestMemoryMmap::from_ranges(&regions).expect("Cannot initialize memory"); let mem = GuestMemoryMmap::from_ranges(&regions).expect("Cannot initialize memory");
match setup_regs(&vcpu, 0, 0x0, &mem).unwrap_err() {
Error::SetCoreRegister(ref e) => assert_eq!(e.errno(), libc::ENOEXEC),
_ => panic!("Expected to receive Error::SetCoreRegister"),
}
let mut kvi: kvm_bindings::kvm_vcpu_init = kvm_bindings::kvm_vcpu_init::default(); let mut kvi: kvm_bindings::kvm_vcpu_init = kvm_bindings::kvm_vcpu_init::default();
vm.get_preferred_target(&mut kvi).unwrap(); vm.get_preferred_target(&mut kvi).unwrap();
vcpu.vcpu_init(&kvi).unwrap(); vcpu.vcpu_init(&kvi).unwrap();
@ -186,8 +182,9 @@ mod tests {
} }
#[test] #[test]
fn test_read_mpidr() { fn test_read_mpidr() {
let kvm = Kvm::new().unwrap(); let kvm = hypervisor::kvm::KvmHypervisor::new().unwrap();
let vm = kvm.create_vm().unwrap(); let hv: Arc<dyn hypervisor::Hypervisor> = Arc::new(kvm);
let vm = hv.create_vm().unwrap();
let vcpu = vm.create_vcpu(0).unwrap(); let vcpu = vm.create_vcpu(0).unwrap();
let mut kvi: kvm_bindings::kvm_vcpu_init = kvm_bindings::kvm_vcpu_init::default(); let mut kvi: kvm_bindings::kvm_vcpu_init = kvm_bindings::kvm_vcpu_init::default();
vm.get_preferred_target(&mut kvi).unwrap(); vm.get_preferred_target(&mut kvi).unwrap();