Patchwork Fix qjson test of solidus encoding

login
register
mail settings
Submitter Luiz Capitulino
Date Aug. 26, 2011, 5:58 p.m.
Message ID <20110826145815.3b4242ef@doriath>
Download mbox | patch
Permalink /patch/111811/
State New
Headers show

Comments

Luiz Capitulino - Aug. 26, 2011, 5:58 p.m.
On Fri, 26 Aug 2011 19:52:11 +0200
Jan Kiszka <jan.kiszka@siemens.com> 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.

Fix below.

> >> # ./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:

Seems good to me. What do you think Anthony/Michael?

> 
> -------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\\\"\"",
Luiz Capitulino - Aug. 26, 2011, 5:58 p.m.
On Fri, 26 Aug 2011 14:58:15 -0300
Luiz Capitulino <lcapitulino@redhat.com> wrote:

> On Fri, 26 Aug 2011 19:52:11 +0200
> Jan Kiszka <jan.kiszka@siemens.com> 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.
> 
> Fix below.
> 
> > >> # ./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:
> 
> Seems good to me. What do you think Anthony/Michael?

Read: please ack :)

> 
> > 
> > -------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\\\"\"",
> 
> diff --git a/configure b/configure
> index 1340c33..7fab4de 100755
> --- a/configure
> +++ b/configure
> @@ -3601,7 +3601,7 @@ DIRS="$DIRS roms/seabios roms/vgabios"
>  DIRS="$DIRS fsdev ui"
>  DIRS="$DIRS qapi"
>  DIRS="$DIRS qga"
> -FILES="Makefile tests/Makefile"
> +FILES="Makefile tests/Makefile qdict-test-data.txt"
>  FILES="$FILES tests/cris/Makefile tests/cris/.gdbinit"
>  FILES="$FILES pc-bios/optionrom/Makefile pc-bios/keymaps"
>  FILES="$FILES pc-bios/spapr-rtas/Makefile"

Patch

diff --git a/configure b/configure
index 1340c33..7fab4de 100755
--- a/configure
+++ b/configure
@@ -3601,7 +3601,7 @@  DIRS="$DIRS roms/seabios roms/vgabios"
 DIRS="$DIRS fsdev ui"
 DIRS="$DIRS qapi"
 DIRS="$DIRS qga"
-FILES="Makefile tests/Makefile"
+FILES="Makefile tests/Makefile qdict-test-data.txt"
 FILES="$FILES tests/cris/Makefile tests/cris/.gdbinit"
 FILES="$FILES pc-bios/optionrom/Makefile pc-bios/keymaps"
 FILES="$FILES pc-bios/spapr-rtas/Makefile"