mirror of
https://github.com/cloud-hypervisor/cloud-hypervisor.git
synced 2026-08-05 02:19:16 +00:00
vmm: Add unit test for 'VmConfig::preserved_fds'
Signed-off-by: Bo Chen <chen.bo@intel.com>
This commit is contained in:
@@ -2168,6 +2168,8 @@ impl Drop for VmConfig {
|
|||||||
mod tests {
|
mod tests {
|
||||||
use super::*;
|
use super::*;
|
||||||
use net_util::MacAddr;
|
use net_util::MacAddr;
|
||||||
|
use std::fs::File;
|
||||||
|
use std::os::unix::io::AsRawFd;
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_cpu_parsing() -> Result<()> {
|
fn test_cpu_parsing() -> Result<()> {
|
||||||
@@ -3184,7 +3186,7 @@ mod tests {
|
|||||||
]);
|
]);
|
||||||
assert!(still_valid_config.validate().is_ok());
|
assert!(still_valid_config.validate().is_ok());
|
||||||
|
|
||||||
let mut invalid_config = valid_config;
|
let mut invalid_config = valid_config.clone();
|
||||||
invalid_config.devices = Some(vec![
|
invalid_config.devices = Some(vec![
|
||||||
DeviceConfig {
|
DeviceConfig {
|
||||||
path: "/device1".into(),
|
path: "/device1".into(),
|
||||||
@@ -3196,5 +3198,16 @@ mod tests {
|
|||||||
},
|
},
|
||||||
]);
|
]);
|
||||||
assert!(invalid_config.validate().is_err());
|
assert!(invalid_config.validate().is_err());
|
||||||
|
|
||||||
|
let mut still_valid_config = valid_config;
|
||||||
|
// SAFETY: Safe as the file was just opened
|
||||||
|
let fd1 = unsafe { libc::dup(File::open("/dev/null").unwrap().as_raw_fd()) };
|
||||||
|
// SAFETY: Safe as the file was just opened
|
||||||
|
let fd2 = unsafe { libc::dup(File::open("/dev/null").unwrap().as_raw_fd()) };
|
||||||
|
// SAFETY: safe as both FDs are valid
|
||||||
|
unsafe {
|
||||||
|
still_valid_config.add_preserved_fds(vec![fd1, fd2]);
|
||||||
|
}
|
||||||
|
let _still_valid_config = still_valid_config.clone();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user