#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <fcntl.h>
#include <libgen.h>
#include <sys/stat.h>
#include <errno.h>
#include <err.h>
#include <assert.h>
#include <sys/vmm.h>
#include <sys/vmm_dev.h>
#include <vmmapi.h>
#include "common.h"
int
main(int argc, char *argv[])
{
const char *suite_name = basename(argv[0]);
struct vmctx *ctx;
ctx = create_test_vm(suite_name);
if (ctx == NULL) {
errx(EXIT_FAILURE, "could open test VM");
}
assert(check_instance_usable(suite_name));
vm_close(ctx);
if (!check_instance_usable(suite_name)) {
err(EXIT_FAILURE, "instance missing after vm_close()");
}
if (destroy_instance(suite_name) != 0) {
errx(EXIT_FAILURE, "ioctl(VMM_DESTROY_VM) failed");
}
if (check_instance_usable(suite_name)) {
err(EXIT_FAILURE, "instance still accessible after destroy");
}
(void) printf("%s\tPASS\n", suite_name);
return (EXIT_SUCCESS);
}