qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH 3/3] tests: Avoid side effects inside g_assert() arguments


From: Alex Bennée
Subject: Re: [PATCH 3/3] tests: Avoid side effects inside g_assert() arguments
Date: Tue, 04 May 2021 09:48:39 +0100
User-agent: mu4e 1.5.13; emacs 28.0.50

Peter Maydell <peter.maydell@linaro.org> writes:

> For us, assertions are always enabled, but side-effect expressions
> inside the argument to g_assert() are bad style anyway. Fix three
> occurrences in IPMI related tests, which will silence some Coverity
> nits.
>
> Fixes: CID 1432322, CID 1432287, CID 1432291
> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
> ---
>  tests/qtest/ipmi-bt-test.c  | 6 ++++--
>  tests/qtest/ipmi-kcs-test.c | 3 ++-
>  2 files changed, 6 insertions(+), 3 deletions(-)
>
> diff --git a/tests/qtest/ipmi-bt-test.c b/tests/qtest/ipmi-bt-test.c
> index a42207d416f..8492f02a9c3 100644
> --- a/tests/qtest/ipmi-bt-test.c
> +++ b/tests/qtest/ipmi-bt-test.c
> @@ -98,7 +98,8 @@ static void bt_wait_b_busy(void)
>  {
>      unsigned int count = 1000;
>      while (IPMI_BT_CTLREG_GET_B_BUSY() != 0) {
> -        g_assert(--count != 0);
> +        --count;
> +        g_assert(count != 0);

This does seem a little weird - we are not asserting an interface
violation just that the read should have cleared in 1000 * 100 usec. If
it doesn't is that really a theoretically impossible situation or just
an example of a failed test.

That said looking at how deeply buried in the test these helpers are an
assert is probably better than a convoluted attempt to return out and
exit the test with a failure.

Reviewed-by: Alex Bennée <alex.bennee@linaro.org>


>          usleep(100);
>      }
>  }
> @@ -107,7 +108,8 @@ static void bt_wait_b2h_atn(void)
>  {
>      unsigned int count = 1000;
>      while (IPMI_BT_CTLREG_GET_B2H_ATN() == 0) {
> -        g_assert(--count != 0);
> +        --count;
> +        g_assert(count != 0);
>          usleep(100);
>      }
>  }
> diff --git a/tests/qtest/ipmi-kcs-test.c b/tests/qtest/ipmi-kcs-test.c
> index fc0a918c8d1..afc24dd3e46 100644
> --- a/tests/qtest/ipmi-kcs-test.c
> +++ b/tests/qtest/ipmi-kcs-test.c
> @@ -73,7 +73,8 @@ static void kcs_wait_ibf(void)
>  {
>      unsigned int count = 1000;
>      while (IPMI_KCS_CMDREG_GET_IBF() != 0) {
> -        g_assert(--count != 0);
> +        --count;
> +        g_assert(count != 0);
>      }
>  }


-- 
Alex Bennée



reply via email to

[Prev in Thread] Current Thread [Next in Thread]