From d824d555625ed40c30f1af96346ae81c5a3874b2 Mon Sep 17 00:00:00 2001 From: Henry Wang Date: Sun, 28 Jun 2020 17:36:23 +0800 Subject: [PATCH] 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 --- arch/src/aarch64/fdt.rs | 8 +++++--- arch/src/aarch64/gic.rs | 8 ++++---- arch/src/aarch64/regs.rs | 15 ++++++--------- 3 files changed, 15 insertions(+), 16 deletions(-) diff --git a/arch/src/aarch64/fdt.rs b/arch/src/aarch64/fdt.rs index 5ad3f23de..9df96c464 100644 --- a/arch/src/aarch64/fdt.rs +++ b/arch/src/aarch64/fdt.rs @@ -531,7 +531,7 @@ mod tests { use super::*; use crate::aarch64::gic::create_gic; use crate::aarch64::layout; - use kvm_ioctls::Kvm; + use std::sync::Arc; const LEN: u64 = 4096; @@ -585,8 +585,10 @@ mod tests { .iter() .cloned() .collect(); - let kvm = Kvm::new().unwrap(); - let vm = kvm.create_vm().unwrap(); + + let kvm = hypervisor::kvm::KvmHypervisor::new().unwrap(); + let hv: Arc = Arc::new(kvm); + let vm = hv.create_vm().unwrap(); let gic = create_gic(&vm, 1).unwrap(); assert!(create_fdt( &mem, diff --git a/arch/src/aarch64/gic.rs b/arch/src/aarch64/gic.rs index 2a971693d..1ec924446 100644 --- a/arch/src/aarch64/gic.rs +++ b/arch/src/aarch64/gic.rs @@ -146,14 +146,14 @@ pub fn create_gic(vm: &Arc, vcpu_count: u64) -> Result = Arc::new(kvm); + let vm = hv.create_vm().unwrap(); + assert!(create_gic(&vm, 1).is_ok()); } } diff --git a/arch/src/aarch64/regs.rs b/arch/src/aarch64/regs.rs index 1dbe7025c..6c471cfa0 100644 --- a/arch/src/aarch64/regs.rs +++ b/arch/src/aarch64/regs.rs @@ -159,13 +159,13 @@ pub fn read_mpidr(vcpu: &Arc) -> Result { mod tests { use super::*; use crate::aarch64::layout; - use kvm_ioctls::Kvm; use vm_memory::{GuestAddress, GuestMemoryMmap}; #[test] fn test_setup_regs() { - let kvm = Kvm::new().unwrap(); - let vm = kvm.create_vm().unwrap(); + let kvm = hypervisor::kvm::KvmHypervisor::new().unwrap(); + let hv: Arc = Arc::new(kvm); + let vm = hv.create_vm().unwrap(); let vcpu = vm.create_vcpu(0).unwrap(); let mut regions = Vec::new(); regions.push(( @@ -174,10 +174,6 @@ mod tests { )); let mem = GuestMemoryMmap::from_ranges(®ions).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(); vm.get_preferred_target(&mut kvi).unwrap(); vcpu.vcpu_init(&kvi).unwrap(); @@ -186,8 +182,9 @@ mod tests { } #[test] fn test_read_mpidr() { - let kvm = Kvm::new().unwrap(); - let vm = kvm.create_vm().unwrap(); + let kvm = hypervisor::kvm::KvmHypervisor::new().unwrap(); + let hv: Arc = Arc::new(kvm); + let vm = hv.create_vm().unwrap(); let vcpu = vm.create_vcpu(0).unwrap(); let mut kvi: kvm_bindings::kvm_vcpu_init = kvm_bindings::kvm_vcpu_init::default(); vm.get_preferred_target(&mut kvi).unwrap();