diff options
Diffstat (limited to 'userspace/tests/test_host_init.c')
| -rw-r--r-- | userspace/tests/test_host_init.c | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/userspace/tests/test_host_init.c b/userspace/tests/test_host_init.c new file mode 100644 index 0000000..a08fe33 --- /dev/null +++ b/userspace/tests/test_host_init.c @@ -0,0 +1,68 @@ +/* + * Test for host vGPU initialization + */ +#include <gvm/apis.h> +#include <gvm/nvidia/manager.h> +#include <gvm/nvidia/creator.h> +#include <gvm/nvidia/open/signature.h> +#include <utils/configs.h> + +#include <stdio.h> +#include <stdlib.h> + +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; +}
\ No newline at end of file |
