mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-01-30 16:35:24 +00:00
testutils: print a helpful summary of failed tests
When debugging test failures in seven independent test cases, it might be helpful to only gather the debug output of the failing cases. Record the indexes of the tests that fail and print them in the VIR_TEST_RANGE of the command line that will result in only those tests being run. Signed-off-by: Ján Tomko <jtomko@redhat.com> Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
This commit is contained in:
parent
2621d48f00
commit
cebb468ef5
@ -54,6 +54,7 @@ static unsigned int testRegenerate = -1;
|
||||
|
||||
static size_t testCounter;
|
||||
static virBitmapPtr testBitmap;
|
||||
static virBitmapPtr failedTests;
|
||||
|
||||
virArch virTestHostArch = VIR_ARCH_X86_64;
|
||||
|
||||
@ -172,6 +173,9 @@ virTestRun(const char *title,
|
||||
fprintf(stderr, "!");
|
||||
}
|
||||
|
||||
if (ret != 0)
|
||||
ignore_value(virBitmapSetBitExpand(failedTests, testCounter));
|
||||
|
||||
g_unsetenv("VIR_TEST_MOCK_TESTNAME");
|
||||
return ret;
|
||||
}
|
||||
@ -930,6 +934,9 @@ int virTestMain(int argc,
|
||||
}
|
||||
}
|
||||
|
||||
if (!(failedTests = virBitmapNew(1)))
|
||||
return EXIT_FAILURE;
|
||||
|
||||
ret = (func)();
|
||||
|
||||
virResetLastError();
|
||||
@ -938,6 +945,11 @@ int virTestMain(int argc,
|
||||
fprintf(stderr, "%*s", 40 - (int)(testCounter % 40), "");
|
||||
fprintf(stderr, " %-3zu %s\n", testCounter, ret == 0 ? "OK" : "FAIL");
|
||||
}
|
||||
if (ret == EXIT_FAILURE && !virBitmapIsAllClear(failedTests)) {
|
||||
g_autofree char *failed = virBitmapFormat(failedTests);
|
||||
fprintf(stderr, "Some tests failed. Run them using:\n");
|
||||
fprintf(stderr, "VIR_TEST_DEBUG=1 VIR_TEST_RANGE=%s %s\n", failed, argv[0]);
|
||||
}
|
||||
virLogReset();
|
||||
return ret;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user