qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* Re: [Qemu-devel] [PATCH 02/13] qgraph: fix qos_node_contains with options
       [not found] ` <20190318171521.8524-3-pbonzini@redhat.com>
@ 2019-04-09  9:27   ` Thomas Huth
  2019-04-09  9:27     ` Thomas Huth
  0 siblings, 1 reply; 10+ messages in thread
From: Thomas Huth @ 2019-04-09  9:27 UTC (permalink / raw)
  To: Paolo Bonzini, qemu-devel

On 18/03/2019 18.15, Paolo Bonzini wrote:
> Currently, if qos_node_contains was passed options, it would still
> create an edge without any options.  Instead, in that case
> NULL acts as a terminator.
> 
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> ---
>  tests/libqos/qgraph.c | 12 ++++++++----
>  tests/libqos/qgraph.h | 15 +++++++++------
>  2 files changed, 17 insertions(+), 10 deletions(-)
> 
> diff --git a/tests/libqos/qgraph.c b/tests/libqos/qgraph.c
> index 122efc1b7b..9f738f1849 100644
> --- a/tests/libqos/qgraph.c
> +++ b/tests/libqos/qgraph.c
> @@ -630,15 +630,19 @@ void qos_node_create_driver(const char *name, QOSCreateDriverFunc function)
>  }
>  
>  void qos_node_contains(const char *container, const char *contained,
> -                       ...)
> +                       QOSGraphEdgeOptions *opts, ...)
>  {
>      va_list va;
> -    va_start(va, contained);
> -    QOSGraphEdgeOptions *opts;
>  
> +    if (opts == NULL) {
> +        add_edge(container, contained, QEDGE_CONTAINS, NULL);
> +        return;
> +    }
> +
> +    va_start(va, contained);

As patchew complained - you've got to either replace "contained" with
"opts" here, or switch the order of the options in the prototype.

 Thomas

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [Qemu-devel] [PATCH 02/13] qgraph: fix qos_node_contains with options
  2019-04-09  9:27   ` [Qemu-devel] [PATCH 02/13] qgraph: fix qos_node_contains with options Thomas Huth
@ 2019-04-09  9:27     ` Thomas Huth
  0 siblings, 0 replies; 10+ messages in thread
From: Thomas Huth @ 2019-04-09  9:27 UTC (permalink / raw)
  To: Paolo Bonzini, qemu-devel

On 18/03/2019 18.15, Paolo Bonzini wrote:
> Currently, if qos_node_contains was passed options, it would still
> create an edge without any options.  Instead, in that case
> NULL acts as a terminator.
> 
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> ---
>  tests/libqos/qgraph.c | 12 ++++++++----
>  tests/libqos/qgraph.h | 15 +++++++++------
>  2 files changed, 17 insertions(+), 10 deletions(-)
> 
> diff --git a/tests/libqos/qgraph.c b/tests/libqos/qgraph.c
> index 122efc1b7b..9f738f1849 100644
> --- a/tests/libqos/qgraph.c
> +++ b/tests/libqos/qgraph.c
> @@ -630,15 +630,19 @@ void qos_node_create_driver(const char *name, QOSCreateDriverFunc function)
>  }
>  
>  void qos_node_contains(const char *container, const char *contained,
> -                       ...)
> +                       QOSGraphEdgeOptions *opts, ...)
>  {
>      va_list va;
> -    va_start(va, contained);
> -    QOSGraphEdgeOptions *opts;
>  
> +    if (opts == NULL) {
> +        add_edge(container, contained, QEDGE_CONTAINS, NULL);
> +        return;
> +    }
> +
> +    va_start(va, contained);

As patchew complained - you've got to either replace "contained" with
"opts" here, or switch the order of the options in the prototype.

 Thomas


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [Qemu-devel] [PATCH 03/13] libqos: move common i2c code to libqos
       [not found] ` <20190318171521.8524-4-pbonzini@redhat.com>
@ 2019-04-09  9:42   ` Thomas Huth
  2019-04-09  9:42     ` Thomas Huth
  2019-04-10 12:19     ` Paolo Bonzini
  0 siblings, 2 replies; 10+ messages in thread
From: Thomas Huth @ 2019-04-09  9:42 UTC (permalink / raw)
  To: Paolo Bonzini, qemu-devel

On 18/03/2019 18.15, Paolo Bonzini wrote:
> The functions to read/write 8-bit or 16-bit registers are the same
> in tmp105 and pca9552 tests, and in fact they are a special case of
> "read block"/"write block" functionality; read block in turn is used
> in ds1338-test.
> 
> Move everything inside libqos-test, removing the duplication.  Account
> for the small differences by adding to tmp105-test.c the "read register
> after writing" behavior that is specific to it.
> 
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> ---
>  tests/ds1338-test.c  |  8 +----
>  tests/libqos/i2c.c   | 47 ++++++++++++++++++++++++++
>  tests/libqos/i2c.h   | 11 ++++++
>  tests/pca9552-test.c | 37 +++++---------------
>  tests/tmp105-test.c  | 80 ++++++++++++--------------------------------
>  5 files changed, 88 insertions(+), 95 deletions(-)
> 
> diff --git a/tests/ds1338-test.c b/tests/ds1338-test.c
> index 742dad9113..88f829f241 100644
> --- a/tests/ds1338-test.c
> +++ b/tests/ds1338-test.c
> @@ -35,17 +35,11 @@ static inline uint8_t bcd2bin(uint8_t x)
>  
>  static void send_and_receive(void)
>  {
> -    uint8_t cmd[1];
>      uint8_t resp[7];
>      time_t now = time(NULL);
>      struct tm *tm_ptr = gmtime(&now);
>  
> -    /* reset the index in the RTC memory */
> -    cmd[0] = 0;
> -    i2c_send(i2c, addr, cmd, 1);
> -
> -    /* retrieve the date */
> -    i2c_recv(i2c, addr, resp, 7);
> +    i2c_read_block(i2c, addr, 0, resp, sizeof(resp));
>  
>      /* check retrieved time againt local time */
>      g_assert_cmpuint(bcd2bin(resp[4]), == , tm_ptr->tm_mday);
> diff --git a/tests/libqos/i2c.c b/tests/libqos/i2c.c
> index 23bc2a3eb2..daf9a96617 100644
> --- a/tests/libqos/i2c.c
> +++ b/tests/libqos/i2c.c
> @@ -21,3 +21,50 @@ void i2c_recv(I2CAdapter *i2c, uint8_t addr,
>  {
>      i2c->recv(i2c, addr, buf, len);
>  }
> +
> +void i2c_read_block(I2CAdapter *i2c, uint8_t addr, uint8_t reg,
> +                       uint8_t *buf, uint16_t len)
> +{
> +    i2c_send(i2c, addr, &reg, 1);
> +    i2c_recv(i2c, addr, buf, len);
> +}
> +
> +void i2c_write_block(I2CAdapter *i2c, uint8_t addr, uint8_t reg,
> +                     const uint8_t *buf, uint16_t len)
> +{
> +    uint8_t *cmd = g_malloc(len + 1);
> +    cmd[0] = reg;
> +    memcpy(&cmd[1], buf, len);
> +    i2c_send(i2c, addr, cmd, len + 1);
> +    g_free(cmd);
> +}

So the i2c_write_block function only uses i2c_send() ...

> +uint8_t i2c_get8(I2CAdapter *i2c, uint8_t addr, uint8_t reg)
> +{
> +    uint8_t resp[1];
> +    i2c_read_block(i2c, addr, reg, resp, sizeof(resp));
> +    return resp[0];
> +}
> +
> +uint16_t i2c_get16(I2CAdapter *i2c, uint8_t addr, uint8_t reg)
> +{
> +    uint8_t resp[2];
> +    i2c_read_block(i2c, addr, reg, resp, sizeof(resp));
> +    return (resp[0] << 8) | resp[1];
> +}
> +
> +void i2c_set8(I2CAdapter *i2c, uint8_t addr, uint8_t reg,
> +              uint8_t value)
> +{
> +    i2c_write_block(i2c, addr, reg, &value, 1);
> +}
> +
> +void i2c_set16(I2CAdapter *i2c, uint8_t addr, uint8_t reg,
> +               uint16_t value)
> +{
> +    uint8_t data[2];
> +
> +    data[0] = value >> 8;
> +    data[1] = value & 255;
> +    i2c_write_block(i2c, addr, reg, data, sizeof(data));
> +}

... i.e. the i2c_set8/16() functions also only use i2c_send()...

> -static void tmp105_set8(I2CAdapter *i2c, uint8_t addr, uint8_t reg,
> -                        uint8_t value)
> -{
> -    uint8_t cmd[2];
> -    uint8_t resp[1];
> -
> -    cmd[0] = reg;
> -    cmd[1] = value;
> -    i2c_send(i2c, addr, cmd, 2);
> -    i2c_recv(i2c, addr, resp, 1);
> -    g_assert_cmphex(resp[0], ==, cmd[1]);
> -}
> -
> -static void tmp105_set16(I2CAdapter *i2c, uint8_t addr, uint8_t reg,
> -                         uint16_t value)
> -{
> -    uint8_t cmd[3];
> -    uint8_t resp[2];
> -
> -    cmd[0] = reg;
> -    cmd[1] = value >> 8;
> -    cmd[2] = value & 255;
> -    i2c_send(i2c, addr, cmd, 3);
> -    i2c_recv(i2c, addr, resp, 2);
> -    g_assert_cmphex(resp[0], ==, cmd[1]);
> -    g_assert_cmphex(resp[1], ==, cmd[2]);
> -}

... but the old set8/16 functions also used i2c_recv() and
g_assert_cmphex() ... shouldn't this be added to the new functions, too?

 Thomas

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [Qemu-devel] [PATCH 03/13] libqos: move common i2c code to libqos
  2019-04-09  9:42   ` [Qemu-devel] [PATCH 03/13] libqos: move common i2c code to libqos Thomas Huth
@ 2019-04-09  9:42     ` Thomas Huth
  2019-04-10 12:19     ` Paolo Bonzini
  1 sibling, 0 replies; 10+ messages in thread
From: Thomas Huth @ 2019-04-09  9:42 UTC (permalink / raw)
  To: Paolo Bonzini, qemu-devel

On 18/03/2019 18.15, Paolo Bonzini wrote:
> The functions to read/write 8-bit or 16-bit registers are the same
> in tmp105 and pca9552 tests, and in fact they are a special case of
> "read block"/"write block" functionality; read block in turn is used
> in ds1338-test.
> 
> Move everything inside libqos-test, removing the duplication.  Account
> for the small differences by adding to tmp105-test.c the "read register
> after writing" behavior that is specific to it.
> 
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> ---
>  tests/ds1338-test.c  |  8 +----
>  tests/libqos/i2c.c   | 47 ++++++++++++++++++++++++++
>  tests/libqos/i2c.h   | 11 ++++++
>  tests/pca9552-test.c | 37 +++++---------------
>  tests/tmp105-test.c  | 80 ++++++++++++--------------------------------
>  5 files changed, 88 insertions(+), 95 deletions(-)
> 
> diff --git a/tests/ds1338-test.c b/tests/ds1338-test.c
> index 742dad9113..88f829f241 100644
> --- a/tests/ds1338-test.c
> +++ b/tests/ds1338-test.c
> @@ -35,17 +35,11 @@ static inline uint8_t bcd2bin(uint8_t x)
>  
>  static void send_and_receive(void)
>  {
> -    uint8_t cmd[1];
>      uint8_t resp[7];
>      time_t now = time(NULL);
>      struct tm *tm_ptr = gmtime(&now);
>  
> -    /* reset the index in the RTC memory */
> -    cmd[0] = 0;
> -    i2c_send(i2c, addr, cmd, 1);
> -
> -    /* retrieve the date */
> -    i2c_recv(i2c, addr, resp, 7);
> +    i2c_read_block(i2c, addr, 0, resp, sizeof(resp));
>  
>      /* check retrieved time againt local time */
>      g_assert_cmpuint(bcd2bin(resp[4]), == , tm_ptr->tm_mday);
> diff --git a/tests/libqos/i2c.c b/tests/libqos/i2c.c
> index 23bc2a3eb2..daf9a96617 100644
> --- a/tests/libqos/i2c.c
> +++ b/tests/libqos/i2c.c
> @@ -21,3 +21,50 @@ void i2c_recv(I2CAdapter *i2c, uint8_t addr,
>  {
>      i2c->recv(i2c, addr, buf, len);
>  }
> +
> +void i2c_read_block(I2CAdapter *i2c, uint8_t addr, uint8_t reg,
> +                       uint8_t *buf, uint16_t len)
> +{
> +    i2c_send(i2c, addr, &reg, 1);
> +    i2c_recv(i2c, addr, buf, len);
> +}
> +
> +void i2c_write_block(I2CAdapter *i2c, uint8_t addr, uint8_t reg,
> +                     const uint8_t *buf, uint16_t len)
> +{
> +    uint8_t *cmd = g_malloc(len + 1);
> +    cmd[0] = reg;
> +    memcpy(&cmd[1], buf, len);
> +    i2c_send(i2c, addr, cmd, len + 1);
> +    g_free(cmd);
> +}

So the i2c_write_block function only uses i2c_send() ...

> +uint8_t i2c_get8(I2CAdapter *i2c, uint8_t addr, uint8_t reg)
> +{
> +    uint8_t resp[1];
> +    i2c_read_block(i2c, addr, reg, resp, sizeof(resp));
> +    return resp[0];
> +}
> +
> +uint16_t i2c_get16(I2CAdapter *i2c, uint8_t addr, uint8_t reg)
> +{
> +    uint8_t resp[2];
> +    i2c_read_block(i2c, addr, reg, resp, sizeof(resp));
> +    return (resp[0] << 8) | resp[1];
> +}
> +
> +void i2c_set8(I2CAdapter *i2c, uint8_t addr, uint8_t reg,
> +              uint8_t value)
> +{
> +    i2c_write_block(i2c, addr, reg, &value, 1);
> +}
> +
> +void i2c_set16(I2CAdapter *i2c, uint8_t addr, uint8_t reg,
> +               uint16_t value)
> +{
> +    uint8_t data[2];
> +
> +    data[0] = value >> 8;
> +    data[1] = value & 255;
> +    i2c_write_block(i2c, addr, reg, data, sizeof(data));
> +}

... i.e. the i2c_set8/16() functions also only use i2c_send()...

> -static void tmp105_set8(I2CAdapter *i2c, uint8_t addr, uint8_t reg,
> -                        uint8_t value)
> -{
> -    uint8_t cmd[2];
> -    uint8_t resp[1];
> -
> -    cmd[0] = reg;
> -    cmd[1] = value;
> -    i2c_send(i2c, addr, cmd, 2);
> -    i2c_recv(i2c, addr, resp, 1);
> -    g_assert_cmphex(resp[0], ==, cmd[1]);
> -}
> -
> -static void tmp105_set16(I2CAdapter *i2c, uint8_t addr, uint8_t reg,
> -                         uint16_t value)
> -{
> -    uint8_t cmd[3];
> -    uint8_t resp[2];
> -
> -    cmd[0] = reg;
> -    cmd[1] = value >> 8;
> -    cmd[2] = value & 255;
> -    i2c_send(i2c, addr, cmd, 3);
> -    i2c_recv(i2c, addr, resp, 2);
> -    g_assert_cmphex(resp[0], ==, cmd[1]);
> -    g_assert_cmphex(resp[1], ==, cmd[2]);
> -}

... but the old set8/16 functions also used i2c_recv() and
g_assert_cmphex() ... shouldn't this be added to the new functions, too?

 Thomas


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [Qemu-devel] [PATCH 05/13] pca9552-test: do not rely on state across tests
       [not found] ` <20190318171521.8524-6-pbonzini@redhat.com>
@ 2019-04-09  9:50   ` Thomas Huth
  2019-04-09  9:50     ` Thomas Huth
  0 siblings, 1 reply; 10+ messages in thread
From: Thomas Huth @ 2019-04-09  9:50 UTC (permalink / raw)
  To: Paolo Bonzini, qemu-devel

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, &reg, 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>

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [Qemu-devel] [PATCH 05/13] pca9552-test: do not rely on state across tests
  2019-04-09  9:50   ` [Qemu-devel] [PATCH 05/13] pca9552-test: do not rely on state across tests Thomas Huth
@ 2019-04-09  9:50     ` Thomas Huth
  0 siblings, 0 replies; 10+ messages in thread
From: Thomas Huth @ 2019-04-09  9:50 UTC (permalink / raw)
  To: Paolo Bonzini, qemu-devel

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, &reg, 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>


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [Qemu-devel] [PATCH 06/13] imx25-pdk: create ds1338 for qtest inside the test
       [not found] ` <20190318171521.8524-7-pbonzini@redhat.com>
@ 2019-04-09  9:54   ` Thomas Huth
  2019-04-09  9:54     ` Thomas Huth
  0 siblings, 1 reply; 10+ messages in thread
From: Thomas Huth @ 2019-04-09  9:54 UTC (permalink / raw)
  To: Paolo Bonzini, qemu-devel

On 18/03/2019 18.15, Paolo Bonzini wrote:
> There is no need to have a test device created by the board.
> Instead, create it in the qtest so that we will be able to run
> it on other boards too.
> 
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> ---
>  hw/arm/imx25_pdk.c  | 9 ---------
>  tests/ds1338-test.c | 2 +-
>  2 files changed, 1 insertion(+), 10 deletions(-)
> 
> diff --git a/hw/arm/imx25_pdk.c b/hw/arm/imx25_pdk.c
> index 9f3ee14739..65e1768663 100644
> --- a/hw/arm/imx25_pdk.c
> +++ b/hw/arm/imx25_pdk.c
> @@ -132,15 +132,6 @@ static void imx25_pdk_init(MachineState *machine)
>       */
>      if (!qtest_enabled()) {
>          arm_load_kernel(&s->soc.cpu, &imx25_pdk_binfo);
> -    } else {
> -        /*
> -         * This I2C device doesn't exist on the real board.
> -         * We add it here (only on qtest usage) to be able to do a bit
> -         * of simple qtest. See "make check" for details.
> -         */
> -        i2c_create_slave((I2CBus *)qdev_get_child_bus(DEVICE(&s->soc.i2c[0]),
> -                                                      "i2c-bus.0"),
> -                         "ds1338", 0x68);
>      }
>  }
>  
> diff --git a/tests/ds1338-test.c b/tests/ds1338-test.c
> index 88f829f241..bd72a159cb 100644
> --- a/tests/ds1338-test.c
> +++ b/tests/ds1338-test.c
> @@ -54,7 +54,7 @@ int main(int argc, char **argv)
>  
>      g_test_init(&argc, &argv, NULL);
>  
> -    s = qtest_start("-display none -machine imx25-pdk");
> +    s = qtest_start("-display none -machine imx25-pdk -device ds1338,address=0x68");
>      i2c = imx_i2c_create(s, IMX25_I2C_0_BASE);
>      addr = DS1338_ADDR;

Reviewed-by: Thomas Huth <thuth@redhat.com>

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [Qemu-devel] [PATCH 06/13] imx25-pdk: create ds1338 for qtest inside the test
  2019-04-09  9:54   ` [Qemu-devel] [PATCH 06/13] imx25-pdk: create ds1338 for qtest inside the test Thomas Huth
@ 2019-04-09  9:54     ` Thomas Huth
  0 siblings, 0 replies; 10+ messages in thread
From: Thomas Huth @ 2019-04-09  9:54 UTC (permalink / raw)
  To: Paolo Bonzini, qemu-devel

On 18/03/2019 18.15, Paolo Bonzini wrote:
> There is no need to have a test device created by the board.
> Instead, create it in the qtest so that we will be able to run
> it on other boards too.
> 
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> ---
>  hw/arm/imx25_pdk.c  | 9 ---------
>  tests/ds1338-test.c | 2 +-
>  2 files changed, 1 insertion(+), 10 deletions(-)
> 
> diff --git a/hw/arm/imx25_pdk.c b/hw/arm/imx25_pdk.c
> index 9f3ee14739..65e1768663 100644
> --- a/hw/arm/imx25_pdk.c
> +++ b/hw/arm/imx25_pdk.c
> @@ -132,15 +132,6 @@ static void imx25_pdk_init(MachineState *machine)
>       */
>      if (!qtest_enabled()) {
>          arm_load_kernel(&s->soc.cpu, &imx25_pdk_binfo);
> -    } else {
> -        /*
> -         * This I2C device doesn't exist on the real board.
> -         * We add it here (only on qtest usage) to be able to do a bit
> -         * of simple qtest. See "make check" for details.
> -         */
> -        i2c_create_slave((I2CBus *)qdev_get_child_bus(DEVICE(&s->soc.i2c[0]),
> -                                                      "i2c-bus.0"),
> -                         "ds1338", 0x68);
>      }
>  }
>  
> diff --git a/tests/ds1338-test.c b/tests/ds1338-test.c
> index 88f829f241..bd72a159cb 100644
> --- a/tests/ds1338-test.c
> +++ b/tests/ds1338-test.c
> @@ -54,7 +54,7 @@ int main(int argc, char **argv)
>  
>      g_test_init(&argc, &argv, NULL);
>  
> -    s = qtest_start("-display none -machine imx25-pdk");
> +    s = qtest_start("-display none -machine imx25-pdk -device ds1338,address=0x68");
>      i2c = imx_i2c_create(s, IMX25_I2C_0_BASE);
>      addr = DS1338_ADDR;

Reviewed-by: Thomas Huth <thuth@redhat.com>



^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [Qemu-devel] [PATCH 03/13] libqos: move common i2c code to libqos
  2019-04-09  9:42   ` [Qemu-devel] [PATCH 03/13] libqos: move common i2c code to libqos Thomas Huth
  2019-04-09  9:42     ` Thomas Huth
@ 2019-04-10 12:19     ` Paolo Bonzini
  2019-04-10 12:19       ` Paolo Bonzini
  1 sibling, 1 reply; 10+ messages in thread
From: Paolo Bonzini @ 2019-04-10 12:19 UTC (permalink / raw)
  To: Thomas Huth, qemu-devel

On 09/04/19 11:42, Thomas Huth wrote:
>> -static void tmp105_set16(I2CAdapter *i2c, uint8_t addr, uint8_t reg,
>> -                         uint16_t value)
>> -{
>> -    uint8_t cmd[3];
>> -    uint8_t resp[2];
>> -
>> -    cmd[0] = reg;
>> -    cmd[1] = value >> 8;
>> -    cmd[2] = value & 255;
>> -    i2c_send(i2c, addr, cmd, 3);
>> -    i2c_recv(i2c, addr, resp, 2);
>> -    g_assert_cmphex(resp[0], ==, cmd[1]);
>> -    g_assert_cmphex(resp[1], ==, cmd[2]);
>> -}
> ... but the old set8/16 functions also used i2c_recv() and
> g_assert_cmphex() ... shouldn't this be added to the new functions, too?

That is dependent on the actual device you are working with.  I probably
should add some code to the tmp105 test that tests this behavior too.

Paolo

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [Qemu-devel] [PATCH 03/13] libqos: move common i2c code to libqos
  2019-04-10 12:19     ` Paolo Bonzini
@ 2019-04-10 12:19       ` Paolo Bonzini
  0 siblings, 0 replies; 10+ messages in thread
From: Paolo Bonzini @ 2019-04-10 12:19 UTC (permalink / raw)
  To: Thomas Huth, qemu-devel

On 09/04/19 11:42, Thomas Huth wrote:
>> -static void tmp105_set16(I2CAdapter *i2c, uint8_t addr, uint8_t reg,
>> -                         uint16_t value)
>> -{
>> -    uint8_t cmd[3];
>> -    uint8_t resp[2];
>> -
>> -    cmd[0] = reg;
>> -    cmd[1] = value >> 8;
>> -    cmd[2] = value & 255;
>> -    i2c_send(i2c, addr, cmd, 3);
>> -    i2c_recv(i2c, addr, resp, 2);
>> -    g_assert_cmphex(resp[0], ==, cmd[1]);
>> -    g_assert_cmphex(resp[1], ==, cmd[2]);
>> -}
> ... but the old set8/16 functions also used i2c_recv() and
> g_assert_cmphex() ... shouldn't this be added to the new functions, too?

That is dependent on the actual device you are working with.  I probably
should add some code to the tmp105 test that tests this behavior too.

Paolo


^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2019-04-10 12:21 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <20190318171521.8524-1-pbonzini@redhat.com>
     [not found] ` <20190318171521.8524-3-pbonzini@redhat.com>
2019-04-09  9:27   ` [Qemu-devel] [PATCH 02/13] qgraph: fix qos_node_contains with options Thomas Huth
2019-04-09  9:27     ` Thomas Huth
     [not found] ` <20190318171521.8524-4-pbonzini@redhat.com>
2019-04-09  9:42   ` [Qemu-devel] [PATCH 03/13] libqos: move common i2c code to libqos Thomas Huth
2019-04-09  9:42     ` Thomas Huth
2019-04-10 12:19     ` Paolo Bonzini
2019-04-10 12:19       ` Paolo Bonzini
     [not found] ` <20190318171521.8524-6-pbonzini@redhat.com>
2019-04-09  9:50   ` [Qemu-devel] [PATCH 05/13] pca9552-test: do not rely on state across tests Thomas Huth
2019-04-09  9:50     ` Thomas Huth
     [not found] ` <20190318171521.8524-7-pbonzini@redhat.com>
2019-04-09  9:54   ` [Qemu-devel] [PATCH 06/13] imx25-pdk: create ds1338 for qtest inside the test Thomas Huth
2019-04-09  9:54     ` 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).