tests: Port test_reboot to the new methodology
@@ -3775,7 +3775,6 @@ mod tests {
#[cfg_attr(not(feature = "mmio"), test)]
#[cfg(target_arch = "x86_64")]
fn test_reboot() {
- test_block!(tb, "", {
let mut bionic = UbuntuDiskConfig::new(BIONIC_IMAGE_NAME.to_string());
let mut focal = UbuntuDiskConfig::new(FOCAL_IMAGE_NAME.to_string());
@@ -3794,11 +3793,13 @@ mod tests {
.default_raw_disks()
.default_net()
.args(&["--serial", "tty", "--console", "off"])
+ .capture_output()
.spawn()
.unwrap();
thread::sleep(std::time::Duration::new(20, 0));
+ let r = std::panic::catch_unwind(|| {
let reboot_count = guest
.ssh_command("sudo journalctl | grep -c -- \"-- Reboot --\"")
.unwrap_or_default()
@@ -3807,7 +3808,7 @@ mod tests {
.unwrap_or(1);
let fd_count_1 = get_fd_count(child.id());
- aver_eq!(tb, reboot_count, 0);
+ assert_eq!(reboot_count, 0);
guest.ssh_command("sudo reboot").unwrap_or_default();
thread::sleep(std::time::Duration::new(20, 0));
@@ -3818,20 +3819,25 @@ mod tests {
.parse::<u32>()
.unwrap_or_default();
let fd_count_2 = get_fd_count(child.id());
- aver_eq!(tb, reboot_count, 1);
- aver_eq!(tb, fd_count_1, fd_count_2);
+ assert_eq!(reboot_count, 1);
+ assert_eq!(fd_count_1, fd_count_2);
guest
.ssh_command("sudo shutdown -h now")
.unwrap_or_default();
+ thread::sleep(std::time::Duration::new(20, 0));
+ });
+ let _ = child.kill();
+ let output = child.wait_with_output().unwrap();
+ handle_child_output(r, &output);
+
+ let r = std::panic::catch_unwind(|| {
// Check that the cloud-hypervisor binary actually terminated
- if let Ok(status) = child.wait() {
- aver_eq!(tb, status.success(), true);
- }
- let _ = child.wait();
+ assert_eq!(output.status.success(), true);
});
- Ok(())
+
+ handle_child_output(r, &output);
});
}
