[12/20] cpu-plug-test: Don't pass integers as strings to device_add

Message ID 20180712111221.20326-13-armbru@redhat.com
State New
Headers show
Series
  • tests: Compile-time format string checking for libqtest.h
Related show

Commit Message

Markus Armbruster July 12, 2018, 11:12 a.m.
test_plug_with_device_add_x86() plugs Haswell-i386-cpu and
Haswell-x86_64-cpu with device_add.  It passes socket-id, core-id,
thread-id as JSON strings.  The properties are actually integers.

test_plug_with_device_add_coreid() plugs power8_v2.0-spapr-cpu-core
and qemu-s390x-cpu with device_add.  It passes core-id as JSON string.
The properties are actually integers.

Passing JSON string values to integer properties works only due to
device_add implementation accidents.  Fix the test to pass JSON
numbers.  While there, use %u rather than %i with unsigned int.

Cc: Thomas Huth <thuth@redhat.com>
Signed-off-by: Markus Armbruster <armbru@redhat.com>
---
 tests/cpu-plug-test.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

Comments

Philippe Mathieu-Daudé July 12, 2018, 2:31 p.m. | #1
On 07/12/2018 08:12 AM, Markus Armbruster wrote:
> test_plug_with_device_add_x86() plugs Haswell-i386-cpu and
> Haswell-x86_64-cpu with device_add.  It passes socket-id, core-id,
> thread-id as JSON strings.  The properties are actually integers.
> 
> test_plug_with_device_add_coreid() plugs power8_v2.0-spapr-cpu-core
> and qemu-s390x-cpu with device_add.  It passes core-id as JSON string.
> The properties are actually integers.
> 
> Passing JSON string values to integer properties works only due to
> device_add implementation accidents.  Fix the test to pass JSON
> numbers.  While there, use %u rather than %i with unsigned int.
> 
> Cc: Thomas Huth <thuth@redhat.com>
> Signed-off-by: Markus Armbruster <armbru@redhat.com>

Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>

> ---
>  tests/cpu-plug-test.c | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/tests/cpu-plug-test.c b/tests/cpu-plug-test.c
> index 5f39ba0df3..ab3bf6df90 100644
> --- a/tests/cpu-plug-test.c
> +++ b/tests/cpu-plug-test.c
> @@ -88,8 +88,8 @@ static void test_plug_with_device_add_x86(gconstpointer data)
>          for (c = 0; c < td->cores; c++) {
>              for (t = 0; t < td->threads; t++) {
>                  char *id = g_strdup_printf("id-%i-%i-%i", s, c, t);
> -                qtest_qmp_device_add(td->device_model, id, "'socket-id':'%i', "
> -                                     "'core-id':'%i', 'thread-id':'%i'",
> +                qtest_qmp_device_add(td->device_model, id, "'socket-id':%u, "
> +                                     "'core-id':%u, 'thread-id':%u",
>                                       s, c, t);
>                  g_free(id);
>              }
> @@ -114,7 +114,7 @@ static void test_plug_with_device_add_coreid(gconstpointer data)
>  
>      for (c = td->cores; c < td->maxcpus / td->sockets / td->threads; c++) {
>          char *id = g_strdup_printf("id-%i", c);
> -        qtest_qmp_device_add(td->device_model, id, "'core-id':'%i'", c);
> +        qtest_qmp_device_add(td->device_model, id, "'core-id':%u", c);
>          g_free(id);
>      }
>  
>
Thomas Huth July 12, 2018, 3:38 p.m. | #2
On 12.07.2018 13:12, Markus Armbruster wrote:
> test_plug_with_device_add_x86() plugs Haswell-i386-cpu and
> Haswell-x86_64-cpu with device_add.  It passes socket-id, core-id,
> thread-id as JSON strings.  The properties are actually integers.
> 
> test_plug_with_device_add_coreid() plugs power8_v2.0-spapr-cpu-core
> and qemu-s390x-cpu with device_add.  It passes core-id as JSON string.
> The properties are actually integers.
> 
> Passing JSON string values to integer properties works only due to
> device_add implementation accidents.  Fix the test to pass JSON
> numbers.  While there, use %u rather than %i with unsigned int.
> 
> Cc: Thomas Huth <thuth@redhat.com>
> Signed-off-by: Markus Armbruster <armbru@redhat.com>
> ---
>  tests/cpu-plug-test.c | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/tests/cpu-plug-test.c b/tests/cpu-plug-test.c
> index 5f39ba0df3..ab3bf6df90 100644
> --- a/tests/cpu-plug-test.c
> +++ b/tests/cpu-plug-test.c
> @@ -88,8 +88,8 @@ static void test_plug_with_device_add_x86(gconstpointer data)
>          for (c = 0; c < td->cores; c++) {
>              for (t = 0; t < td->threads; t++) {
>                  char *id = g_strdup_printf("id-%i-%i-%i", s, c, t);
> -                qtest_qmp_device_add(td->device_model, id, "'socket-id':'%i', "
> -                                     "'core-id':'%i', 'thread-id':'%i'",
> +                qtest_qmp_device_add(td->device_model, id, "'socket-id':%u, "
> +                                     "'core-id':%u, 'thread-id':%u",
>                                       s, c, t);
>                  g_free(id);
>              }
> @@ -114,7 +114,7 @@ static void test_plug_with_device_add_coreid(gconstpointer data)
>  
>      for (c = td->cores; c < td->maxcpus / td->sockets / td->threads; c++) {
>          char *id = g_strdup_printf("id-%i", c);
> -        qtest_qmp_device_add(td->device_model, id, "'core-id':'%i'", c);
> +        qtest_qmp_device_add(td->device_model, id, "'core-id':%u", c);
>          g_free(id);
>      }

Ooops. Learned something today :-)

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

Patch

diff --git a/tests/cpu-plug-test.c b/tests/cpu-plug-test.c
index 5f39ba0df3..ab3bf6df90 100644
--- a/tests/cpu-plug-test.c
+++ b/tests/cpu-plug-test.c
@@ -88,8 +88,8 @@  static void test_plug_with_device_add_x86(gconstpointer data)
         for (c = 0; c < td->cores; c++) {
             for (t = 0; t < td->threads; t++) {
                 char *id = g_strdup_printf("id-%i-%i-%i", s, c, t);
-                qtest_qmp_device_add(td->device_model, id, "'socket-id':'%i', "
-                                     "'core-id':'%i', 'thread-id':'%i'",
+                qtest_qmp_device_add(td->device_model, id, "'socket-id':%u, "
+                                     "'core-id':%u, 'thread-id':%u",
                                      s, c, t);
                 g_free(id);
             }
@@ -114,7 +114,7 @@  static void test_plug_with_device_add_coreid(gconstpointer data)
 
     for (c = td->cores; c < td->maxcpus / td->sockets / td->threads; c++) {
         char *id = g_strdup_printf("id-%i", c);
-        qtest_qmp_device_add(td->device_model, id, "'core-id':'%i'", c);
+        qtest_qmp_device_add(td->device_model, id, "'core-id':%u", c);
         g_free(id);
     }