crosvm/x86_64/tests/integration/sys/unix.rs
Dennis Kempin f7016c860c x86_64: Extract integration tests
These tests require access to kvm and are not suitable for a unit test.
The tests are unmodified and only some visibility changes were made
to allow them to become integration tests.

BUG=b:244623785
TEST=presubmit

Change-Id: I916360f14dba204caca846957bebccf77d451631
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4004344
Auto-Submit: Dennis Kempin <denniskempin@google.com>
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
Commit-Queue: Daniel Verkamp <dverkamp@chromium.org>
2022-11-03 22:47:21 +00:00

58 lines
1.9 KiB
Rust

// Copyright 2022 The ChromiumOS Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// TODO(b/210705746): See if we can bring in the changes compiled out from go/playcl/50499
use crate::simple_vm_test;
#[test]
fn simple_kvm_test() {
use devices::KvmKernelIrqChip;
use hypervisor::kvm::*;
simple_vm_test::<_, _, KvmVcpu, _, _, _>(
|guest_mem| {
let kvm = Kvm::new().expect("failed to create kvm");
let vm =
KvmVm::new(&kvm, guest_mem, Default::default()).expect("failed to create kvm vm");
(kvm, vm)
},
|vm, vcpu_count, _| {
KvmKernelIrqChip::new(vm, vcpu_count).expect("failed to create KvmKernelIrqChip")
},
);
}
#[test]
fn simple_kvm_kernel_irqchip_test() {
use devices::KvmKernelIrqChip;
use hypervisor::kvm::*;
simple_vm_test::<_, _, KvmVcpu, _, _, _>(
|guest_mem| {
let kvm = Kvm::new().expect("failed to create kvm");
let vm =
KvmVm::new(&kvm, guest_mem, Default::default()).expect("failed to create kvm vm");
(kvm, vm)
},
|vm, vcpu_count, _| {
KvmKernelIrqChip::new(vm, vcpu_count).expect("failed to create KvmKernelIrqChip")
},
);
}
#[test]
fn simple_kvm_split_irqchip_test() {
use devices::KvmSplitIrqChip;
use hypervisor::kvm::*;
simple_vm_test::<_, _, KvmVcpu, _, _, _>(
|guest_mem| {
let kvm = Kvm::new().expect("failed to create kvm");
let vm =
KvmVm::new(&kvm, guest_mem, Default::default()).expect("failed to create kvm vm");
(kvm, vm)
},
|vm, vcpu_count, device_tube| {
KvmSplitIrqChip::new(vm, vcpu_count, device_tube, None)
.expect("failed to create KvmSplitIrqChip")
},
);
}