[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 2/3] log: Fix qemu_set_dfilter_ranges() error re
From: |
Markus Armbruster |
Subject: |
Re: [Qemu-devel] [PATCH 2/3] log: Fix qemu_set_dfilter_ranges() error reporting |
Date: |
Thu, 16 Jun 2016 09:40:19 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux) |
Eric Blake <address@hidden> writes:
> On 06/15/2016 11:27 AM, Markus Armbruster wrote:
>> g_error() is not an acceptable way to report errors to the user:
>>
>> $ qemu-system-x86_64 -dfilter 1000+0
>>
>> ** (process:17187): ERROR **: Failed to parse range in: 1000+0
>> Trace/breakpoint trap (core dumped)
>>
>> g_assert() isn't, either:
>>
>> $ qemu-system-x86_64 -dfilter 1000x+64
>> **
>> ERROR:/work/armbru/qemu/util/log.c:180:qemu_set_dfilter_ranges:
>> assertion failed: (e == range_op)
>> Aborted (core dumped)
>
> I see you're trying to improve my range.h patches, and got dragged into
> this stuff.
Yup, except I'd call it "build upon", not "improve".
>> Convert qemu_set_dfilter_ranges() to Error. Rework its deeply nested
>> control flow. Touch up the error messages. Call it with
>> &error_fatal.
>>
>> This also permits testing without a subprocess, so do that.
>>
>> Signed-off-by: Markus Armbruster <address@hidden>
>> ---
>> include/qemu/log.h | 2 +-
>> tests/test-logging.c | 49 ++++++++--------------
>> util/log.c | 113
>> ++++++++++++++++++++++++++-------------------------
>> vl.c | 2 +-
>> 4 files changed, 75 insertions(+), 91 deletions(-)
>>
>
>> + qemu_set_dfilter_ranges("0x1000+onehundred", &err);
>> + error_free_or_abort(&err);
>> +
>> + qemu_set_dfilter_ranges("0x1000+0", &err);
>> + error_free_or_abort(&err);
>> }
>>
>
> Maybe also worth testing "0x" and "0x1000+0x" for being invalid?
The former would add a test for the error handling of
qemu_set_dfilter_ranges()'s other use of qemu_strtoull(). If it wasn't
worth testing before my patch... But I can add a test case anyway, if I
need to respin.
The latter would basically test an additional error path within
qemu_strtoull().
>
> Reviewed-by: Eric Blake <address@hidden>
Thanks!