* [Qemu-devel] [PATCH] qdev-monitor-test: simplify using g_assert_cmpstr()
@ 2013-12-18 16:34 Stefan Hajnoczi
2013-12-18 17:11 ` Markus Armbruster
2013-12-18 18:31 ` Andreas Färber
0 siblings, 2 replies; 5+ messages in thread
From: Stefan Hajnoczi @ 2013-12-18 16:34 UTC (permalink / raw)
To: qemu-devel; +Cc: Markus Armbruster
Use g_assert_cmpstr() instead of combining g_assert() and strcmp(3).
This simplifies the code since we no longer have to play games to
distinguish NULL from "" using "(null)".
gcc extension haters will also be happy that ?: was dropped.
Suggested-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
---
tests/qdev-monitor-test.c | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/tests/qdev-monitor-test.c b/tests/qdev-monitor-test.c
index ba7f9cc..eefaab8 100644
--- a/tests/qdev-monitor-test.c
+++ b/tests/qdev-monitor-test.c
@@ -32,8 +32,9 @@ static void test_device_add(void)
"}}");
g_assert(response);
error = qdict_get_qdict(response, "error");
- g_assert(!strcmp(qdict_get_try_str(error, "desc") ?: "",
- "Device needs media, but drive is empty"));
+ g_assert_cmpstr(qdict_get_try_str(error, "desc"),
+ ==,
+ "Device needs media, but drive is empty");
QDECREF(response);
/* Delete the drive */
@@ -42,7 +43,7 @@ static void test_device_add(void)
" \"command-line\": \"drive_del drive0\""
"}}");
g_assert(response);
- g_assert(!strcmp(qdict_get_try_str(response, "return") ?: "(null)", ""));
+ g_assert_cmpstr(qdict_get_try_str(response, "return"), ==, "");
QDECREF(response);
/* Try to re-add the drive. This fails with duplicate IDs if a leaked
@@ -53,8 +54,7 @@ static void test_device_add(void)
" \"command-line\": \"drive_add pci-addr=auto if=none,id=drive0\""
"}}");
g_assert(response);
- g_assert(!strcmp(qdict_get_try_str(response, "return") ?: "",
- "OK\r\n"));
+ g_assert_cmpstr(qdict_get_try_str(response, "return"), ==, "OK\r\n");
QDECREF(response);
qtest_end();
--
1.8.4.2
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [Qemu-devel] [PATCH] qdev-monitor-test: simplify using g_assert_cmpstr()
2013-12-18 16:34 [Qemu-devel] [PATCH] qdev-monitor-test: simplify using g_assert_cmpstr() Stefan Hajnoczi
@ 2013-12-18 17:11 ` Markus Armbruster
2013-12-18 17:49 ` Andreas Färber
2013-12-18 18:31 ` Andreas Färber
1 sibling, 1 reply; 5+ messages in thread
From: Markus Armbruster @ 2013-12-18 17:11 UTC (permalink / raw)
To: Stefan Hajnoczi; +Cc: qemu-devel, Andreas Färber
Stefan Hajnoczi <stefanha@redhat.com> writes:
> Use g_assert_cmpstr() instead of combining g_assert() and strcmp(3).
> This simplifies the code since we no longer have to play games to
> distinguish NULL from "" using "(null)".
>
> gcc extension haters will also be happy that ?: was dropped.
>
> Suggested-by: Markus Armbruster <armbru@redhat.com>
> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
> ---
> tests/qdev-monitor-test.c | 10 +++++-----
> 1 file changed, 5 insertions(+), 5 deletions(-)
>
> diff --git a/tests/qdev-monitor-test.c b/tests/qdev-monitor-test.c
> index ba7f9cc..eefaab8 100644
> --- a/tests/qdev-monitor-test.c
> +++ b/tests/qdev-monitor-test.c
> @@ -32,8 +32,9 @@ static void test_device_add(void)
> "}}");
> g_assert(response);
> error = qdict_get_qdict(response, "error");
> - g_assert(!strcmp(qdict_get_try_str(error, "desc") ?: "",
> - "Device needs media, but drive is empty"));
> + g_assert_cmpstr(qdict_get_try_str(error, "desc"),
> + ==,
> + "Device needs media, but drive is empty");
> QDECREF(response);
>
> /* Delete the drive */
Outside this patch's scope, but here goes anyway: why do we test the
value of member desc? Isn't that awfully fragile?
It broke once already, in Andreas's commit 75884af "virtio-blk: Convert
to QOM realize". Andreas, do you remember why you tossed the class ==
GenericError check instead of the desc check?
> @@ -42,7 +43,7 @@ static void test_device_add(void)
> " \"command-line\": \"drive_del drive0\""
> "}}");
> g_assert(response);
> - g_assert(!strcmp(qdict_get_try_str(response, "return") ?: "(null)", ""));
> + g_assert_cmpstr(qdict_get_try_str(response, "return"), ==, "");
> QDECREF(response);
>
> /* Try to re-add the drive. This fails with duplicate IDs if a leaked
> @@ -53,8 +54,7 @@ static void test_device_add(void)
> " \"command-line\": \"drive_add pci-addr=auto if=none,id=drive0\""
> "}}");
> g_assert(response);
> - g_assert(!strcmp(qdict_get_try_str(response, "return") ?: "",
> - "OK\r\n"));
> + g_assert_cmpstr(qdict_get_try_str(response, "return"), ==, "OK\r\n");
> QDECREF(response);
>
> qtest_end();
Reviewed-by: Markus Armbruster <armbru@redhat.com>
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Qemu-devel] [PATCH] qdev-monitor-test: simplify using g_assert_cmpstr()
2013-12-18 17:11 ` Markus Armbruster
@ 2013-12-18 17:49 ` Andreas Färber
0 siblings, 0 replies; 5+ messages in thread
From: Andreas Färber @ 2013-12-18 17:49 UTC (permalink / raw)
To: Markus Armbruster, Stefan Hajnoczi; +Cc: Paolo Bonzini, qemu-devel
Am 18.12.2013 18:11, schrieb Markus Armbruster:
> Stefan Hajnoczi <stefanha@redhat.com> writes:
>
>> Use g_assert_cmpstr() instead of combining g_assert() and strcmp(3).
>> This simplifies the code since we no longer have to play games to
>> distinguish NULL from "" using "(null)".
>>
>> gcc extension haters will also be happy that ?: was dropped.
>>
>> Suggested-by: Markus Armbruster <armbru@redhat.com>
>> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
>> ---
>> tests/qdev-monitor-test.c | 10 +++++-----
>> 1 file changed, 5 insertions(+), 5 deletions(-)
>>
>> diff --git a/tests/qdev-monitor-test.c b/tests/qdev-monitor-test.c
>> index ba7f9cc..eefaab8 100644
>> --- a/tests/qdev-monitor-test.c
>> +++ b/tests/qdev-monitor-test.c
>> @@ -32,8 +32,9 @@ static void test_device_add(void)
>> "}}");
>> g_assert(response);
>> error = qdict_get_qdict(response, "error");
>> - g_assert(!strcmp(qdict_get_try_str(error, "desc") ?: "",
>> - "Device needs media, but drive is empty"));
>> + g_assert_cmpstr(qdict_get_try_str(error, "desc"),
>> + ==,
>> + "Device needs media, but drive is empty");
>> QDECREF(response);
>>
>> /* Delete the drive */
>
> Outside this patch's scope, but here goes anyway: why do we test the
> value of member desc? Isn't that awfully fragile?
>
> It broke once already, in Andreas's commit 75884af "virtio-blk: Convert
> to QOM realize". Andreas, do you remember why you tossed the class ==
> GenericError check instead of the desc check?
/me points to bonzini, who rebased it on my behalf. :)
I do agree that testing error descriptions is fragile in that people may
not think of running make check on a trivial textual change, e.g. typo fix.
Andreas
>
>> @@ -42,7 +43,7 @@ static void test_device_add(void)
>> " \"command-line\": \"drive_del drive0\""
>> "}}");
>> g_assert(response);
>> - g_assert(!strcmp(qdict_get_try_str(response, "return") ?: "(null)", ""));
>> + g_assert_cmpstr(qdict_get_try_str(response, "return"), ==, "");
>> QDECREF(response);
>>
>> /* Try to re-add the drive. This fails with duplicate IDs if a leaked
>> @@ -53,8 +54,7 @@ static void test_device_add(void)
>> " \"command-line\": \"drive_add pci-addr=auto if=none,id=drive0\""
>> "}}");
>> g_assert(response);
>> - g_assert(!strcmp(qdict_get_try_str(response, "return") ?: "",
>> - "OK\r\n"));
>> + g_assert_cmpstr(qdict_get_try_str(response, "return"), ==, "OK\r\n");
>> QDECREF(response);
>>
>> qtest_end();
>
> Reviewed-by: Markus Armbruster <armbru@redhat.com>
>
--
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Qemu-devel] [PATCH] qdev-monitor-test: simplify using g_assert_cmpstr()
2013-12-18 16:34 [Qemu-devel] [PATCH] qdev-monitor-test: simplify using g_assert_cmpstr() Stefan Hajnoczi
2013-12-18 17:11 ` Markus Armbruster
@ 2013-12-18 18:31 ` Andreas Färber
2013-12-19 15:38 ` Stefan Hajnoczi
1 sibling, 1 reply; 5+ messages in thread
From: Andreas Färber @ 2013-12-18 18:31 UTC (permalink / raw)
To: Stefan Hajnoczi, qemu-devel; +Cc: Markus Armbruster
Am 18.12.2013 17:34, schrieb Stefan Hajnoczi:
> Use g_assert_cmpstr() instead of combining g_assert() and strcmp(3).
I vaguely remember that some such handy function was introduced only
after the minimum GLib version we require. Did you check on that?
But IIRC we already have higher requirements for qtest that for the
non-check code so it might not really matter...
Andreas
> This simplifies the code since we no longer have to play games to
> distinguish NULL from "" using "(null)".
>
> gcc extension haters will also be happy that ?: was dropped.
>
> Suggested-by: Markus Armbruster <armbru@redhat.com>
> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
> ---
> tests/qdev-monitor-test.c | 10 +++++-----
> 1 file changed, 5 insertions(+), 5 deletions(-)
>
> diff --git a/tests/qdev-monitor-test.c b/tests/qdev-monitor-test.c
> index ba7f9cc..eefaab8 100644
> --- a/tests/qdev-monitor-test.c
> +++ b/tests/qdev-monitor-test.c
> @@ -32,8 +32,9 @@ static void test_device_add(void)
> "}}");
> g_assert(response);
> error = qdict_get_qdict(response, "error");
> - g_assert(!strcmp(qdict_get_try_str(error, "desc") ?: "",
> - "Device needs media, but drive is empty"));
> + g_assert_cmpstr(qdict_get_try_str(error, "desc"),
> + ==,
> + "Device needs media, but drive is empty");
> QDECREF(response);
>
> /* Delete the drive */
> @@ -42,7 +43,7 @@ static void test_device_add(void)
> " \"command-line\": \"drive_del drive0\""
> "}}");
> g_assert(response);
> - g_assert(!strcmp(qdict_get_try_str(response, "return") ?: "(null)", ""));
> + g_assert_cmpstr(qdict_get_try_str(response, "return"), ==, "");
> QDECREF(response);
>
> /* Try to re-add the drive. This fails with duplicate IDs if a leaked
> @@ -53,8 +54,7 @@ static void test_device_add(void)
> " \"command-line\": \"drive_add pci-addr=auto if=none,id=drive0\""
> "}}");
> g_assert(response);
> - g_assert(!strcmp(qdict_get_try_str(response, "return") ?: "",
> - "OK\r\n"));
> + g_assert_cmpstr(qdict_get_try_str(response, "return"), ==, "OK\r\n");
> QDECREF(response);
>
> qtest_end();
>
--
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Qemu-devel] [PATCH] qdev-monitor-test: simplify using g_assert_cmpstr()
2013-12-18 18:31 ` Andreas Färber
@ 2013-12-19 15:38 ` Stefan Hajnoczi
0 siblings, 0 replies; 5+ messages in thread
From: Stefan Hajnoczi @ 2013-12-19 15:38 UTC (permalink / raw)
To: Andreas Färber; +Cc: qemu-devel, Markus Armbruster
On Wed, Dec 18, 2013 at 07:31:48PM +0100, Andreas Färber wrote:
> Am 18.12.2013 17:34, schrieb Stefan Hajnoczi:
> > Use g_assert_cmpstr() instead of combining g_assert() and strcmp(3).
>
> I vaguely remember that some such handy function was introduced only
> after the minimum GLib version we require. Did you check on that?
> But IIRC we already have higher requirements for qtest that for the
> non-check code so it might not really matter...
Yes, before using it I did git grep g_assert_cmpstr. It's already used
in many other test cases like tests/check-qjson.c.
Stefan
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2013-12-19 15:38 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-12-18 16:34 [Qemu-devel] [PATCH] qdev-monitor-test: simplify using g_assert_cmpstr() Stefan Hajnoczi
2013-12-18 17:11 ` Markus Armbruster
2013-12-18 17:49 ` Andreas Färber
2013-12-18 18:31 ` Andreas Färber
2013-12-19 15:38 ` Stefan Hajnoczi
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).