mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-12-18 00:37:28 +08:00
gdbsupport: record and print failed selftest names
Since "maint selftest" now runs quite a lot of tests (especially in an
all-targets build), I thought it would be useful to print a summary at
the end of what failed. So, implement that.
Print the summary before the "Ran %d unit tests, %zu failed\n" line, so
that that one remains the last line, and the gdb.gdb/unittest.exp
doesn't need to be changed.
The output looks like (if I force a failure in a test):
(gdb) maint selftest
...
Running selftest value_copy.
Running selftest xml_escape_text.
Running selftest xml_escape_text_append.
Failures:
aarch64-analyze-prologue
Ran 4134 unit tests, 1 failed
(gdb)
Change-Id: If3aaabdd6f8078d0e6e50e8d08f3e558ab85277e
Approved-By: Tom Tromey <tom@tromey.com>
This commit is contained in:
@@ -72,8 +72,9 @@ run_verbose ()
|
|||||||
void
|
void
|
||||||
run_tests (gdb::array_view<const char *const> filters, bool verbose)
|
run_tests (gdb::array_view<const char *const> filters, bool verbose)
|
||||||
{
|
{
|
||||||
int ran = 0, failed = 0;
|
int ran = 0;
|
||||||
run_verbose_ = verbose;
|
run_verbose_ = verbose;
|
||||||
|
std::vector<const char *> failed;
|
||||||
|
|
||||||
for (const auto &test : all_selftests ())
|
for (const auto &test : all_selftests ())
|
||||||
{
|
{
|
||||||
@@ -101,15 +102,25 @@ run_tests (gdb::array_view<const char *const> filters, bool verbose)
|
|||||||
}
|
}
|
||||||
catch (const gdb_exception_error &ex)
|
catch (const gdb_exception_error &ex)
|
||||||
{
|
{
|
||||||
++failed;
|
|
||||||
debug_printf ("Self test failed: %s\n", ex.what ());
|
debug_printf ("Self test failed: %s\n", ex.what ());
|
||||||
|
failed.push_back (test.name.c_str ());
|
||||||
}
|
}
|
||||||
|
|
||||||
reset ();
|
reset ();
|
||||||
}
|
}
|
||||||
|
|
||||||
debug_printf (_("Ran %d unit tests, %d failed\n"),
|
if (!failed.empty ())
|
||||||
ran, failed);
|
{
|
||||||
|
debug_printf ("\nFailures:\n");
|
||||||
|
|
||||||
|
for (const char *name : failed)
|
||||||
|
debug_printf (" %s\n", name);
|
||||||
|
|
||||||
|
debug_printf ("\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
debug_printf (_("Ran %d unit tests, %zu failed\n"),
|
||||||
|
ran, failed.size ());
|
||||||
}
|
}
|
||||||
|
|
||||||
/* See selftest.h. */
|
/* See selftest.h. */
|
||||||
|
|||||||
Reference in New Issue
Block a user