* [PATCH] tests/qtest/rtl8139-test: Make the test less verbose by default
@ 2023-02-15 12:41 Thomas Huth
2023-02-15 12:46 ` Daniel P. Berrangé
0 siblings, 1 reply; 4+ messages in thread
From: Thomas Huth @ 2023-02-15 12:41 UTC (permalink / raw)
To: qemu-devel; +Cc: Laurent Vivier, Peter Maydell
We are facing the issues that some test logs in the gitlab CI are
too big (and thus cut off). The rtl8139-test is one of the few qtests
that prints many lines of output by default when running with V=1, so
it contributes to this problem. Almost all other qtests are silent
with V=1 and only print debug messages with V=2 and higher. Thus let's
change the rtl8139-test to behave more like the other tests and only
print the debug messages with V=2 (or higher).
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
tests/qtest/rtl8139-test.c | 15 +++++++++++++--
1 file changed, 13 insertions(+), 2 deletions(-)
diff --git a/tests/qtest/rtl8139-test.c b/tests/qtest/rtl8139-test.c
index 8fa3313cc3..1beb83805c 100644
--- a/tests/qtest/rtl8139-test.c
+++ b/tests/qtest/rtl8139-test.c
@@ -12,6 +12,8 @@
#include "libqos/pci-pc.h"
#include "qemu/timer.h"
+static int verbosity_level;
+
/* Tests only initialization so far. TODO: Replace with functional tests */
static void nop(void)
{
@@ -45,12 +47,16 @@ static QPCIDevice *get_device(void)
static unsigned __attribute__((unused)) in_##name(void) \
{ \
unsigned res = qpci_io_read##len(dev, dev_bar, (val)); \
- g_test_message("*%s -> %x", #name, res); \
+ if (verbosity_level >= 2) { \
+ g_test_message("*%s -> %x", #name, res); \
+ } \
return res; \
} \
static void out_##name(unsigned v) \
{ \
- g_test_message("%x -> *%s", v, #name); \
+ if (verbosity_level >= 2) { \
+ g_test_message("%x -> *%s", v, #name); \
+ } \
qpci_io_write##len(dev, dev_bar, (val), v); \
}
@@ -195,6 +201,11 @@ static void test_init(void)
int main(int argc, char **argv)
{
int ret;
+ char *v_env = getenv("V");
+
+ if (v_env) {
+ verbosity_level = atoi(v_env);
+ }
qtest_start("-device rtl8139");
--
2.31.1
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH] tests/qtest/rtl8139-test: Make the test less verbose by default
2023-02-15 12:41 [PATCH] tests/qtest/rtl8139-test: Make the test less verbose by default Thomas Huth
@ 2023-02-15 12:46 ` Daniel P. Berrangé
2023-02-15 13:38 ` Fabiano Rosas
0 siblings, 1 reply; 4+ messages in thread
From: Daniel P. Berrangé @ 2023-02-15 12:46 UTC (permalink / raw)
To: Thomas Huth; +Cc: qemu-devel, Laurent Vivier, Peter Maydell
On Wed, Feb 15, 2023 at 01:41:22PM +0100, Thomas Huth wrote:
> We are facing the issues that some test logs in the gitlab CI are
> too big (and thus cut off). The rtl8139-test is one of the few qtests
> that prints many lines of output by default when running with V=1, so
> it contributes to this problem. Almost all other qtests are silent
> with V=1 and only print debug messages with V=2 and higher. Thus let's
> change the rtl8139-test to behave more like the other tests and only
> print the debug messages with V=2 (or higher).
>
> Signed-off-by: Thomas Huth <thuth@redhat.com>
> ---
> tests/qtest/rtl8139-test.c | 15 +++++++++++++--
> 1 file changed, 13 insertions(+), 2 deletions(-)
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
>
> diff --git a/tests/qtest/rtl8139-test.c b/tests/qtest/rtl8139-test.c
> index 8fa3313cc3..1beb83805c 100644
> --- a/tests/qtest/rtl8139-test.c
> +++ b/tests/qtest/rtl8139-test.c
> @@ -12,6 +12,8 @@
> #include "libqos/pci-pc.h"
> #include "qemu/timer.h"
>
> +static int verbosity_level;
> +
> /* Tests only initialization so far. TODO: Replace with functional tests */
> static void nop(void)
> {
> @@ -45,12 +47,16 @@ static QPCIDevice *get_device(void)
> static unsigned __attribute__((unused)) in_##name(void) \
> { \
> unsigned res = qpci_io_read##len(dev, dev_bar, (val)); \
> - g_test_message("*%s -> %x", #name, res); \
> + if (verbosity_level >= 2) { \
> + g_test_message("*%s -> %x", #name, res); \
> + } \
> return res; \
> } \
> static void out_##name(unsigned v) \
> { \
> - g_test_message("%x -> *%s", v, #name); \
> + if (verbosity_level >= 2) { \
> + g_test_message("%x -> *%s", v, #name); \
> + } \
> qpci_io_write##len(dev, dev_bar, (val), v); \
> }
>
> @@ -195,6 +201,11 @@ static void test_init(void)
> int main(int argc, char **argv)
> {
> int ret;
> + char *v_env = getenv("V");
> +
> + if (v_env) {
> + verbosity_level = atoi(v_env);
> + }
*Not* something I'm requesting you to do now, just an observation / idea.
We've copied this pattern into several tests.
It is starting to feel like we should have a header with a
'qtests_env_setup()' method we call as first thing in main,
and exporting 'verbosity_level' from the header.
Perhaps also with a 'qtest_verbose(...)' macro that wraps
if (verbosity_level >= 2) {
g_test_message(...)
}
With regards,
Daniel
--
|: https://berrange.com -o- https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org -o- https://fstop138.berrange.com :|
|: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] tests/qtest/rtl8139-test: Make the test less verbose by default
2023-02-15 12:46 ` Daniel P. Berrangé
@ 2023-02-15 13:38 ` Fabiano Rosas
2023-02-15 14:10 ` Thomas Huth
0 siblings, 1 reply; 4+ messages in thread
From: Fabiano Rosas @ 2023-02-15 13:38 UTC (permalink / raw)
To: Daniel P. Berrangé, Thomas Huth
Cc: qemu-devel, Laurent Vivier, Peter Maydell
Daniel P. Berrangé <berrange@redhat.com> writes:
> On Wed, Feb 15, 2023 at 01:41:22PM +0100, Thomas Huth wrote:
>> We are facing the issues that some test logs in the gitlab CI are
>> too big (and thus cut off). The rtl8139-test is one of the few qtests
>> that prints many lines of output by default when running with V=1, so
>> it contributes to this problem. Almost all other qtests are silent
>> with V=1 and only print debug messages with V=2 and higher. Thus let's
>> change the rtl8139-test to behave more like the other tests and only
>> print the debug messages with V=2 (or higher).
>>
>> Signed-off-by: Thomas Huth <thuth@redhat.com>
>> ---
>> tests/qtest/rtl8139-test.c | 15 +++++++++++++--
>> 1 file changed, 13 insertions(+), 2 deletions(-)
>
> Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
>
>>
>> diff --git a/tests/qtest/rtl8139-test.c b/tests/qtest/rtl8139-test.c
>> index 8fa3313cc3..1beb83805c 100644
>> --- a/tests/qtest/rtl8139-test.c
>> +++ b/tests/qtest/rtl8139-test.c
>> @@ -12,6 +12,8 @@
>> #include "libqos/pci-pc.h"
>> #include "qemu/timer.h"
>>
>> +static int verbosity_level;
>> +
>> /* Tests only initialization so far. TODO: Replace with functional tests */
>> static void nop(void)
>> {
>> @@ -45,12 +47,16 @@ static QPCIDevice *get_device(void)
>> static unsigned __attribute__((unused)) in_##name(void) \
>> { \
>> unsigned res = qpci_io_read##len(dev, dev_bar, (val)); \
>> - g_test_message("*%s -> %x", #name, res); \
>> + if (verbosity_level >= 2) { \
>> + g_test_message("*%s -> %x", #name, res); \
>> + } \
>> return res; \
>> } \
>> static void out_##name(unsigned v) \
>> { \
>> - g_test_message("%x -> *%s", v, #name); \
>> + if (verbosity_level >= 2) { \
>> + g_test_message("%x -> *%s", v, #name); \
>> + } \
>> qpci_io_write##len(dev, dev_bar, (val), v); \
>> }
>>
>> @@ -195,6 +201,11 @@ static void test_init(void)
>> int main(int argc, char **argv)
>> {
>> int ret;
>> + char *v_env = getenv("V");
>> +
>> + if (v_env) {
>> + verbosity_level = atoi(v_env);
>> + }
>
> *Not* something I'm requesting you to do now, just an observation / idea.
>
> We've copied this pattern into several tests.
>
> It is starting to feel like we should have a header with a
> 'qtests_env_setup()' method we call as first thing in main,
> and exporting 'verbosity_level' from the header.
>
> Perhaps also with a 'qtest_verbose(...)' macro that wraps
>
> if (verbosity_level >= 2) {
> g_test_message(...)
> }
Could we maybe play with g_test_verbose and g_test_quiet? The docs say
"The default is neither g_test_verbose() nor g_test_quiet()." So
perhaps:
V= --quiet, g_test_quiet
V=1 no option, default verbosity
V=2 --verbose, g_test_verbose
Then test g_test_quiet|verbose instead of reading from env directly.
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] tests/qtest/rtl8139-test: Make the test less verbose by default
2023-02-15 13:38 ` Fabiano Rosas
@ 2023-02-15 14:10 ` Thomas Huth
0 siblings, 0 replies; 4+ messages in thread
From: Thomas Huth @ 2023-02-15 14:10 UTC (permalink / raw)
To: Fabiano Rosas, Daniel P. Berrangé
Cc: qemu-devel, Laurent Vivier, Peter Maydell
On 15/02/2023 14.38, Fabiano Rosas wrote:
> Daniel P. Berrangé <berrange@redhat.com> writes:
>
>> On Wed, Feb 15, 2023 at 01:41:22PM +0100, Thomas Huth wrote:
>>> We are facing the issues that some test logs in the gitlab CI are
>>> too big (and thus cut off). The rtl8139-test is one of the few qtests
>>> that prints many lines of output by default when running with V=1, so
>>> it contributes to this problem. Almost all other qtests are silent
>>> with V=1 and only print debug messages with V=2 and higher. Thus let's
>>> change the rtl8139-test to behave more like the other tests and only
>>> print the debug messages with V=2 (or higher).
>>>
>>> Signed-off-by: Thomas Huth <thuth@redhat.com>
>>> ---
>>> tests/qtest/rtl8139-test.c | 15 +++++++++++++--
>>> 1 file changed, 13 insertions(+), 2 deletions(-)
>>
>> Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
>>
>>>
>>> diff --git a/tests/qtest/rtl8139-test.c b/tests/qtest/rtl8139-test.c
>>> index 8fa3313cc3..1beb83805c 100644
>>> --- a/tests/qtest/rtl8139-test.c
>>> +++ b/tests/qtest/rtl8139-test.c
>>> @@ -12,6 +12,8 @@
>>> #include "libqos/pci-pc.h"
>>> #include "qemu/timer.h"
>>>
>>> +static int verbosity_level;
>>> +
>>> /* Tests only initialization so far. TODO: Replace with functional tests */
>>> static void nop(void)
>>> {
>>> @@ -45,12 +47,16 @@ static QPCIDevice *get_device(void)
>>> static unsigned __attribute__((unused)) in_##name(void) \
>>> { \
>>> unsigned res = qpci_io_read##len(dev, dev_bar, (val)); \
>>> - g_test_message("*%s -> %x", #name, res); \
>>> + if (verbosity_level >= 2) { \
>>> + g_test_message("*%s -> %x", #name, res); \
>>> + } \
>>> return res; \
>>> } \
>>> static void out_##name(unsigned v) \
>>> { \
>>> - g_test_message("%x -> *%s", v, #name); \
>>> + if (verbosity_level >= 2) { \
>>> + g_test_message("%x -> *%s", v, #name); \
>>> + } \
>>> qpci_io_write##len(dev, dev_bar, (val), v); \
>>> }
>>>
>>> @@ -195,6 +201,11 @@ static void test_init(void)
>>> int main(int argc, char **argv)
>>> {
>>> int ret;
>>> + char *v_env = getenv("V");
>>> +
>>> + if (v_env) {
>>> + verbosity_level = atoi(v_env);
>>> + }
>>
>> *Not* something I'm requesting you to do now, just an observation / idea.
>>
>> We've copied this pattern into several tests.
>>
>> It is starting to feel like we should have a header with a
>> 'qtests_env_setup()' method we call as first thing in main,
>> and exporting 'verbosity_level' from the header.
>>
>> Perhaps also with a 'qtest_verbose(...)' macro that wraps
>>
>> if (verbosity_level >= 2) {
>> g_test_message(...)
>> }
Agree, we could generalize this stuff somehow ... maybe also simply adding a
qtest_log(int level, char *format, ...) function that does the getenv()
checking on the first invocation, or something like that.
> Could we maybe play with g_test_verbose and g_test_quiet? The docs say
> "The default is neither g_test_verbose() nor g_test_quiet()." So
> perhaps:
>
> V= --quiet, g_test_quiet
> V=1 no option, default verbosity
> V=2 --verbose, g_test_verbose
>
> Then test g_test_quiet|verbose instead of reading from env directly.
Sounds like an option, too ... but we would not have a V=3 level that way
(which is already used in qom-test.c - not sure whether we really need it,
though, we could use V=2 for all debug messages, too).
Thomas
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2023-02-15 14:11 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-02-15 12:41 [PATCH] tests/qtest/rtl8139-test: Make the test less verbose by default Thomas Huth
2023-02-15 12:46 ` Daniel P. Berrangé
2023-02-15 13:38 ` Fabiano Rosas
2023-02-15 14:10 ` Thomas Huth
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).