()
| 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() { |
nothing calls this directly
no test coverage detected