On Fri, Nov 24, 2023 at 01:14:31PM -0300, Fabiano Rosas wrote: > Our usage of gtest results in us losing the very basic functionality > of "knowing which test failed". The issue is that gtest only prints > test names ("paths" in gtest parlance) once the test has finished, but > we use asserts in the tests and crash gtest itself before it can print > anything. We also use a final abort when the result of g_test_run is > not 0. > > Depending on how the test failed/broke we can see the function that > trigged the abort, which may be representative of the test, but it > could also just be some generic function. > > We have been relying on the primitive method of looking at the name of > the previous successful test and then looking at the code to figure > out which test should have come next. > > Add a wrapper to the test registration that does the job of printing > the test name before running. > > Signed-off-by: Fabiano Rosas <faro...@suse.de> > --- > tests/qtest/migration-helpers.c | 32 ++++++++++++++++++++++++++++++++ > tests/qtest/migration-helpers.h | 1 + > 2 files changed, 33 insertions(+) > > diff --git a/tests/qtest/migration-helpers.c b/tests/qtest/migration-helpers.c > index f1106128a9..164e09c299 100644 > --- a/tests/qtest/migration-helpers.c > +++ b/tests/qtest/migration-helpers.c > @@ -298,3 +298,35 @@ char *resolve_machine_version(const char *alias, const > char *var1, > > return find_common_machine_version(machine_name, var1, var2); > } > + > +typedef struct { > + char *name; > + void (*func)(void); > +} MigrationTest; > + > +static void migration_test_destroy(gpointer data) > +{ > + MigrationTest *test = (MigrationTest *)data; > + > + g_free(test->name); > + g_free(test); > +} > + > +static void migration_test_wrapper(const void *data) > +{ > + MigrationTest *test = (MigrationTest *)data; > + > + g_test_message("Running /%s%s", qtest_get_arch(), test->name);
/%s/%s? > + test->func(); > +} Reviewed-by: Peter Xu <pet...@redhat.com> -- Peter Xu