1 // Copyright 2022 The ChromiumOS Authors
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 // TODO(b/210705746): See if we can bring in the changes compiled out from go/playcl/50499
6 use crate::simple_vm_test;
7
8 #[test]
simple_kvm_test()9 fn simple_kvm_test() {
10 use devices::KvmKernelIrqChip;
11 use hypervisor::kvm::*;
12 simple_vm_test::<_, _, KvmVcpu, _, _, _>(
13 |guest_mem| {
14 let kvm = Kvm::new().expect("failed to create kvm");
15 let vm =
16 KvmVm::new(&kvm, guest_mem, Default::default()).expect("failed to create kvm vm");
17 (kvm, vm)
18 },
19 |vm, vcpu_count, _| {
20 KvmKernelIrqChip::new(vm, vcpu_count).expect("failed to create KvmKernelIrqChip")
21 },
22 );
23 }
24
25 #[test]
simple_kvm_kernel_irqchip_test()26 fn simple_kvm_kernel_irqchip_test() {
27 use devices::KvmKernelIrqChip;
28 use hypervisor::kvm::*;
29 simple_vm_test::<_, _, KvmVcpu, _, _, _>(
30 |guest_mem| {
31 let kvm = Kvm::new().expect("failed to create kvm");
32 let vm =
33 KvmVm::new(&kvm, guest_mem, Default::default()).expect("failed to create kvm vm");
34 (kvm, vm)
35 },
36 |vm, vcpu_count, _| {
37 KvmKernelIrqChip::new(vm, vcpu_count).expect("failed to create KvmKernelIrqChip")
38 },
39 );
40 }
41
42 #[test]
simple_kvm_split_irqchip_test()43 fn simple_kvm_split_irqchip_test() {
44 use devices::KvmSplitIrqChip;
45 use hypervisor::kvm::*;
46 simple_vm_test::<_, _, KvmVcpu, _, _, _>(
47 |guest_mem| {
48 let kvm = Kvm::new().expect("failed to create kvm");
49 let vm =
50 KvmVm::new(&kvm, guest_mem, Default::default()).expect("failed to create kvm vm");
51 (kvm, vm)
52 },
53 |vm, vcpu_count, device_tube| {
54 KvmSplitIrqChip::new(vm, vcpu_count, device_tube, None)
55 .expect("failed to create KvmSplitIrqChip")
56 },
57 );
58 }
59