Skip to content

Commit 167b1b0

Browse files
committed
test: Use ApiController for create snap in integration_test.rs
By using the ApiController here, we exercise the last large uncovered function in RuntimeApiController (create_snapshot). Signed-off-by: Patrick Roy <[email protected]>
1 parent 3208653 commit 167b1b0

File tree

1 file changed

+16
-11
lines changed

1 file changed

+16
-11
lines changed

src/vmm/tests/integration_tests.rs

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ use std::time::Duration;
88
use utils::tempfile::TempFile;
99
use vmm::builder::build_and_boot_microvm;
1010
use vmm::devices::virtio::block::CacheType;
11-
use vmm::persist::{self, snapshot_state_sanity_check, MicrovmState, MicrovmStateError, VmInfo};
11+
use vmm::persist::{snapshot_state_sanity_check, MicrovmState, MicrovmStateError, VmInfo};
1212
use vmm::resources::VmResources;
1313
use vmm::rpc_interface::{
1414
LoadSnapshotError, PrebootApiController, RuntimeApiController, VmmAction, VmmActionError,
@@ -23,7 +23,7 @@ use vmm::vmm_config::balloon::BalloonDeviceConfig;
2323
use vmm::vmm_config::boot_source::BootSourceConfig;
2424
use vmm::vmm_config::drive::BlockDeviceConfig;
2525
use vmm::vmm_config::instance_info::{InstanceInfo, VmState};
26-
use vmm::vmm_config::machine_config::{MachineConfig, MachineConfigUpdate};
26+
use vmm::vmm_config::machine_config::{MachineConfig, MachineConfigUpdate, VmConfig};
2727
use vmm::vmm_config::net::NetworkInterfaceConfig;
2828
use vmm::vmm_config::snapshot::{
2929
CreateSnapshotParams, LoadSnapshotParams, MemBackendConfig, MemBackendType, SnapshotType,
@@ -187,12 +187,22 @@ fn verify_create_snapshot(is_diff: bool) -> (TempFile, TempFile) {
187187
let memory_file = TempFile::new().unwrap();
188188

189189
let (vmm, _) = create_vmm(Some(NOISY_KERNEL_IMAGE), is_diff, true);
190+
let resources = VmResources {
191+
vm_config: VmConfig {
192+
mem_size_mib: 1,
193+
track_dirty_pages: is_diff,
194+
..Default::default()
195+
},
196+
..Default::default()
197+
};
198+
let vm_info = VmInfo::from(&resources);
199+
let mut controller = RuntimeApiController::new(resources, vmm.clone());
190200

191201
// Be sure that the microVM is running.
192202
thread::sleep(Duration::from_millis(200));
193203

194204
// Pause microVM.
195-
vmm.lock().unwrap().pause_vm().unwrap();
205+
controller.handle_request(VmmAction::Pause).unwrap();
196206

197207
// Create snapshot.
198208
let snapshot_type = match is_diff {
@@ -204,15 +214,10 @@ fn verify_create_snapshot(is_diff: bool) -> (TempFile, TempFile) {
204214
snapshot_path: snapshot_file.as_path().to_path_buf(),
205215
mem_file_path: memory_file.as_path().to_path_buf(),
206216
};
207-
let vm_info = VmInfo {
208-
mem_size_mib: 1u64,
209-
..Default::default()
210-
};
211217

212-
{
213-
let mut locked_vmm = vmm.lock().unwrap();
214-
persist::create_snapshot(&mut locked_vmm, &vm_info, &snapshot_params).unwrap();
215-
}
218+
controller
219+
.handle_request(VmmAction::CreateSnapshot(snapshot_params))
220+
.unwrap();
216221

217222
vmm.lock().unwrap().stop(FcExitCode::Ok);
218223

0 commit comments

Comments
 (0)