diff --git a/vmm/src/config.rs b/vmm/src/config.rs index f12ad9d6a..aaa629fdd 100644 --- a/vmm/src/config.rs +++ b/vmm/src/config.rs @@ -717,7 +717,7 @@ impl RngConfig { // Split the parameters based on the comma delimiter let params_list: Vec<&str> = rng.split(',').collect(); - let mut src_str: &str = ""; + let mut src_str: &str = DEFAULT_RNG_SOURCE; let mut iommu_str: &str = ""; for param in params_list.iter() { @@ -1485,4 +1485,31 @@ mod tests { Ok(()) } + + #[test] + fn test_parse_rng() -> Result<()> { + assert_eq!(RngConfig::parse("")?, RngConfig::default()); + assert_eq!( + RngConfig::parse("src=/dev/random")?, + RngConfig { + src: PathBuf::from("/dev/random"), + ..Default::default() + } + ); + assert_eq!( + RngConfig::parse("src=/dev/random,iommu=on")?, + RngConfig { + src: PathBuf::from("/dev/random"), + iommu: true, + } + ); + assert_eq!( + RngConfig::parse("iommu=on")?, + RngConfig { + iommu: true, + ..Default::default() + } + ); + Ok(()) + } }