From 24922ce1e31bdbac3b7201d81a0c35b2d9a1dd1d Mon Sep 17 00:00:00 2001 From: Rob Bradford Date: Mon, 22 Feb 2021 15:20:44 +0000 Subject: [PATCH] tests: Move integration tests to vmm_sys_util::tempdir::TempDir This removes the dependency on "tempdir" which in turn depends on the large rand dependency chain. Signed-off-by: Rob Bradford --- Cargo.lock | 71 +++----------------------------------------- Cargo.toml | 1 - tests/integration.rs | 36 +++++++++++----------- 3 files changed, 22 insertions(+), 86 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 55a36f3e2..4cbac8615 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -68,7 +68,7 @@ dependencies = [ "libc", "linux-loader", "log 0.4.14", - "rand 0.8.3", + "rand", "serde", "serde_derive", "serde_json", @@ -232,7 +232,6 @@ dependencies = [ "serde_json", "signal-hook", "ssh2", - "tempdir", "thiserror", "vm-memory", "vmm", @@ -382,12 +381,6 @@ dependencies = [ "percent-encoding", ] -[[package]] -name = "fuchsia-cprng" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba" - [[package]] name = "generator" version = "0.6.24" @@ -919,19 +912,6 @@ dependencies = [ "proc-macro2", ] -[[package]] -name = "rand" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "552840b97013b1a26992c11eac34bdd778e464601a4c2054b5f0bff7c6761293" -dependencies = [ - "fuchsia-cprng", - "libc", - "rand_core 0.3.1", - "rdrand", - "winapi 0.3.9", -] - [[package]] name = "rand" version = "0.8.3" @@ -940,7 +920,7 @@ checksum = "0ef9e7e66b4468674bfcb0c81af8b7fa0bb154fa9f28eb840da5c447baeb8d7e" dependencies = [ "libc", "rand_chacha", - "rand_core 0.6.0", + "rand_core", "rand_hc", ] @@ -951,24 +931,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e12735cf05c9e10bf21534da50a147b924d555dc7a547c42e6bb2d5b6017ae0d" dependencies = [ "ppv-lite86", - "rand_core 0.6.0", + "rand_core", ] -[[package]] -name = "rand_core" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a6fdeb83b075e8266dcc8762c22776f6877a63111121f5f8c7411e5be7eed4b" -dependencies = [ - "rand_core 0.4.2", -] - -[[package]] -name = "rand_core" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c33a3c44ca05fa6f1807d8e6743f3824e8509beca625669633be0acbdf509dc" - [[package]] name = "rand_core" version = "0.6.0" @@ -984,16 +949,7 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3190ef7066a446f2e7f42e239d161e905420ccab01eb967c9eb27d21b2322a73" dependencies = [ - "rand_core 0.6.0", -] - -[[package]] -name = "rdrand" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2" -dependencies = [ - "rand_core 0.3.1", + "rand_core", ] [[package]] @@ -1042,15 +998,6 @@ dependencies = [ "syn", ] -[[package]] -name = "remove_dir_all" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7" -dependencies = [ - "winapi 0.3.9", -] - [[package]] name = "rust-argon2" version = "0.8.3" @@ -1280,16 +1227,6 @@ dependencies = [ "unicode-xid 0.0.3", ] -[[package]] -name = "tempdir" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15f2b5fb00ccdf689e0149d1b1b3c03fead81c2b37735d812fa8bddbbf41b6d8" -dependencies = [ - "rand 0.4.6", - "remove_dir_all", -] - [[package]] name = "term" version = "0.4.6" diff --git a/Cargo.toml b/Cargo.toml index 788e3c07e..5e00e93ee 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -42,7 +42,6 @@ vhost_rs = { git = "https://github.com/cloud-hypervisor/vhost", branch = "ch", p ssh2 = "0.9.1" dirs = "3.0.1" credibility = "0.1.3" -tempdir = "0.3.7" lazy_static= "1.4.0" serde_json = "1.0.62" net_util = { path = "net_util" } diff --git a/tests/integration.rs b/tests/integration.rs index 07a44246e..b0b7ca382 100644 --- a/tests/integration.rs +++ b/tests/integration.rs @@ -30,8 +30,7 @@ mod tests { use std::sync::mpsc::Receiver; use std::sync::{mpsc, Mutex}; use std::thread; - use tempdir::TempDir; - use vmm_sys_util::tempfile::TempFile; + use vmm_sys_util::{tempdir::TempDir, tempfile::TempFile}; #[cfg_attr(target_arch = "aarch64", allow(unused_imports))] use wait_timeout::ChildExt; @@ -251,9 +250,9 @@ mod tests { impl DiskConfig for UbuntuDiskConfig { fn prepare_cloudinit(&self, tmp_dir: &TempDir, network: &GuestNetworkConfig) -> String { let cloudinit_file_path = - String::from(tmp_dir.path().join("cloudinit").to_str().unwrap()); + String::from(tmp_dir.as_path().join("cloudinit").to_str().unwrap()); - let cloud_init_directory = tmp_dir.path().join("cloud-init").join("ubuntu"); + let cloud_init_directory = tmp_dir.as_path().join("cloud-init").join("ubuntu"); fs::create_dir_all(&cloud_init_directory) .expect("Expect creating cloud-init directory to succeed"); @@ -344,7 +343,7 @@ mod tests { let mut osdisk_base_path = workload_path; osdisk_base_path.push(&self.image_name); - let osdisk_path = String::from(tmp_dir.path().join("osdisk.img").to_str().unwrap()); + let osdisk_path = String::from(tmp_dir.as_path().join("osdisk.img").to_str().unwrap()); let cloudinit_path = self.prepare_cloudinit(tmp_dir, network); rate_limited_copy(osdisk_base_path, &osdisk_path) @@ -380,7 +379,7 @@ mod tests { >> 9; let snapshot_cow_path = - String::from(tmp_dir.path().join("snapshot_cow").to_str().unwrap()); + String::from(tmp_dir.as_path().join("snapshot_cow").to_str().unwrap()); // Create and truncate CoW file for device mapper let cow_file_size: u64 = 1 << 30; @@ -403,7 +402,7 @@ mod tests { .trim() .to_string(); - let random_extension = tmp_dir.path().file_name().unwrap(); + let random_extension = tmp_dir.as_path().file_name().unwrap(); let windows_snapshot_cow = format!( "windows-snapshot-cow-{}", random_extension.to_str().unwrap() @@ -477,7 +476,7 @@ mod tests { let virtiofsd_path = String::from(virtiofsd_path.to_str().unwrap()); let virtiofsd_socket_path = - String::from(tmp_dir.path().join("virtiofs.sock").to_str().unwrap()); + String::from(tmp_dir.as_path().join("virtiofs.sock").to_str().unwrap()); // Start the daemon let child = Command::new(virtiofsd_path.as_str()) @@ -505,7 +504,7 @@ mod tests { let virtiofsd_path = String::from(virtiofsd_path.to_str().unwrap()); let virtiofsd_socket_path = - String::from(tmp_dir.path().join("virtiofs.sock").to_str().unwrap()); + String::from(tmp_dir.as_path().join("virtiofs.sock").to_str().unwrap()); // Start the daemon let child = Command::new(virtiofsd_path.as_str()) @@ -533,7 +532,7 @@ mod tests { blk_file_path.push(blk_img); let blk_file_path = String::from(blk_file_path.to_str().unwrap()); - let vubd_socket_path = String::from(tmp_dir.path().join("vub.sock").to_str().unwrap()); + let vubd_socket_path = String::from(tmp_dir.as_path().join("vub.sock").to_str().unwrap()); // Start the daemon let child = Command::new(clh_command("vhost_user_block")) @@ -554,13 +553,13 @@ mod tests { } fn temp_vsock_path(tmp_dir: &TempDir) -> String { - String::from(tmp_dir.path().join("vsock").to_str().unwrap()) + String::from(tmp_dir.as_path().join("vsock").to_str().unwrap()) } fn temp_api_path(tmp_dir: &TempDir) -> String { String::from( tmp_dir - .path() + .as_path() .join("cloud-hypervisor.sock") .to_str() .unwrap(), @@ -569,7 +568,7 @@ mod tests { // Creates the directory and returns the path. fn temp_snapshot_dir_path(tmp_dir: &TempDir) -> String { - let snapshot_dir = String::from(tmp_dir.path().join("snapshot").to_str().unwrap()); + let snapshot_dir = String::from(tmp_dir.as_path().join("snapshot").to_str().unwrap()); std::fs::create_dir(&snapshot_dir).unwrap(); snapshot_dir } @@ -596,7 +595,8 @@ mod tests { tap: Option<&str>, num_queues: usize, ) -> (std::process::Child, String) { - let vunet_socket_path = String::from(tmp_dir.path().join("vunet.sock").to_str().unwrap()); + let vunet_socket_path = + String::from(tmp_dir.as_path().join("vunet.sock").to_str().unwrap()); // Start the daemon let net_params = if let Some(tap_str) = tap { @@ -807,7 +807,7 @@ mod tests { impl<'a> Guest<'a> { fn new_from_ip_range(disk_config: &'a mut dyn DiskConfig, class: &str, id: u8) -> Self { - let tmp_dir = TempDir::new("ch").unwrap(); + let tmp_dir = TempDir::new_with_prefix("/tmp/ch").unwrap(); let mut workload_path = dirs::home_dir().unwrap(); workload_path.push("workloads"); @@ -3712,7 +3712,7 @@ mod tests { let mut focal = UbuntuDiskConfig::new(FOCAL_IMAGE_NAME.to_string()); let guest = Guest::new(&mut focal); - let serial_path = guest.tmp_dir.path().join("/tmp/serial-output"); + let serial_path = guest.tmp_dir.as_path().join("/tmp/serial-output"); let mut child = GuestCommand::new(&guest) .args(&["--cpus", "boot=1"]) .args(&["--memory", "size=512M"]) @@ -3909,7 +3909,7 @@ mod tests { let mut focal = UbuntuDiskConfig::new(FOCAL_IMAGE_NAME.to_string()); let guest = Guest::new(&mut focal); - let console_path = guest.tmp_dir.path().join("/tmp/console-output"); + let console_path = guest.tmp_dir.as_path().join("/tmp/console-output"); let mut child = GuestCommand::new(&guest) .args(&["--cpus", "boot=1"]) .args(&["--memory", "size=512M"]) @@ -6161,7 +6161,7 @@ mod tests { let mut windows = WindowsDiskConfig::new(WINDOWS_IMAGE_NAME.to_string()); let guest = Guest::new(&mut windows); - let tmp_dir = TempDir::new("ch").unwrap(); + let tmp_dir = TempDir::new_with_prefix("/tmp/ch").unwrap(); let mut workload_path = dirs::home_dir().unwrap(); workload_path.push("workloads");