Message ID | 20180712111221.20326-13-armbru@redhat.com |
---|---|
State | New |
Headers | show |
Series | tests: Compile-time format string checking for libqtest.h | expand |
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); > } > >
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>
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); }
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(-)