mirror of
https://github.com/kata-containers/kata-containers.git
synced 2025-04-29 04:04:45 +00:00
dragonball: fix unit test failure case about Kvm.
Due to the wrong use of as_raw_fd, Kvm was dropped twice. Signed-off-by: wllenyj <wllenyj@linux.alibaba.com>
This commit is contained in:
parent
2b02e0a9bf
commit
31591d7915
@ -228,7 +228,7 @@ mod tests {
|
|||||||
assert!(c.max_memslots >= 32);
|
assert!(c.max_memslots >= 32);
|
||||||
|
|
||||||
let kvm = Kvm::new().unwrap();
|
let kvm = Kvm::new().unwrap();
|
||||||
let f = unsafe { File::from_raw_fd(kvm.as_raw_fd()) };
|
let f = std::mem::ManuallyDrop::new(unsafe { File::from_raw_fd(kvm.as_raw_fd()) });
|
||||||
let m1 = f.metadata().unwrap();
|
let m1 = f.metadata().unwrap();
|
||||||
let m2 = File::open("/dev/kvm").unwrap().metadata().unwrap();
|
let m2 = File::open("/dev/kvm").unwrap().metadata().unwrap();
|
||||||
|
|
||||||
|
@ -758,13 +758,11 @@ impl Drop for Vcpu {
|
|||||||
|
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
pub mod tests {
|
pub mod tests {
|
||||||
use std::os::unix::io::AsRawFd;
|
|
||||||
use std::sync::mpsc::{channel, Receiver};
|
use std::sync::mpsc::{channel, Receiver};
|
||||||
use std::sync::Mutex;
|
use std::sync::Mutex;
|
||||||
|
|
||||||
use arc_swap::ArcSwap;
|
use arc_swap::ArcSwap;
|
||||||
use dbs_device::device_manager::IoManager;
|
use dbs_device::device_manager::IoManager;
|
||||||
use kvm_ioctls::Kvm;
|
|
||||||
use lazy_static::lazy_static;
|
use lazy_static::lazy_static;
|
||||||
use test_utils::skip_if_not_root;
|
use test_utils::skip_if_not_root;
|
||||||
|
|
||||||
@ -812,12 +810,8 @@ pub mod tests {
|
|||||||
|
|
||||||
#[cfg(target_arch = "x86_64")]
|
#[cfg(target_arch = "x86_64")]
|
||||||
fn create_vcpu() -> (Vcpu, Receiver<VcpuStateEvent>) {
|
fn create_vcpu() -> (Vcpu, Receiver<VcpuStateEvent>) {
|
||||||
// Call for kvm too frequently would cause error in some host kernel.
|
let kvm_context = KvmContext::new(None).unwrap();
|
||||||
std::thread::sleep(std::time::Duration::from_millis(5));
|
let vm = kvm_context.kvm().create_vm().unwrap();
|
||||||
|
|
||||||
let kvm = Kvm::new().unwrap();
|
|
||||||
let vm = Arc::new(kvm.create_vm().unwrap());
|
|
||||||
let kvm_context = KvmContext::new(Some(kvm.as_raw_fd())).unwrap();
|
|
||||||
let vcpu_fd = Arc::new(vm.create_vcpu(0).unwrap());
|
let vcpu_fd = Arc::new(vm.create_vcpu(0).unwrap());
|
||||||
let io_manager = IoManagerCached::new(Arc::new(ArcSwap::new(Arc::new(IoManager::new()))));
|
let io_manager = IoManagerCached::new(Arc::new(ArcSwap::new(Arc::new(IoManager::new()))));
|
||||||
let supported_cpuid = kvm_context
|
let supported_cpuid = kvm_context
|
||||||
|
@ -1062,7 +1062,6 @@ mod tests {
|
|||||||
fn get_vm() -> Vm {
|
fn get_vm() -> Vm {
|
||||||
let instance_info = Arc::new(RwLock::new(InstanceInfo::default()));
|
let instance_info = Arc::new(RwLock::new(InstanceInfo::default()));
|
||||||
let epoll_manager = EpollManager::default();
|
let epoll_manager = EpollManager::default();
|
||||||
std::thread::sleep(std::time::Duration::from_millis(200));
|
|
||||||
let mut vm = Vm::new(None, instance_info, epoll_manager).unwrap();
|
let mut vm = Vm::new(None, instance_info, epoll_manager).unwrap();
|
||||||
let vm_config = VmConfigInfo {
|
let vm_config = VmConfigInfo {
|
||||||
vcpu_count: 1,
|
vcpu_count: 1,
|
||||||
@ -1111,7 +1110,6 @@ mod tests {
|
|||||||
skip_if_not_root!();
|
skip_if_not_root!();
|
||||||
let instance_info = Arc::new(RwLock::new(InstanceInfo::default()));
|
let instance_info = Arc::new(RwLock::new(InstanceInfo::default()));
|
||||||
let epoll_manager = EpollManager::default();
|
let epoll_manager = EpollManager::default();
|
||||||
std::thread::sleep(std::time::Duration::from_millis(200));
|
|
||||||
let mut vm = Vm::new(None, instance_info, epoll_manager).unwrap();
|
let mut vm = Vm::new(None, instance_info, epoll_manager).unwrap();
|
||||||
let vm_config = VmConfigInfo {
|
let vm_config = VmConfigInfo {
|
||||||
vcpu_count: 1,
|
vcpu_count: 1,
|
||||||
|
Loading…
Reference in New Issue
Block a user