qemu-devel
[Top][All Lists]
Advanced

[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!



reply via email to

[Prev in Thread] Current Thread [Next in Thread]