mirror of
https://github.com/kata-containers/kata-containers.git
synced 2025-04-28 19:54:35 +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);
|
||||
|
||||
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 m2 = File::open("/dev/kvm").unwrap().metadata().unwrap();
|
||||
|
||||
|
@ -758,13 +758,11 @@ impl Drop for Vcpu {
|
||||
|
||||
#[cfg(test)]
|
||||
pub mod tests {
|
||||
use std::os::unix::io::AsRawFd;
|
||||
use std::sync::mpsc::{channel, Receiver};
|
||||
use std::sync::Mutex;
|
||||
|
||||
use arc_swap::ArcSwap;
|
||||
use dbs_device::device_manager::IoManager;
|
||||
use kvm_ioctls::Kvm;
|
||||
use lazy_static::lazy_static;
|
||||
use test_utils::skip_if_not_root;
|
||||
|
||||
@ -812,12 +810,8 @@ pub mod tests {
|
||||
|
||||
#[cfg(target_arch = "x86_64")]
|
||||
fn create_vcpu() -> (Vcpu, Receiver<VcpuStateEvent>) {
|
||||
// Call for kvm too frequently would cause error in some host kernel.
|
||||
std::thread::sleep(std::time::Duration::from_millis(5));
|
||||
|
||||
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 kvm_context = KvmContext::new(None).unwrap();
|
||||
let vm = kvm_context.kvm().create_vm().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 supported_cpuid = kvm_context
|
||||
|
@ -1062,7 +1062,6 @@ mod tests {
|
||||
fn get_vm() -> Vm {
|
||||
let instance_info = Arc::new(RwLock::new(InstanceInfo::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 vm_config = VmConfigInfo {
|
||||
vcpu_count: 1,
|
||||
@ -1111,7 +1110,6 @@ mod tests {
|
||||
skip_if_not_root!();
|
||||
let instance_info = Arc::new(RwLock::new(InstanceInfo::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 vm_config = VmConfigInfo {
|
||||
vcpu_count: 1,
|
||||
|
Loading…
Reference in New Issue
Block a user