MCPcopy Create free account
hub / github.com/cloud-hypervisor/cloud-hypervisor / test_setup_msrs

Function test_setup_msrs

vmm/src/cpu.rs:3344–3371  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

3342
3343 #[test]
3344 fn test_setup_msrs() {
3345 use hypervisor::arch::x86::{MsrEntry, msr_index};
3346
3347 let hv = hypervisor::new().unwrap();
3348 let vm = hv
3349 .create_vm(HypervisorVmConfig::default())
3350 .expect("new VM fd creation failed");
3351 let vcpu = vm.create_vcpu(0, None).unwrap();
3352 setup_msrs(vcpu.as_ref()).unwrap();
3353
3354 // This test will check against the last MSR entry configured (the tenth one).
3355 // See create_msr_entries for details.
3356 let mut msrs = vec![MsrEntry {
3357 index: msr_index::MSR_IA32_MISC_ENABLE,
3358 ..Default::default()
3359 }];
3360
3361 // get_msrs returns the number of msrs that it succeed in reading. We only want to read 1
3362 // in this test case scenario.
3363 let read_msrs = vcpu.get_msrs(&mut msrs).unwrap();
3364 assert_eq!(read_msrs, 1);
3365
3366 // Official entries that were setup when we did setup_msrs. We need to assert that the
3367 // tenth one (i.e the one with index msr_index::MSR_IA32_MISC_ENABLE has the data we
3368 // expect.
3369 let entry_vec = vcpu.boot_msr_entries();
3370 assert_eq!(entry_vec[9], msrs.as_slice()[0]);
3371 }
3372
3373 #[test]
3374 fn test_setup_regs_for_pvh() {

Callers

nothing calls this directly

Calls 6

newFunction · 0.85
setup_msrsFunction · 0.85
create_vmMethod · 0.45
create_vcpuMethod · 0.45
get_msrsMethod · 0.45
boot_msr_entriesMethod · 0.45

Tested by

no test coverage detected