Patchwork Fix qjson test of solidus encoding

login
register
mail settings
Submitter Jan Kiszka
Date Aug. 26, 2011, 5:52 p.m.
Message ID <4E57DD4B.4090302@siemens.com>
Download mbox | patch
Permalink /patch/111810/
State New
Headers show

Comments

Jan Kiszka - Aug. 26, 2011, 5:52 p.m.
On 2011-08-26 19:43, Luiz Capitulino wrote:
> On Fri, 26 Aug 2011 18:48:52 +0200
> Jan Kiszka <jan.kiszka@siemens.com> wrote:
> 
>> Hi all,
>>
>> current master has some qregressions:
>>
>> # ./check-qdict 
>> Running suite(s): QDict test-suite
>> 93%: Checks: 16, Failures: 1, Errors: 0
>> check-qdict.c:289:F:Stress Test:qdict_stress_test:0: Assertion 'test_file != NULL' failed
> 
> I guess you build qemu from a different directory, right? This test only
> works from the source dir. I'll fix it (actually I thought I had already fixed it!).

Yes, found that reason already. Works fine when fed with the test data
as expected.

> 
>> # ./check-qjson 
>> Running suite(s): QJSON test-suite
>> 95%: Checks: 21, Failures: 1, Errors: 0
>> check-qjson.c:59:F:String Literals:escaped_string:0: / != \/
> 
> I found this problem while reading the parser code and added the test
> so that we don't forget fixing it. However, at the time I looked at the
> issue, I didn't know how to fix it.
> 
> Michael, would you mind to take a look at it?

After reading the spec I tend to think it's a test bug:

-------8<-------

"\/" is supposed to be decoded as "/", but there is no need to encode
"/" via escape. Fix the existing test and add a second one expressing
this.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
---
 check-qjson.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)
Michael Roth - Aug. 29, 2011, 2:19 p.m.
On 08/26/2011 12:52 PM, Jan Kiszka wrote:
> On 2011-08-26 19:43, Luiz Capitulino wrote:
>> On Fri, 26 Aug 2011 18:48:52 +0200
>> Jan Kiszka<jan.kiszka@siemens.com>  wrote:
>>
>>> Hi all,
>>>
>>> current master has some qregressions:
>>>
>>> # ./check-qdict
>>> Running suite(s): QDict test-suite
>>> 93%: Checks: 16, Failures: 1, Errors: 0
>>> check-qdict.c:289:F:Stress Test:qdict_stress_test:0: Assertion 'test_file != NULL' failed
>>
>> I guess you build qemu from a different directory, right? This test only
>> works from the source dir. I'll fix it (actually I thought I had already fixed it!).
>
> Yes, found that reason already. Works fine when fed with the test data
> as expected.
>
>>
>>> # ./check-qjson
>>> Running suite(s): QJSON test-suite
>>> 95%: Checks: 21, Failures: 1, Errors: 0
>>> check-qjson.c:59:F:String Literals:escaped_string:0: / != \/
>>
>> I found this problem while reading the parser code and added the test
>> so that we don't forget fixing it. However, at the time I looked at the
>> issue, I didn't know how to fix it.
>>
>> Michael, would you mind to take a look at it?
>
> After reading the spec I tend to think it's a test bug:
>
> -------8<-------
>
> "\/" is supposed to be decoded as "/", but there is no need to encode
> "/" via escape. Fix the existing test and add a second one expressing
> this.
>
> Signed-off-by: Jan Kiszka<jan.kiszka@siemens.com>
> ---
>   check-qjson.c |    3 ++-
>   1 files changed, 2 insertions(+), 1 deletions(-)
>
> diff --git a/check-qjson.c b/check-qjson.c
> index 64fcdcb..36d4ac2 100644
> --- a/check-qjson.c
> +++ b/check-qjson.c
> @@ -33,7 +33,8 @@ START_TEST(escaped_string)
>           { "\"\\n\"", "\n" },
>           { "\"\\r\"", "\r" },
>           { "\"\\t\"", "\t" },
> -        { "\"\\/\"", "\\/" },
> +        { "\"/\"", "/" },
> +        { "\"\\/\"", "/", .skip = 1 },
>           { "\"\\\\\"", "\\" },
>           { "\"\\\"\"", "\"" },
>           { "\"hello world \\\"embedded string\\\"\"",

Acked-by: Michael Roth <mdroth@linux.vnet.ibm.com>
Luiz Capitulino - Aug. 29, 2011, 4:58 p.m.
On Mon, 29 Aug 2011 09:19:30 -0500
Michael Roth <mdroth@linux.vnet.ibm.com> wrote:

> On 08/26/2011 12:52 PM, Jan Kiszka wrote:
> > On 2011-08-26 19:43, Luiz Capitulino wrote:
> >> On Fri, 26 Aug 2011 18:48:52 +0200
> >> Jan Kiszka<jan.kiszka@siemens.com>  wrote:
> >>
> >>> Hi all,
> >>>
> >>> current master has some qregressions:
> >>>
> >>> # ./check-qdict
> >>> Running suite(s): QDict test-suite
> >>> 93%: Checks: 16, Failures: 1, Errors: 0
> >>> check-qdict.c:289:F:Stress Test:qdict_stress_test:0: Assertion 'test_file != NULL' failed
> >>
> >> I guess you build qemu from a different directory, right? This test only
> >> works from the source dir. I'll fix it (actually I thought I had already fixed it!).
> >
> > Yes, found that reason already. Works fine when fed with the test data
> > as expected.
> >
> >>
> >>> # ./check-qjson
> >>> Running suite(s): QJSON test-suite
> >>> 95%: Checks: 21, Failures: 1, Errors: 0
> >>> check-qjson.c:59:F:String Literals:escaped_string:0: / != \/
> >>
> >> I found this problem while reading the parser code and added the test
> >> so that we don't forget fixing it. However, at the time I looked at the
> >> issue, I didn't know how to fix it.
> >>
> >> Michael, would you mind to take a look at it?
> >
> > After reading the spec I tend to think it's a test bug:
> >
> > -------8<-------
> >
> > "\/" is supposed to be decoded as "/", but there is no need to encode
> > "/" via escape. Fix the existing test and add a second one expressing
> > this.
> >
> > Signed-off-by: Jan Kiszka<jan.kiszka@siemens.com>
> > ---
> >   check-qjson.c |    3 ++-
> >   1 files changed, 2 insertions(+), 1 deletions(-)
> >
> > diff --git a/check-qjson.c b/check-qjson.c
> > index 64fcdcb..36d4ac2 100644
> > --- a/check-qjson.c
> > +++ b/check-qjson.c
> > @@ -33,7 +33,8 @@ START_TEST(escaped_string)
> >           { "\"\\n\"", "\n" },
> >           { "\"\\r\"", "\r" },
> >           { "\"\\t\"", "\t" },
> > -        { "\"\\/\"", "\\/" },
> > +        { "\"/\"", "/" },
> > +        { "\"\\/\"", "/", .skip = 1 },
> >           { "\"\\\\\"", "\\" },
> >           { "\"\\\"\"", "\"" },
> >           { "\"hello world \\\"embedded string\\\"\"",
> 
> Acked-by: Michael Roth <mdroth@linux.vnet.ibm.com>

Applied to the qmp branch, thanks.

Patch

diff --git a/check-qjson.c b/check-qjson.c
index 64fcdcb..36d4ac2 100644
--- a/check-qjson.c
+++ b/check-qjson.c
@@ -33,7 +33,8 @@  START_TEST(escaped_string)
         { "\"\\n\"", "\n" },
         { "\"\\r\"", "\r" },
         { "\"\\t\"", "\t" },
-        { "\"\\/\"", "\\/" },
+        { "\"/\"", "/" },
+        { "\"\\/\"", "/", .skip = 1 },
         { "\"\\\\\"", "\\" },
         { "\"\\\"\"", "\"" },
         { "\"hello world \\\"embedded string\\\"\"",