static int testSysinfo(const void *data) { int result = -1; const char *sysfsActualData; virSysinfoDefPtr ret = NULL; virBuffer buf = VIR_BUFFER_INITIALIZER; const struct testSysinfoData *testdata = data; virSysinfoSetup(testdata->decoder, testdata->sysinfo, testdata->cpuinfo); if (!testdata->expected || !(ret = testdata->func())) goto cleanup; if (virSysinfoFormat(&buf, ret) < 0) goto cleanup; if (!(sysfsActualData = virBufferCurrentContent(&buf))) goto cleanup; if (virTestCompareToFile(sysfsActualData, testdata->expected) < 0) goto cleanup; result = 0; cleanup: virSysinfoDefFree(ret); virBufferFreeAndReset(&buf); return result; }
static int testSysinfo(const void *data) { int result = -1; char *sysfsExpectData = NULL; const char *sysfsActualData; virSysinfoDefPtr ret = NULL; virBuffer buf = VIR_BUFFER_INITIALIZER; const struct testSysinfoData *testdata = data; virSysinfoSetup(testdata->decoder, testdata->sysinfo, testdata->cpuinfo); if (!testdata->expected || virtTestLoadFile(testdata->expected, &sysfsExpectData) < 0 || !(ret = virSysinfoRead())) { goto cleanup; } if (virSysinfoFormat(&buf,ret) < 0) goto cleanup; if (!(sysfsActualData = virBufferCurrentContent(&buf))) goto cleanup; if (STRNEQ(sysfsActualData, sysfsExpectData)) { virtTestDifference(stderr, sysfsActualData, sysfsExpectData); goto cleanup; } result = 0; cleanup: VIR_FREE(sysfsExpectData); virSysinfoDefFree(ret); virBufferFreeAndReset(&buf); return result; }