From 9f1ac24bedc08b635e1a630196186f580e19eba3 Mon Sep 17 00:00:00 2001 From: Rob Bradford Date: Wed, 26 Feb 2020 15:52:17 +0000 Subject: [PATCH] tests: Make the GuestCommand take a reference to the guest This will be used fill out default parts of the guest command. Signed-off-by: Rob Bradford --- tests/integration.rs | 95 +++++++++++++++++++++++--------------------- 1 file changed, 50 insertions(+), 45 deletions(-) diff --git a/tests/integration.rs b/tests/integration.rs index 8bb2af2bc..f14231201 100644 --- a/tests/integration.rs +++ b/tests/integration.rs @@ -713,19 +713,24 @@ mod tests { } } - struct GuestCommand { + struct GuestCommand<'a> { command: Command, + guest: &'a Guest<'a>, } - impl GuestCommand { - fn new() -> Self { + impl<'a> GuestCommand<'a> { + fn new(guest: &'a Guest) -> Self { Self { command: Command::new("target/release/cloud-hypervisor"), + guest, } } fn spawn(&mut self) -> io::Result { - self.command.stderr(Stdio::piped()).stdout(Stdio::piped()).spawn() + self.command + .stderr(Stdio::piped()) + .stdout(Stdio::piped()) + .spawn() } fn args(&mut self, args: I) -> &mut Self @@ -754,7 +759,7 @@ mod tests { .for_each(|disk_config| { let guest = Guest::new(*disk_config); - let mut child = GuestCommand::new() + let mut child = GuestCommand::new(&guest) .args(&["--cpus", "boot=1"]) .args(&["--memory", "size=512M"]) .args(&["--kernel", guest.fw_path.as_str()]) @@ -804,7 +809,7 @@ mod tests { test_block!(tb, "", { let mut bionic = UbuntuDiskConfig::new(BIONIC_IMAGE_NAME.to_string()); let guest = Guest::new(&mut bionic); - let mut child = GuestCommand::new() + let mut child = GuestCommand::new(&guest) .args(&["--cpus", "boot=2,max=4"]) .args(&["--memory", "size=512M"]) .args(&["--kernel", guest.fw_path.as_str()]) @@ -850,7 +855,7 @@ mod tests { test_block!(tb, "", { let mut clear = ClearDiskConfig::new(); let guest = Guest::new(&mut clear); - let mut child = GuestCommand::new() + let mut child = GuestCommand::new(&guest) .args(&["--cpus", "boot=1"]) .args(&["--memory", "size=5120M"]) .args(&["--kernel", guest.fw_path.as_str()]) @@ -888,7 +893,7 @@ mod tests { test_block!(tb, "", { let mut clear = ClearDiskConfig::new(); let guest = Guest::new(&mut clear); - let mut child = GuestCommand::new() + let mut child = GuestCommand::new(&guest) .args(&["--cpus", "boot=1"]) .args(&["--memory", "size=128G"]) .args(&["--kernel", guest.fw_path.as_str()]) @@ -929,7 +934,7 @@ mod tests { test_block!(tb, "", { let mut clear = ClearDiskConfig::new(); let guest = Guest::new(&mut clear); - let mut child = GuestCommand::new() + let mut child = GuestCommand::new(&guest) .args(&["--cpus", "boot=1"]) .args(&["--memory", "size=512M"]) .args(&["--kernel", guest.fw_path.as_str()]) @@ -982,7 +987,7 @@ mod tests { let mut kernel_path = workload_path; kernel_path.push("vmlinux"); - let mut child = GuestCommand::new() + let mut child = GuestCommand::new(&guest) .args(&["--cpus","boot=1"]) .args(&["--memory", "size=512M"]) .args(&["--kernel", kernel_path.to_str().unwrap()]) @@ -1041,7 +1046,7 @@ mod tests { let mut kernel_path = workload_path; kernel_path.push("bzImage"); - let mut child = GuestCommand::new() + let mut child = GuestCommand::new(&guest) .args(&["--cpus","boot=1"]) .args(&["--memory", "size=512M"]) .args(&["--kernel", kernel_path.to_str().unwrap()]) @@ -1098,7 +1103,7 @@ mod tests { blk_file_path.push("workloads"); blk_file_path.push("blk.img"); - let mut cloud_child = GuestCommand::new() + let mut cloud_child = GuestCommand::new(&guest) .args(&["--cpus", "boot=4"]) .args(&["--memory", "size=512M,file=/dev/shm"]) .args(&["--kernel", guest.fw_path.as_str()]) @@ -1191,7 +1196,7 @@ mod tests { .unwrap(); thread::sleep(std::time::Duration::new(10, 0)); - let mut cloud_child = GuestCommand::new() + let mut cloud_child = GuestCommand::new(&guest) .args(&["--cpus", "boot=4"]) .args(&["--memory", "size=512M,file=/dev/shm"]) .args(&["--kernel", guest.fw_path.as_str()]) @@ -1279,7 +1284,7 @@ mod tests { let mut clear = ClearDiskConfig::new(); let guest = Guest::new(&mut clear); - let mut cloud_child = GuestCommand::new() + let mut cloud_child = GuestCommand::new(&guest) .args(&["--cpus", "boot=4"]) .args(&["--memory", "size=512M,file=/dev/shm"]) .args(&["--kernel", guest.fw_path.as_str()]) @@ -1362,7 +1367,7 @@ mod tests { let (mut daemon_child, vubd_socket_path) = prepare_vubd(&guest.tmp_dir, "blk.img", 2, false, false); - let mut cloud_child = GuestCommand::new() + let mut cloud_child = GuestCommand::new(&guest) .args(&["--cpus", "boot=2"]) .args(&["--memory", "size=512M,file=/dev/shm"]) .args(&["--kernel", guest.fw_path.as_str()]) @@ -1453,7 +1458,7 @@ mod tests { let mut clear = ClearDiskConfig::new(); let guest = Guest::new(&mut clear); - let mut cloud_child = GuestCommand::new() + let mut cloud_child = GuestCommand::new(&guest) .args(&["--cpus", "boot=2"]) .args(&["--memory", "size=512M,file=/dev/shm"]) .args(&["--kernel", guest.fw_path.as_str()]) @@ -1494,7 +1499,7 @@ mod tests { let (mut daemon_child, vubd_socket_path) = prepare_vubd(&guest.tmp_dir, "blk.img", 1, true, false); - let mut cloud_child = GuestCommand::new() + let mut cloud_child = GuestCommand::new(&guest) .args(&["--cpus", "boot=1"]) .args(&["--memory", "size=512M,file=/dev/shm"]) .args(&["--kernel", guest.fw_path.as_str()]) @@ -1568,7 +1573,7 @@ mod tests { let (mut daemon_child, vubd_socket_path) = prepare_vubd(&guest.tmp_dir, "blk.img", 1, false, true); - let mut cloud_child = GuestCommand::new() + let mut cloud_child = GuestCommand::new(&guest) .args(&["--cpus", "boot=1"]) .args(&["--memory", "size=512M,file=/dev/shm"]) .args(&["--kernel", guest.fw_path.as_str()]) @@ -1639,7 +1644,7 @@ mod tests { false, ); - let mut cloud_child = GuestCommand::new() + let mut cloud_child = GuestCommand::new(&guest) .args(&["--cpus", "boot=1"]) .args(&["--memory", "size=512M,file=/dev/shm"]) .args(&["--kernel", guest.fw_path.as_str()]) @@ -1686,7 +1691,7 @@ mod tests { let mut clear = ClearDiskConfig::new(); let guest = Guest::new(&mut clear); - let mut child = GuestCommand::new() + let mut child = GuestCommand::new(&guest) .args(&["--cpus", "boot=1"]) .args(&["--memory", "size=512M"]) .args(&["--kernel", guest.fw_path.as_str()]) @@ -1770,7 +1775,7 @@ mod tests { virtiofsd_cache, ); - let mut child = GuestCommand::new() + let mut child = GuestCommand::new(&guest) .args(&["--cpus", "boot=1"]) .args(&["--memory", "size=512M,file=/dev/shm"]) .args(&["--kernel", kernel_path.to_str().unwrap()]) @@ -1914,7 +1919,7 @@ mod tests { let mut kernel_path = workload_path; kernel_path.push("vmlinux"); - let mut child = GuestCommand::new() + let mut child = GuestCommand::new(&guest) .args(&["--cpus","boot=1"]) .args(&["--memory", "size=512M"]) .args(&["--kernel", kernel_path.to_str().unwrap()]) @@ -1977,7 +1982,7 @@ mod tests { let mut kernel_path = workload_path; kernel_path.push("vmlinux"); - let mut child = GuestCommand::new() + let mut child = GuestCommand::new(&guest) .args(&["--cpus","boot=1"]) .args(&["--memory", "size=512M"]) .args(&["--kernel", kernel_path.to_str().unwrap()]) @@ -2021,7 +2026,7 @@ mod tests { test_block!(tb, "", { let mut clear = ClearDiskConfig::new(); let guest = Guest::new(&mut clear); - let mut child = GuestCommand::new() + let mut child = GuestCommand::new(&guest) .args(&["--cpus", "boot=1"]) .args(&["--memory", "size=512M"]) .args(&["--kernel", guest.fw_path.as_str()]) @@ -2074,7 +2079,7 @@ mod tests { test_block!(tb, "", { let mut clear = ClearDiskConfig::new(); let guest = Guest::new(&mut clear); - let mut child = GuestCommand::new() + let mut child = GuestCommand::new(&guest) .args(&["--cpus", "boot=1"]) .args(&["--memory", "size=512M"]) .args(&["--kernel", guest.fw_path.as_str()]) @@ -2123,7 +2128,7 @@ mod tests { test_block!(tb, "", { let mut clear = ClearDiskConfig::new(); let guest = Guest::new(&mut clear); - let mut child = GuestCommand::new() + let mut child = GuestCommand::new(&guest) .args(&["--cpus", "boot=1"]) .args(&["--memory", "size=512M"]) .args(&["--kernel", guest.fw_path.as_str()]) @@ -2182,7 +2187,7 @@ mod tests { test_block!(tb, "", { let mut clear = ClearDiskConfig::new(); let guest = Guest::new(&mut clear); - let mut child = GuestCommand::new() + let mut child = GuestCommand::new(&guest) .args(&["--cpus", "boot=1"]) .args(&["--memory", "size=512M"]) .args(&["--kernel", guest.fw_path.as_str()]) @@ -2243,7 +2248,7 @@ mod tests { let guest = Guest::new(&mut clear); let serial_path = guest.tmp_dir.path().join("/tmp/serial-output"); - let mut child = GuestCommand::new() + let mut child = GuestCommand::new(&guest) .args(&["--cpus", "boot=1"]) .args(&["--memory", "size=512M"]) .args(&["--kernel", guest.fw_path.as_str()]) @@ -2306,7 +2311,7 @@ mod tests { let mut clear = ClearDiskConfig::new(); let guest = Guest::new(&mut clear); - let mut child = GuestCommand::new() + let mut child = GuestCommand::new(&guest) .args(&["--cpus", "boot=1"]) .args(&["--memory", "size=512M"]) .args(&["--kernel", guest.fw_path.as_str()]) @@ -2364,7 +2369,7 @@ mod tests { let guest = Guest::new(&mut clear); let console_path = guest.tmp_dir.path().join("/tmp/console-output"); - let mut child = GuestCommand::new() + let mut child = GuestCommand::new(&guest) .args(&["--cpus", "boot=1"]) .args(&["--memory", "size=512M"]) .args(&["--kernel", guest.fw_path.as_str()]) @@ -2452,7 +2457,7 @@ mod tests { let (mut daemon_child, virtiofsd_socket_path) = prepare_virtiofsd(&guest.tmp_dir, vfio_path.to_str().unwrap(), "none"); - let mut child = GuestCommand::new() + let mut child = GuestCommand::new(&guest) .args(&["--cpus", "boot=4"]) .args(&["--memory", "size=1G,file=/dev/hugepages"]) .args(&["--kernel", kernel_path.to_str().unwrap()]) @@ -2556,7 +2561,7 @@ mod tests { let mut kernel_path = workload_path; kernel_path.push("vmlinux"); - let mut child = GuestCommand::new() + let mut child = GuestCommand::new(&guest) .args(&["--cpus","boot=1"]) .args(&["--memory", "size=512M"]) .args(&["--kernel", kernel_path.to_str().unwrap()]) @@ -2618,7 +2623,7 @@ mod tests { .for_each(|disk_config| { let guest = Guest::new(*disk_config); - let mut child = GuestCommand::new() + let mut child = GuestCommand::new(&guest) .args(&["--cpus", "boot=1"]) .args(&["--memory", "size=512M"]) .args(&["--kernel", guest.fw_path.as_str()]) @@ -2689,7 +2694,7 @@ mod tests { let mut kernel_path = workload_path; kernel_path.push("bzImage"); - let mut child = GuestCommand::new() + let mut child = GuestCommand::new(&guest) .args(&["--cpus","boot=1"]) .args(&["--memory", "size=512M"]) .args(&["--kernel", kernel_path.to_str().unwrap()]) @@ -2755,7 +2760,7 @@ mod tests { let sock = temp_vsock_path(&guest.tmp_dir); - let mut child = GuestCommand::new() + let mut child = GuestCommand::new(&guest) .args(&["--cpus", "boot=1"]) .args(&["--memory", "size=512M"]) .args(&["--kernel", guest.fw_path.as_str()]) @@ -2831,7 +2836,7 @@ mod tests { let api_socket = temp_api_path(&guest.tmp_dir); - let mut child = GuestCommand::new() + let mut child = GuestCommand::new(&guest) .args(&["--api-socket", &api_socket]) .spawn() .unwrap(); @@ -2890,7 +2895,7 @@ mod tests { let api_socket = temp_api_path(&guest.tmp_dir); - let mut child = GuestCommand::new() + let mut child = GuestCommand::new(&guest) .args(&["--api-socket", &api_socket]) .spawn() .unwrap(); @@ -2984,7 +2989,7 @@ mod tests { let mut kernel_path = workload_path; kernel_path.push("bzImage"); - let mut child = GuestCommand::new() + let mut child = GuestCommand::new(&guest) .args(&["--cpus","boot=1"]) .args(&["--memory", "size=512M"]) .args(&["--kernel", kernel_path.to_str().unwrap()]) @@ -3070,7 +3075,7 @@ mod tests { test_block!(tb, "", { let mut clear = ClearDiskConfig::new(); let guest = Guest::new(&mut clear); - let mut child = GuestCommand::new() + let mut child = GuestCommand::new(&guest) .args(&["--cpus", "boot=1"]) .args(&["--memory", "size=512M"]) .args(&["--kernel", guest.fw_path.as_str()]) @@ -3189,7 +3194,7 @@ mod tests { let guest1 = Guest::new(&mut clear1 as &mut dyn DiskConfig); - let mut child1 = GuestCommand::new() + let mut child1 = GuestCommand::new(&guest1) .args(&["--cpus", "boot=1"]) .args(&["--memory", format!("size=512M,{}", memory_param).as_str()]) .args(&["--kernel", guest1.fw_path.as_str()]) @@ -3220,7 +3225,7 @@ mod tests { let guest2 = Guest::new(&mut clear2 as &mut dyn DiskConfig); - let mut child2 = GuestCommand::new() + let mut child2 = GuestCommand::new(&guest2) .args(&["--cpus", "boot=1"]) .args(&["--memory", format!("size=512M,{}", memory_param).as_str()]) .args(&["--kernel", guest2.fw_path.as_str()]) @@ -3296,7 +3301,7 @@ mod tests { let mut kernel_path = workload_path; kernel_path.push("vmlinux"); - let mut child = GuestCommand::new() + let mut child = GuestCommand::new(&guest) .args(&["--cpus", "boot=2,max=4"]) .args(&["--memory", "size=512M"]) .args(&["--kernel", kernel_path.to_str().unwrap()]) @@ -3402,7 +3407,7 @@ mod tests { let mut kernel_path = workload_path; kernel_path.push("vmlinux"); - let mut child = GuestCommand::new() + let mut child = GuestCommand::new(&guest) .args(&["--cpus", "boot=2,max=4"]) .args(&["--memory", "size=512M,hotplug_size=8192M"]) .args(&["--kernel", kernel_path.to_str().unwrap()]) @@ -3528,7 +3533,7 @@ mod tests { let mut kernel_path = workload_path; kernel_path.push("vmlinux"); - let mut child = GuestCommand::new() + let mut child = GuestCommand::new(&guest) .args(&["--cpus", "boot=2,max=4"]) .args(&["--memory", "size=512M,hotplug_size=8192M"]) .args(&["--kernel", kernel_path.to_str().unwrap()]) @@ -3637,7 +3642,7 @@ mod tests { let guest_memory_size_kb = 512 * 1024; - let mut child = GuestCommand::new() + let mut child = GuestCommand::new(&guest) .args(&["--cpus","boot=1"]) .args(&["--memory", format!("size={}K", guest_memory_size_kb).as_str()]) .args(&["--kernel", kernel_path.to_str().unwrap()])