kvm_test_harness.h 891 B

123456789101112131415161718192021222324252627282930313233343536
  1. /* SPDX-License-Identifier: GPL-2.0-only */
  2. /*
  3. * Macros for defining a KVM test
  4. *
  5. * Copyright (C) 2022, Google LLC.
  6. */
  7. #ifndef SELFTEST_KVM_TEST_HARNESS_H
  8. #define SELFTEST_KVM_TEST_HARNESS_H
  9. #include "kselftest_harness.h"
  10. #define KVM_ONE_VCPU_TEST_SUITE(name) \
  11. FIXTURE(name) { \
  12. struct kvm_vcpu *vcpu; \
  13. }; \
  14. \
  15. FIXTURE_SETUP(name) { \
  16. (void)vm_create_with_one_vcpu(&self->vcpu, NULL); \
  17. } \
  18. \
  19. FIXTURE_TEARDOWN(name) { \
  20. kvm_vm_free(self->vcpu->vm); \
  21. }
  22. #define KVM_ONE_VCPU_TEST(suite, test, guestcode) \
  23. static void __suite##_##test(struct kvm_vcpu *vcpu); \
  24. \
  25. TEST_F(suite, test) \
  26. { \
  27. vcpu_arch_set_entry_point(self->vcpu, guestcode); \
  28. __suite##_##test(self->vcpu); \
  29. } \
  30. static void __suite##_##test(struct kvm_vcpu *vcpu)
  31. #endif /* SELFTEST_KVM_TEST_HARNESS_H */