// Copyright 2017 The Chromium OS Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. use libc::{c_char, ioctl, open, O_RDWR}; use kvm_sys::*; const KVM_PATH: &'static str = "/dev/kvm\0"; #[test] fn get_version() { let sys_fd = unsafe { open(KVM_PATH.as_ptr() as *const c_char, O_RDWR) }; assert!(sys_fd >= 0); let ret = unsafe { ioctl(sys_fd, KVM_GET_API_VERSION(), 0) }; assert_eq!(ret as u32, KVM_API_VERSION); } #[test] fn create_vm_fd() { let sys_fd = unsafe { open(KVM_PATH.as_ptr() as *const c_char, O_RDWR) }; assert!(sys_fd >= 0); let vm_fd = unsafe { ioctl(sys_fd, KVM_CREATE_VM(), 0) }; assert!(vm_fd >= 0); } #[test] fn check_vm_extension() { let sys_fd = unsafe { open(KVM_PATH.as_ptr() as *const c_char, O_RDWR) }; assert!(sys_fd >= 0); let has_user_memory = unsafe { ioctl(sys_fd, KVM_CHECK_EXTENSION(), KVM_CAP_USER_MEMORY) }; assert_eq!(has_user_memory, 1); }