On 18/03/2019 18.15, Paolo Bonzini wrote:
> receive_autoinc is relying on the LED state that is set by
> send_and_receive. Stop doing that, because qgraph resets the
> machine between tests.
>
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> ---
> tests/pca9552-test.c | 15 +++++++++++----
> 1 file changed, 11 insertions(+), 4 deletions(-)
>
> diff --git a/tests/pca9552-test.c b/tests/pca9552-test.c
> index 06359b7435..89b4445e29 100644
> --- a/tests/pca9552-test.c
> +++ b/tests/pca9552-test.c
> @@ -18,11 +18,20 @@
>
> static I2CAdapter *i2c;
>
> +static void pca9552_init(I2CAdapter *i2c)
> +{
> + /* Switch on LEDs 0 and 12 */
> + i2c_set8(i2c, PCA9552_TEST_ADDR, PCA9552_LS0, 0x54);
> + i2c_set8(i2c, PCA9552_TEST_ADDR, PCA9552_LS3, 0x54);
> +}
> +
> static void receive_autoinc(void)
> {
> uint8_t resp;
> uint8_t reg = PCA9552_LS0 | PCA9552_AUTOINC;
>
> + pca9552_init(i2cdev);
> +
> i2c_send(i2c, PCA9552_TEST_ADDR, ®, 1);
>
> /* PCA9552_LS0 */
> @@ -52,16 +61,14 @@ static void send_and_receive(void)
> value = i2c_get8(i2c, PCA9552_TEST_ADDR, PCA9552_INPUT0);
> g_assert_cmphex(value, ==, 0x0);
>
> - /* Switch on LED 0 */
> - i2c_set8(i2c, PCA9552_TEST_ADDR, PCA9552_LS0, 0x54);
> + pca9552_init(i2cdev);
> +
> value = i2c_get8(i2c, PCA9552_TEST_ADDR, PCA9552_LS0);
> g_assert_cmphex(value, ==, 0x54);
>
> value = i2c_get8(i2c, PCA9552_TEST_ADDR, PCA9552_INPUT0);
> g_assert_cmphex(value, ==, 0x01);
>
> - /* Switch on LED 12 */
> - i2c_set8(i2c, PCA9552_TEST_ADDR, PCA9552_LS3, 0x54);
> value = i2c_get8(i2c, PCA9552_TEST_ADDR, PCA9552_LS3);
> g_assert_cmphex(value, ==, 0x54);
Reviewed-by: Thomas Huth <thuth@redhat.com>