/* SPDX-License-Identifier: BSD-3-Clause */ /* Copyright (c) 2026 Open-IOV contributors */ /* * Test for host vGPU initialization */ #include #include #include #include #include #include #include int main(int argc, char *argv[]) { int ret = 0; enum SupportedGpus selected_gpu = Nvidia; const struct ManagerAPI *api = MANAGER_APIS[selected_gpu]; struct NvManager *mgr = NULL; printf("Testing host vGPU initialization...\n"); mgr = calloc(1, sizeof(struct NvManager)); if (!mgr) { printf("Failed to allocate manager\n"); return 1; } mgr->ignore_version_check = 1; mgr->create_signature = nvidia_open_create_signature; mgr->use_vmiop = 1; mgr->vmiop_plugin = "/usr/lib/x86_64-linux-gnu/libnvidia-vgpu.so"; if (api->init(mgr)) { printf("FAIL: Manager initialization failed\n"); ret = 1; goto cleanup; } printf("PASS: Manager initialized successfully\n"); if (!api->running(mgr)) { printf("FAIL: Manager not running\n"); ret = 1; goto cleanup; } printf("PASS: Manager is running\n"); if (mgr->vmiop) { printf("PASS: VMIOP initialized\n"); } else { printf("FAIL: VMIOP not initialized\n"); ret = 1; } cleanup: if (mgr) { api->stop(mgr); free(mgr); } if (ret == 0) printf("\nAll host initialization tests PASSED\n"); else printf("\nSome host initialization tests FAILED\n"); return ret; }