From 6974ccd542d11ae5fb1e56dd3d753f2de5cc097e Mon Sep 17 00:00:00 2001 From: Markus Armbruster Date: Sat, 27 Jul 2013 17:41:58 +0200 Subject: qapi.py: Fix schema parser to check syntax systematically Fixes at least the following parser bugs: * accepts any token in place of a colon * treats comma as optional * crashes when closing braces or brackets are missing Signed-off-by: Markus Armbruster Reviewed-by: Eric Blake Message-id: 1374939721-7876-7-git-send-email-armbru@redhat.com Signed-off-by: Anthony Liguori --- tests/qapi-schema/missing-colon.err | 1 + tests/qapi-schema/missing-colon.exit | 2 +- tests/qapi-schema/missing-colon.out | 3 --- tests/qapi-schema/missing-comma-list.err | 1 + tests/qapi-schema/missing-comma-list.exit | 2 +- tests/qapi-schema/missing-comma-list.out | 3 --- tests/qapi-schema/missing-comma-object.err | 1 + tests/qapi-schema/missing-comma-object.exit | 2 +- tests/qapi-schema/missing-comma-object.out | 3 --- tests/qapi-schema/trailing-comma-list.err | 1 + tests/qapi-schema/trailing-comma-list.exit | 2 +- tests/qapi-schema/trailing-comma-list.out | 3 --- tests/qapi-schema/trailing-comma-object.err | 1 + tests/qapi-schema/trailing-comma-object.exit | 2 +- tests/qapi-schema/trailing-comma-object.out | 3 --- tests/qapi-schema/unclosed-list.err | 2 +- tests/qapi-schema/unclosed-object.err | 2 +- 17 files changed, 12 insertions(+), 22 deletions(-) (limited to 'tests') diff --git a/tests/qapi-schema/missing-colon.err b/tests/qapi-schema/missing-colon.err index e69de29bb2..9f2a35515c 100644 --- a/tests/qapi-schema/missing-colon.err +++ b/tests/qapi-schema/missing-colon.err @@ -0,0 +1 @@ +:1:10: Expected ":" diff --git a/tests/qapi-schema/missing-colon.exit b/tests/qapi-schema/missing-colon.exit index 573541ac97..d00491fd7e 100644 --- a/tests/qapi-schema/missing-colon.exit +++ b/tests/qapi-schema/missing-colon.exit @@ -1 +1 @@ -0 +1 diff --git a/tests/qapi-schema/missing-colon.out b/tests/qapi-schema/missing-colon.out index e67068c5a0..e69de29bb2 100644 --- a/tests/qapi-schema/missing-colon.out +++ b/tests/qapi-schema/missing-colon.out @@ -1,3 +0,0 @@ -[OrderedDict([('enum', None), ('data', ['good', 'bad', 'ugly'])])] -[None] -[] diff --git a/tests/qapi-schema/missing-comma-list.err b/tests/qapi-schema/missing-comma-list.err index e69de29bb2..4fe0700195 100644 --- a/tests/qapi-schema/missing-comma-list.err +++ b/tests/qapi-schema/missing-comma-list.err @@ -0,0 +1 @@ +:2:20: Expected "," or "]" diff --git a/tests/qapi-schema/missing-comma-list.exit b/tests/qapi-schema/missing-comma-list.exit index 573541ac97..d00491fd7e 100644 --- a/tests/qapi-schema/missing-comma-list.exit +++ b/tests/qapi-schema/missing-comma-list.exit @@ -1 +1 @@ -0 +1 diff --git a/tests/qapi-schema/missing-comma-list.out b/tests/qapi-schema/missing-comma-list.out index e3bd904453..e69de29bb2 100644 --- a/tests/qapi-schema/missing-comma-list.out +++ b/tests/qapi-schema/missing-comma-list.out @@ -1,3 +0,0 @@ -[OrderedDict([('enum', 'Status'), ('data', ['good', 'bad', 'ugly'])])] -['Status'] -[] diff --git a/tests/qapi-schema/missing-comma-object.err b/tests/qapi-schema/missing-comma-object.err index e69de29bb2..b0121b5f3a 100644 --- a/tests/qapi-schema/missing-comma-object.err +++ b/tests/qapi-schema/missing-comma-object.err @@ -0,0 +1 @@ +:2:3: Expected "," or "}" diff --git a/tests/qapi-schema/missing-comma-object.exit b/tests/qapi-schema/missing-comma-object.exit index 573541ac97..d00491fd7e 100644 --- a/tests/qapi-schema/missing-comma-object.exit +++ b/tests/qapi-schema/missing-comma-object.exit @@ -1 +1 @@ -0 +1 diff --git a/tests/qapi-schema/missing-comma-object.out b/tests/qapi-schema/missing-comma-object.out index e3bd904453..e69de29bb2 100644 --- a/tests/qapi-schema/missing-comma-object.out +++ b/tests/qapi-schema/missing-comma-object.out @@ -1,3 +0,0 @@ -[OrderedDict([('enum', 'Status'), ('data', ['good', 'bad', 'ugly'])])] -['Status'] -[] diff --git a/tests/qapi-schema/trailing-comma-list.err b/tests/qapi-schema/trailing-comma-list.err index e69de29bb2..ff839a34e9 100644 --- a/tests/qapi-schema/trailing-comma-list.err +++ b/tests/qapi-schema/trailing-comma-list.err @@ -0,0 +1 @@ +:2:36: Expected "{", "[" or string diff --git a/tests/qapi-schema/trailing-comma-list.exit b/tests/qapi-schema/trailing-comma-list.exit index 573541ac97..d00491fd7e 100644 --- a/tests/qapi-schema/trailing-comma-list.exit +++ b/tests/qapi-schema/trailing-comma-list.exit @@ -1 +1 @@ -0 +1 diff --git a/tests/qapi-schema/trailing-comma-list.out b/tests/qapi-schema/trailing-comma-list.out index e3bd904453..e69de29bb2 100644 --- a/tests/qapi-schema/trailing-comma-list.out +++ b/tests/qapi-schema/trailing-comma-list.out @@ -1,3 +0,0 @@ -[OrderedDict([('enum', 'Status'), ('data', ['good', 'bad', 'ugly'])])] -['Status'] -[] diff --git a/tests/qapi-schema/trailing-comma-object.err b/tests/qapi-schema/trailing-comma-object.err index e69de29bb2..f5409627da 100644 --- a/tests/qapi-schema/trailing-comma-object.err +++ b/tests/qapi-schema/trailing-comma-object.err @@ -0,0 +1 @@ +:2:38: Expected string diff --git a/tests/qapi-schema/trailing-comma-object.exit b/tests/qapi-schema/trailing-comma-object.exit index 573541ac97..d00491fd7e 100644 --- a/tests/qapi-schema/trailing-comma-object.exit +++ b/tests/qapi-schema/trailing-comma-object.exit @@ -1 +1 @@ -0 +1 diff --git a/tests/qapi-schema/trailing-comma-object.out b/tests/qapi-schema/trailing-comma-object.out index e3bd904453..e69de29bb2 100644 --- a/tests/qapi-schema/trailing-comma-object.out +++ b/tests/qapi-schema/trailing-comma-object.out @@ -1,3 +0,0 @@ -[OrderedDict([('enum', 'Status'), ('data', ['good', 'bad', 'ugly'])])] -['Status'] -[] diff --git a/tests/qapi-schema/unclosed-list.err b/tests/qapi-schema/unclosed-list.err index f9a9c2a0f5..0e837a7fad 100644 --- a/tests/qapi-schema/unclosed-list.err +++ b/tests/qapi-schema/unclosed-list.err @@ -1 +1 @@ -Crashed: +:1:20: Expected "," or "]" diff --git a/tests/qapi-schema/unclosed-object.err b/tests/qapi-schema/unclosed-object.err index f9a9c2a0f5..e6dc9501dc 100644 --- a/tests/qapi-schema/unclosed-object.err +++ b/tests/qapi-schema/unclosed-object.err @@ -1 +1 @@ -Crashed: +:1:21: Expected "," or "}" -- cgit v1.2.3