mirror of
https://github.com/cloud-hypervisor/cloud-hypervisor.git
synced 2026-08-05 02:19:16 +00:00
tests: add basic_cvm_guest macro for CVM tests
Introduce a basic_cvm_guest! macro in integration_cvm.rs to reduce boilerplate when creating confidential VM guest instances. This replaces repetitive UbuntuDiskConfig and GuestFactory::new_confidential_guest_factory() calls across multiple CVM test functions. Signed-off-by: Muminul Islam <muislam@microsoft.com>
This commit is contained in:
committed by
Rob Bradford
parent
c75504c833
commit
7802470906
@@ -18,32 +18,30 @@ mod common_cvm {
|
||||
use test_infra::*;
|
||||
|
||||
use super::*;
|
||||
macro_rules! basic_cvm_guest {
|
||||
($image_name:expr) => {{
|
||||
let disk_config = UbuntuDiskConfig::new($image_name.to_string());
|
||||
GuestFactory::new_confidential_guest_factory().create_guest(Box::new(disk_config))
|
||||
}};
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_focal_simple_launch() {
|
||||
let disk_config = UbuntuDiskConfig::new(FOCAL_IMAGE_NAME.to_string());
|
||||
let guest =
|
||||
GuestFactory::new_confidential_guest_factory().create_guest(Box::new(disk_config));
|
||||
let guest = basic_cvm_guest!(FOCAL_IMAGE_NAME);
|
||||
|
||||
_test_simple_launch(&guest);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_api_http_create_boot() {
|
||||
let disk_config = UbuntuDiskConfig::new(JAMMY_IMAGE_NAME.to_string());
|
||||
let guest = GuestFactory::new_confidential_guest_factory()
|
||||
.create_guest(Box::new(disk_config))
|
||||
.with_cpu(4);
|
||||
let guest = basic_cvm_guest!(JAMMY_IMAGE_NAME).with_cpu(4);
|
||||
let target_api = TargetApi::new_http_api(&guest.tmp_dir);
|
||||
_test_api_create_boot(&target_api, &guest);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_api_http_shutdown() {
|
||||
let disk_config = UbuntuDiskConfig::new(JAMMY_IMAGE_NAME.to_string());
|
||||
let guest = GuestFactory::new_confidential_guest_factory()
|
||||
.create_guest(Box::new(disk_config))
|
||||
.with_cpu(4);
|
||||
let guest = basic_cvm_guest!(JAMMY_IMAGE_NAME).with_cpu(4);
|
||||
|
||||
let target_api = TargetApi::new_http_api(&guest.tmp_dir);
|
||||
_test_api_shutdown(&target_api, &guest);
|
||||
@@ -51,70 +49,50 @@ mod common_cvm {
|
||||
|
||||
#[test]
|
||||
fn test_api_http_delete() {
|
||||
let disk_config = UbuntuDiskConfig::new(JAMMY_IMAGE_NAME.to_string());
|
||||
let guest = GuestFactory::new_confidential_guest_factory()
|
||||
.create_guest(Box::new(disk_config))
|
||||
.with_cpu(4);
|
||||
|
||||
let guest = basic_cvm_guest!(JAMMY_IMAGE_NAME);
|
||||
let target_api = TargetApi::new_http_api(&guest.tmp_dir);
|
||||
_test_api_delete(&target_api, &guest);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_power_button() {
|
||||
let disk_config = UbuntuDiskConfig::new(JAMMY_IMAGE_NAME.to_string());
|
||||
let guest =
|
||||
GuestFactory::new_confidential_guest_factory().create_guest(Box::new(disk_config));
|
||||
let guest = basic_cvm_guest!(JAMMY_IMAGE_NAME);
|
||||
_test_power_button(&guest);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_virtio_vsock() {
|
||||
let disk_config = UbuntuDiskConfig::new(JAMMY_IMAGE_NAME.to_string());
|
||||
let guest =
|
||||
GuestFactory::new_confidential_guest_factory().create_guest(Box::new(disk_config));
|
||||
let guest = basic_cvm_guest!(JAMMY_IMAGE_NAME);
|
||||
_test_virtio_vsock(&guest, false);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_multi_cpu() {
|
||||
let disk_config = UbuntuDiskConfig::new(JAMMY_IMAGE_NAME.to_string());
|
||||
let guest =
|
||||
GuestFactory::new_confidential_guest_factory().create_guest(Box::new(disk_config));
|
||||
let guest = basic_cvm_guest!(JAMMY_IMAGE_NAME);
|
||||
_test_multi_cpu(&guest);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_cpu_affinity() {
|
||||
let disk_config = UbuntuDiskConfig::new(JAMMY_IMAGE_NAME.to_string());
|
||||
let guest = GuestFactory::new_confidential_guest_factory()
|
||||
.create_guest(Box::new(disk_config))
|
||||
.with_cpu(2);
|
||||
let guest = basic_cvm_guest!(JAMMY_IMAGE_NAME).with_cpu(2);
|
||||
_test_cpu_affinity(&guest);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_virtio_queue_affinity() {
|
||||
let disk_config = UbuntuDiskConfig::new(JAMMY_IMAGE_NAME.to_string());
|
||||
let guest = GuestFactory::new_confidential_guest_factory()
|
||||
.create_guest(Box::new(disk_config))
|
||||
.with_cpu(4);
|
||||
let guest = basic_cvm_guest!(JAMMY_IMAGE_NAME).with_cpu(4);
|
||||
_test_virtio_queue_affinity(&guest);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_pci_msi() {
|
||||
let disk_config = UbuntuDiskConfig::new(JAMMY_IMAGE_NAME.to_string());
|
||||
let guest =
|
||||
GuestFactory::new_confidential_guest_factory().create_guest(Box::new(disk_config));
|
||||
let guest = basic_cvm_guest!(JAMMY_IMAGE_NAME);
|
||||
_test_pci_msi(&guest);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_virtio_net_ctrl_queue() {
|
||||
let disk_config = UbuntuDiskConfig::new(JAMMY_IMAGE_NAME.to_string());
|
||||
let guest =
|
||||
GuestFactory::new_confidential_guest_factory().create_guest(Box::new(disk_config));
|
||||
let guest = basic_cvm_guest!(JAMMY_IMAGE_NAME);
|
||||
_test_virtio_net_ctrl_queue(&guest);
|
||||
}
|
||||
|
||||
@@ -124,17 +102,13 @@ mod common_cvm {
|
||||
// supported by Linux
|
||||
// IGVM file used by Sev-Snp Guest now support up to 8 segments, so we can use 8 segments for testing.
|
||||
let num_pci_segments: u16 = 8;
|
||||
let disk_config = UbuntuDiskConfig::new(JAMMY_IMAGE_NAME.to_string());
|
||||
let guest =
|
||||
GuestFactory::new_confidential_guest_factory().create_guest(Box::new(disk_config));
|
||||
let guest = basic_cvm_guest!(JAMMY_IMAGE_NAME);
|
||||
_test_pci_multiple_segments(&guest, num_pci_segments, 5);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_direct_kernel_boot() {
|
||||
let disk_config = UbuntuDiskConfig::new(JAMMY_IMAGE_NAME.to_string());
|
||||
let guest =
|
||||
GuestFactory::new_confidential_guest_factory().create_guest(Box::new(disk_config));
|
||||
let guest = basic_cvm_guest!(JAMMY_IMAGE_NAME);
|
||||
_test_direct_kernel_boot(&guest);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user