static int mymain(void) { char scratchdir[] = SCRATCHDIRTEMPLATE; int ret = 0; if (!mkdtemp(scratchdir)) { virFilePrintf(stderr, "Cannot create fdstreamdir"); abort(); } if (virTestRun("Stream read blocking ", testFDStreamReadBlock, scratchdir) < 0) ret = -1; if (virTestRun("Stream read non-blocking ", testFDStreamReadNonblock, scratchdir) < 0) ret = -1; if (virTestRun("Stream write blocking ", testFDStreamWriteBlock, scratchdir) < 0) ret = -1; if (virTestRun("Stream write non-blocking ", testFDStreamWriteNonblock, scratchdir) < 0) ret = -1; if (getenv("LIBVIRT_SKIP_CLEANUP") == NULL) virFileDeleteTree(scratchdir); return ret == 0 ? EXIT_SUCCESS : EXIT_FAILURE; }
static int mymain(void) { int ret = 0; if (virTestRun("Keycode mapping ", testKeycodeMapping, NULL) < 0) ret = -1; if (virTestRun("Keycode strings ", testKeycodeStrings, NULL) < 0) ret = -1; return ret == 0 ? EXIT_SUCCESS : EXIT_FAILURE; }
static int testSchemaDir(const char *schema, virXMLValidatorPtr validator, const char *dir_path) { DIR *dir = NULL; struct dirent *ent; int ret = 0; int rc; char *test_name = NULL; char *xml_path = NULL; struct testSchemaData data = { .validator = validator, }; if (virDirOpen(&dir, dir_path) < 0) return -1; while ((rc = virDirRead(dir, &ent, dir_path)) > 0) { if (!virStringHasSuffix(ent->d_name, ".xml")) continue; if (ent->d_name[0] == '.') continue; if (virAsprintf(&xml_path, "%s/%s", dir_path, ent->d_name) < 0) goto cleanup; if (virAsprintf(&test_name, "Checking %s against %s", ent->d_name, schema) < 0) goto cleanup; data.xml_path = xml_path; if (virTestRun(test_name, testSchemaFile, &data) < 0) ret = -1; VIR_FREE(test_name); VIR_FREE(xml_path); } if (rc < 0) ret = -1; cleanup: VIR_FREE(test_name); VIR_FREE(xml_path); VIR_DIR_CLOSE(dir); return ret; }
static int sysinfotest_run(const char *test, virSysinfoDefPtr (*func)(void), const char *decoder, const char *sysinfo, const char *cpuinfo, const char *expected) { struct testSysinfoData testdata = { NULL }; int ret = EXIT_FAILURE; testdata.func = func; if ((decoder && virAsprintf(&testdata.decoder, "%s/%s", abs_srcdir, decoder) < 0) || (sysinfo && virAsprintf(&testdata.sysinfo, "%s/%s", abs_srcdir, sysinfo) < 0) || (cpuinfo && virAsprintf(&testdata.cpuinfo, "%s/%s", abs_srcdir, cpuinfo) < 0) || (expected && virAsprintf(&testdata.expected, "%s/%s", abs_srcdir, expected) < 0)) { goto error; } if (virTestRun(test, testSysinfo, &testdata) < 0) goto error; ret = EXIT_SUCCESS; error: VIR_FREE(testdata.decoder); VIR_FREE(testdata.sysinfo); VIR_FREE(testdata.cpuinfo); VIR_FREE(testdata.expected); return ret; }