[PATCH 11/14] tests/qapi-schema: Clean up positive test for conditionals

Markus Armbruster posted 14 patches 2 years, 9 months ago
Maintainers: Markus Armbruster <armbru@redhat.com>, Michael Roth <michael.roth@amd.com>
[PATCH 11/14] tests/qapi-schema: Clean up positive test for conditionals
Posted by Markus Armbruster 2 years, 9 months ago
Union TestIfUnion is conditional on macros TEST_IF_UNION and
TEST_IF_STRUCT.  It uses TestIfEnum, which is conditional on macro
TEST_IF_ENUM.  If TEST_IF_ENUM and TEST_IF_STRUCT are defined, but
TEST_IF_ENUM isn't, the generated code won't compile.

Command test-if-cmd is conditional an macros TEST_IF_CMD and
TEST_IF_STRUCT, and uses TestIfEnum.  Similar issue.

Event TEST_IF_EVENT is conditional an macros TEST_IF_EVT and
TEST_IF_STRUCT, and uses TestIfEnum.  Similar issue.

Replace the uses of TestIfEnum in the latter two by str.

TestIfUnion is now TestIfEnum's only user.  Change TestIfEnum's
condition to TEST_IF_UNION.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
---
 tests/qapi-schema/qapi-schema-test.json | 6 +++---
 tests/qapi-schema/qapi-schema-test.out  | 8 +++-----
 2 files changed, 6 insertions(+), 8 deletions(-)

diff --git a/tests/qapi-schema/qapi-schema-test.json b/tests/qapi-schema/qapi-schema-test.json
index 5728d4de38..8f0ee95d23 100644
--- a/tests/qapi-schema/qapi-schema-test.json
+++ b/tests/qapi-schema/qapi-schema-test.json
@@ -225,7 +225,7 @@
 
 { 'enum': 'TestIfEnum',
   'data': [ 'foo', { 'name' : 'bar', 'if': 'TEST_IF_ENUM_MEMBER' } ],
-  'if': 'TEST_IF_ENUM' }
+  'if': 'TEST_IF_UNION' }
 
 { 'union': 'TestIfUnion',
   'base': { 'type': 'TestIfEnum' },
@@ -250,7 +250,7 @@
 { 'command': 'test-if-cmd',
   'data': {
     'foo': 'TestIfStruct',
-    'bar': { 'type': 'TestIfEnum', 'if': 'TEST_IF_CMD_ARG' } },
+    'bar': { 'type': 'str', 'if': 'TEST_IF_CMD_ARG' } },
   'returns': 'UserDefThree',
   'if': { 'all': ['TEST_IF_CMD', 'TEST_IF_STRUCT'] } }
 
@@ -258,7 +258,7 @@
 
 { 'event': 'TEST_IF_EVENT',
   'data': { 'foo': 'TestIfStruct',
-            'bar': { 'type': ['TestIfEnum'], 'if': 'TEST_IF_EVT_ARG' } },
+            'bar': { 'type': ['str'], 'if': 'TEST_IF_EVT_ARG' } },
   'if': { 'all': ['TEST_IF_EVT', 'TEST_IF_STRUCT'] } }
 
 { 'event': 'TEST_IF_EVENT2', 'data': {},
diff --git a/tests/qapi-schema/qapi-schema-test.out b/tests/qapi-schema/qapi-schema-test.out
index cbd96f0b24..715f3a3f23 100644
--- a/tests/qapi-schema/qapi-schema-test.out
+++ b/tests/qapi-schema/qapi-schema-test.out
@@ -252,7 +252,7 @@ enum TestIfEnum
     member foo
     member bar
         if TEST_IF_ENUM_MEMBER
-    if TEST_IF_ENUM
+    if TEST_IF_UNION
 object q_obj_TestIfUnion-base
     member type: TestIfEnum optional=False
     if {'all': ['TEST_IF_UNION', 'TEST_IF_STRUCT']}
@@ -283,7 +283,7 @@ command test-if-alternate-cmd q_obj_test-if-alternate-cmd-arg -> None
     if {'all': ['TEST_IF_ALT', 'TEST_IF_STRUCT']}
 object q_obj_test-if-cmd-arg
     member foo: TestIfStruct optional=False
-    member bar: TestIfEnum optional=False
+    member bar: str optional=False
         if TEST_IF_CMD_ARG
     if {'all': ['TEST_IF_CMD', 'TEST_IF_STRUCT']}
 command test-if-cmd q_obj_test-if-cmd-arg -> UserDefThree
@@ -291,11 +291,9 @@ command test-if-cmd q_obj_test-if-cmd-arg -> UserDefThree
     if {'all': ['TEST_IF_CMD', 'TEST_IF_STRUCT']}
 command test-cmd-return-def-three None -> UserDefThree
     gen=True success_response=True boxed=False oob=False preconfig=False
-array TestIfEnumList TestIfEnum
-    if TEST_IF_ENUM
 object q_obj_TEST_IF_EVENT-arg
     member foo: TestIfStruct optional=False
-    member bar: TestIfEnumList optional=False
+    member bar: strList optional=False
         if TEST_IF_EVT_ARG
     if {'all': ['TEST_IF_EVT', 'TEST_IF_STRUCT']}
 event TEST_IF_EVENT q_obj_TEST_IF_EVENT-arg
-- 
2.39.2
Re: [PATCH 11/14] tests/qapi-schema: Clean up positive test for conditionals
Posted by Eric Blake 2 years, 9 months ago
On Thu, Mar 16, 2023 at 08:13:22AM +0100, Markus Armbruster wrote:
> Union TestIfUnion is conditional on macros TEST_IF_UNION and
> TEST_IF_STRUCT.  It uses TestIfEnum, which is conditional on macro
> TEST_IF_ENUM.  If TEST_IF_ENUM and TEST_IF_STRUCT are defined, but
> TEST_IF_ENUM isn't, the generated code won't compile.

s/ENUM/UNION/ in one of these two uses in this sentence.

> 
> Command test-if-cmd is conditional an macros TEST_IF_CMD and
> TEST_IF_STRUCT, and uses TestIfEnum.  Similar issue.
> 
> Event TEST_IF_EVENT is conditional an macros TEST_IF_EVT and
> TEST_IF_STRUCT, and uses TestIfEnum.  Similar issue.
> 
> Replace the uses of TestIfEnum in the latter two by str.
> 
> TestIfUnion is now TestIfEnum's only user.  Change TestIfEnum's
> condition to TEST_IF_UNION.

Fair enough, once the commit message doesn't confuse me in the first
paragraph ;)

> 
> Signed-off-by: Markus Armbruster <armbru@redhat.com>
> ---
>  tests/qapi-schema/qapi-schema-test.json | 6 +++---
>  tests/qapi-schema/qapi-schema-test.out  | 8 +++-----
>  2 files changed, 6 insertions(+), 8 deletions(-)
>

Reviewed-by: Eric Blake <eblake@redhat.com>

-- 
Eric Blake, Principal Software Engineer
Red Hat, Inc.           +1-919-301-3266
Virtualization:  qemu.org | libvirt.org
Re: [PATCH 11/14] tests/qapi-schema: Clean up positive test for conditionals
Posted by Markus Armbruster 2 years, 9 months ago
Eric Blake <eblake@redhat.com> writes:

> On Thu, Mar 16, 2023 at 08:13:22AM +0100, Markus Armbruster wrote:
>> Union TestIfUnion is conditional on macros TEST_IF_UNION and
>> TEST_IF_STRUCT.  It uses TestIfEnum, which is conditional on macro
>> TEST_IF_ENUM.  If TEST_IF_ENUM and TEST_IF_STRUCT are defined, but
>> TEST_IF_ENUM isn't, the generated code won't compile.
>
> s/ENUM/UNION/ in one of these two uses in this sentence.

Yes: If TEST_IF_UNION and TEST_IF_UNION are defined, ...

>> Command test-if-cmd is conditional an macros TEST_IF_CMD and
>> TEST_IF_STRUCT, and uses TestIfEnum.  Similar issue.
>> 
>> Event TEST_IF_EVENT is conditional an macros TEST_IF_EVT and
>> TEST_IF_STRUCT, and uses TestIfEnum.  Similar issue.
>> 
>> Replace the uses of TestIfEnum in the latter two by str.
>> 
>> TestIfUnion is now TestIfEnum's only user.  Change TestIfEnum's
>> condition to TEST_IF_UNION.
>
> Fair enough, once the commit message doesn't confuse me in the first
> paragraph ;)
>
>> 
>> Signed-off-by: Markus Armbruster <armbru@redhat.com>
>> ---
>>  tests/qapi-schema/qapi-schema-test.json | 6 +++---
>>  tests/qapi-schema/qapi-schema-test.out  | 8 +++-----
>>  2 files changed, 6 insertions(+), 8 deletions(-)
>>
>
> Reviewed-by: Eric Blake <eblake@redhat.com>

Thanks!
Re: [PATCH 11/14] tests/qapi-schema: Clean up positive test for conditionals
Posted by Eric Blake 2 years, 9 months ago
On Fri, Mar 17, 2023 at 07:10:52AM +0100, Markus Armbruster wrote:
> Eric Blake <eblake@redhat.com> writes:
> 
> > On Thu, Mar 16, 2023 at 08:13:22AM +0100, Markus Armbruster wrote:
> >> Union TestIfUnion is conditional on macros TEST_IF_UNION and
> >> TEST_IF_STRUCT.  It uses TestIfEnum, which is conditional on macro
> >> TEST_IF_ENUM.  If TEST_IF_ENUM and TEST_IF_STRUCT are defined, but
> >> TEST_IF_ENUM isn't, the generated code won't compile.
> >
> > s/ENUM/UNION/ in one of these two uses in this sentence.
> 
> Yes: If TEST_IF_UNION and TEST_IF_UNION are defined, ...

If TEST_IF_UNION and TEST_IF_STRUCT are defined, ...

(you are stuck in a maze of twisty little passages, all alike)

-- 
Eric Blake, Principal Software Engineer
Red Hat, Inc.           +1-919-301-3266
Virtualization:  qemu.org | libvirt.org
Re: [PATCH 11/14] tests/qapi-schema: Clean up positive test for conditionals
Posted by Markus Armbruster 2 years, 9 months ago
Eric Blake <eblake@redhat.com> writes:

> On Fri, Mar 17, 2023 at 07:10:52AM +0100, Markus Armbruster wrote:
>> Eric Blake <eblake@redhat.com> writes:
>> 
>> > On Thu, Mar 16, 2023 at 08:13:22AM +0100, Markus Armbruster wrote:
>> >> Union TestIfUnion is conditional on macros TEST_IF_UNION and
>> >> TEST_IF_STRUCT.  It uses TestIfEnum, which is conditional on macro
>> >> TEST_IF_ENUM.  If TEST_IF_ENUM and TEST_IF_STRUCT are defined, but
>> >> TEST_IF_ENUM isn't, the generated code won't compile.
>> >
>> > s/ENUM/UNION/ in one of these two uses in this sentence.
>> 
>> Yes: If TEST_IF_UNION and TEST_IF_UNION are defined, ...
>
> If TEST_IF_UNION and TEST_IF_STRUCT are defined, ...
>
> (you are stuck in a maze of twisty little passages, all alike)

I am!

Thanks :)