diff options
| author | Paolo Bonzini <[email protected]> | 2024-03-11 14:20:35 +0000 |
|---|---|---|
| committer | Paolo Bonzini <[email protected]> | 2024-03-11 14:20:35 +0000 |
| commit | 4d4c02852abf01059e45a188f16f13f7ec78371c (patch) | |
| tree | 513e0502b7323dd790ab23e44d29135c5b267817 /tools/testing/selftests/kvm/include/kvm_test_harness.h | |
| parent | Merge tag 'kvm-riscv-6.9-1' of https://github.com/kvm-riscv/linux into HEAD (diff) | |
| parent | KVM: selftests: Explicitly close guest_memfd files in some gmem tests (diff) | |
| download | kernel-4d4c02852abf01059e45a188f16f13f7ec78371c.tar.gz kernel-4d4c02852abf01059e45a188f16f13f7ec78371c.zip | |
Merge tag 'kvm-x86-selftests-6.9' of https://github.com/kvm-x86/linux into HEAD
KVM selftests changes for 6.9:
- Add macros to reduce the amount of boilerplate code needed to write "simple"
selftests, and to utilize selftest TAP infrastructure, which is especially
beneficial for KVM selftests with multiple testcases.
- Add basic smoke tests for SEV and SEV-ES, along with a pile of library
support for handling private/encrypted/protected memory.
- Fix benign bugs where tests neglect to close() guest_memfd files.
Diffstat (limited to 'tools/testing/selftests/kvm/include/kvm_test_harness.h')
| -rw-r--r-- | tools/testing/selftests/kvm/include/kvm_test_harness.h | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/tools/testing/selftests/kvm/include/kvm_test_harness.h b/tools/testing/selftests/kvm/include/kvm_test_harness.h new file mode 100644 index 000000000000..8f7c6858e8e2 --- /dev/null +++ b/tools/testing/selftests/kvm/include/kvm_test_harness.h @@ -0,0 +1,36 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ +/* + * Macros for defining a KVM test + * + * Copyright (C) 2022, Google LLC. + */ + +#ifndef SELFTEST_KVM_TEST_HARNESS_H +#define SELFTEST_KVM_TEST_HARNESS_H + +#include "kselftest_harness.h" + +#define KVM_ONE_VCPU_TEST_SUITE(name) \ + FIXTURE(name) { \ + struct kvm_vcpu *vcpu; \ + }; \ + \ + FIXTURE_SETUP(name) { \ + (void)vm_create_with_one_vcpu(&self->vcpu, NULL); \ + } \ + \ + FIXTURE_TEARDOWN(name) { \ + kvm_vm_free(self->vcpu->vm); \ + } + +#define KVM_ONE_VCPU_TEST(suite, test, guestcode) \ +static void __suite##_##test(struct kvm_vcpu *vcpu); \ + \ +TEST_F(suite, test) \ +{ \ + vcpu_arch_set_entry_point(self->vcpu, guestcode); \ + __suite##_##test(self->vcpu); \ +} \ +static void __suite##_##test(struct kvm_vcpu *vcpu) + +#endif /* SELFTEST_KVM_TEST_HARNESS_H */ |
