diff --git a/tests/integration.rs b/tests/integration.rs index ef337a692..c98e9f7a0 100644 --- a/tests/integration.rs +++ b/tests/integration.rs @@ -952,34 +952,32 @@ mod tests { } fn test_cpu_topology(threads_per_core: u8, cores_per_package: u8, packages: u8) { - test_block!(tb, "", { - let mut focal = UbuntuDiskConfig::new(FOCAL_IMAGE_NAME.to_string()); - let guest = Guest::new(&mut focal); - let total_vcpus = threads_per_core * cores_per_package * packages; - let mut child = GuestCommand::new(&guest) - .args(&[ - "--cpus", - &format!( - "boot={},topology={}:{}:1:{}", - total_vcpus, threads_per_core, cores_per_package, packages - ), - ]) - .args(&["--memory", "size=512M"]) - .args(&["--kernel", guest.fw_path.as_str()]) - .default_disks() - .default_net() - .spawn() - .unwrap(); + let mut focal = UbuntuDiskConfig::new(FOCAL_IMAGE_NAME.to_string()); + let guest = Guest::new(&mut focal); + let total_vcpus = threads_per_core * cores_per_package * packages; + let mut child = GuestCommand::new(&guest) + .args(&[ + "--cpus", + &format!( + "boot={},topology={}:{}:1:{}", + total_vcpus, threads_per_core, cores_per_package, packages + ), + ]) + .args(&["--memory", "size=512M"]) + .args(&["--kernel", guest.fw_path.as_str()]) + .default_disks() + .default_net() + .capture_output() + .spawn() + .unwrap(); - thread::sleep(std::time::Duration::new(20, 0)); - - aver_eq!( - tb, + thread::sleep(std::time::Duration::new(20, 0)); + let r = std::panic::catch_unwind(|| { + assert_eq!( guest.get_cpu_count().unwrap_or_default(), u32::from(total_vcpus) ); - aver_eq!( - tb, + assert_eq!( guest .ssh_command("lscpu | grep \"per core\" | cut -f 2 -d \":\" | sed \"s# *##\"") .unwrap_or_default() @@ -989,8 +987,7 @@ mod tests { threads_per_core ); - aver_eq!( - tb, + assert_eq!( guest .ssh_command("lscpu | grep \"per socket\" | cut -f 2 -d \":\" | sed \"s# *##\"") .unwrap_or_default() @@ -1000,8 +997,7 @@ mod tests { cores_per_package ); - aver_eq!( - tb, + assert_eq!( guest .ssh_command("lscpu | grep \"Socket\" | cut -f 2 -d \":\" | sed \"s# *##\"") .unwrap_or_default() @@ -1010,11 +1006,12 @@ mod tests { .unwrap_or(0), packages ); - - let _ = child.kill(); - let _ = child.wait(); - Ok(()) }); + + let _ = child.kill(); + let output = child.wait_with_output().unwrap(); + + handle_child_output(r, &output); } type PrepareNetDaemon =