[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v1 6/7] tests/qtest/migration: Add a wrapper to print test na
|
From: |
Fabiano Rosas |
|
Subject: |
Re: [PATCH v1 6/7] tests/qtest/migration: Add a wrapper to print test names |
|
Date: |
Mon, 27 Nov 2023 12:44:53 -0300 |
Peter Xu <peterx@redhat.com> writes:
> 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 <farosas@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?
The test name contains a leading slash.