Daniel P. Berrangé <[email protected]> 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 <[email protected]> >> --- >> tests/qtest/rtl8139-test.c | 15 +++++++++++++-- >> 1 file changed, 13 insertions(+), 2 deletions(-) > > Reviewed-by: Daniel P. Berrangé <[email protected]> > >> >> 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.
