0001
0002
0003
0004
0005
0006
0007
0008
0009
0010 #include "kvm_util.h"
0011
0012 #define MAX_VCPU_ID 2
0013
0014 int main(int argc, char *argv[])
0015 {
0016 struct kvm_vm *vm;
0017 int ret;
0018
0019 vm = vm_create_barebones();
0020
0021
0022 ret = vm_check_cap(vm, KVM_CAP_MAX_VCPU_ID);
0023
0024
0025 ret = __vm_enable_cap(vm, KVM_CAP_MAX_VCPU_ID, ret + 1);
0026 TEST_ASSERT(ret < 0,
0027 "Setting KVM_CAP_MAX_VCPU_ID beyond KVM cap should fail");
0028
0029
0030 vm_enable_cap(vm, KVM_CAP_MAX_VCPU_ID, MAX_VCPU_ID);
0031
0032
0033
0034 ret = __vm_enable_cap(vm, KVM_CAP_MAX_VCPU_ID, MAX_VCPU_ID + 1);
0035 TEST_ASSERT(ret < 0,
0036 "Setting KVM_CAP_MAX_VCPU_ID multiple times should fail");
0037
0038
0039 ret = __vm_ioctl(vm, KVM_CREATE_VCPU, (void *)MAX_VCPU_ID);
0040 TEST_ASSERT(ret < 0, "Creating vCPU with ID > MAX_VCPU_ID should fail");
0041
0042 kvm_vm_free(vm);
0043 return 0;
0044 }