Loading tests/qapi-schema/qapi-schema-test.json +18 −0 Original line number Diff line number Diff line Loading @@ -290,3 +290,21 @@ 'cfs1': 'CondFeatureStruct1', 'cfs2': 'CondFeatureStruct2', 'cfs3': 'CondFeatureStruct3' } } # test 'features' for command { 'command': 'test-command-features0', 'features': [] } { 'command': 'test-command-features1', 'features': [ 'feature1' ] } { 'command': 'test-command-features3', 'features': [ 'feature1', 'feature2' ] } { 'command': 'test-command-cond-features1', 'features': [ { 'name': 'feature1', 'if': 'defined(TEST_IF_FEATURE_1)'} ] } { 'command': 'test-command-cond-features2', 'features': [ { 'name': 'feature1', 'if': 'defined(TEST_IF_FEATURE_1)'}, { 'name': 'feature2', 'if': 'defined(TEST_IF_FEATURE_2)'} ] } { 'command': 'test-command-cond-features3', 'features': [ { 'name': 'feature1', 'if': [ 'defined(TEST_IF_COND_1)', 'defined(TEST_IF_COND_2)'] } ] } tests/qapi-schema/qapi-schema-test.out +23 −0 Original line number Diff line number Diff line Loading @@ -412,3 +412,26 @@ object q_obj_test-features-arg member cfs3: CondFeatureStruct3 optional=False command test-features q_obj_test-features-arg -> None gen=True success_response=True boxed=False oob=False preconfig=False command test-command-features0 None -> None gen=True success_response=True boxed=False oob=False preconfig=False command test-command-features1 None -> None gen=True success_response=True boxed=False oob=False preconfig=False feature feature1 command test-command-features3 None -> None gen=True success_response=True boxed=False oob=False preconfig=False feature feature1 feature feature2 command test-command-cond-features1 None -> None gen=True success_response=True boxed=False oob=False preconfig=False feature feature1 if ['defined(TEST_IF_FEATURE_1)'] command test-command-cond-features2 None -> None gen=True success_response=True boxed=False oob=False preconfig=False feature feature1 if ['defined(TEST_IF_FEATURE_1)'] feature feature2 if ['defined(TEST_IF_FEATURE_2)'] command test-command-cond-features3 None -> None gen=True success_response=True boxed=False oob=False preconfig=False feature feature1 if ['defined(TEST_IF_COND_1)', 'defined(TEST_IF_COND_2)'] tests/qapi-schema/test-qapi.py +9 −4 Original line number Diff line number Diff line Loading @@ -61,10 +61,7 @@ class QAPISchemaTestVisitor(QAPISchemaVisitor): self._print_if(m.ifcond, 8) self._print_variants(variants) self._print_if(ifcond) if features: for f in features: print(' feature %s' % f.name) self._print_if(f.ifcond, 8) self._print_features(features) def visit_alternate_type(self, name, info, ifcond, variants): print('alternate %s' % name) Loading @@ -80,6 +77,7 @@ class QAPISchemaTestVisitor(QAPISchemaVisitor): print(' gen=%s success_response=%s boxed=%s oob=%s preconfig=%s' % (gen, success_response, boxed, allow_oob, allow_preconfig)) self._print_if(ifcond) self._print_features(features) def visit_event(self, name, info, ifcond, arg_type, boxed): print('event %s %s' % (name, arg_type and arg_type.name)) Loading @@ -99,6 +97,13 @@ class QAPISchemaTestVisitor(QAPISchemaVisitor): if ifcond: print('%sif %s' % (' ' * indent, ifcond)) @classmethod def _print_features(cls, features): if features: for f in features: print(' feature %s' % f.name) cls._print_if(f.ifcond, 8) def test_frontend(fname): schema = QAPISchema(fname) Loading tests/test-qmp-cmds.c +24 −0 Original line number Diff line number Diff line Loading @@ -51,6 +51,30 @@ void qmp_test_features(FeatureStruct0 *fs0, FeatureStruct1 *fs1, { } void qmp_test_command_features0(Error **errp) { } void qmp_test_command_features1(Error **errp) { } void qmp_test_command_features3(Error **errp) { } void qmp_test_command_cond_features1(Error **errp) { } void qmp_test_command_cond_features2(Error **errp) { } void qmp_test_command_cond_features3(Error **errp) { } UserDefTwo *qmp_user_def_cmd2(UserDefOne *ud1a, bool has_udb1, UserDefOne *ud1b, Error **errp) Loading Loading
tests/qapi-schema/qapi-schema-test.json +18 −0 Original line number Diff line number Diff line Loading @@ -290,3 +290,21 @@ 'cfs1': 'CondFeatureStruct1', 'cfs2': 'CondFeatureStruct2', 'cfs3': 'CondFeatureStruct3' } } # test 'features' for command { 'command': 'test-command-features0', 'features': [] } { 'command': 'test-command-features1', 'features': [ 'feature1' ] } { 'command': 'test-command-features3', 'features': [ 'feature1', 'feature2' ] } { 'command': 'test-command-cond-features1', 'features': [ { 'name': 'feature1', 'if': 'defined(TEST_IF_FEATURE_1)'} ] } { 'command': 'test-command-cond-features2', 'features': [ { 'name': 'feature1', 'if': 'defined(TEST_IF_FEATURE_1)'}, { 'name': 'feature2', 'if': 'defined(TEST_IF_FEATURE_2)'} ] } { 'command': 'test-command-cond-features3', 'features': [ { 'name': 'feature1', 'if': [ 'defined(TEST_IF_COND_1)', 'defined(TEST_IF_COND_2)'] } ] }
tests/qapi-schema/qapi-schema-test.out +23 −0 Original line number Diff line number Diff line Loading @@ -412,3 +412,26 @@ object q_obj_test-features-arg member cfs3: CondFeatureStruct3 optional=False command test-features q_obj_test-features-arg -> None gen=True success_response=True boxed=False oob=False preconfig=False command test-command-features0 None -> None gen=True success_response=True boxed=False oob=False preconfig=False command test-command-features1 None -> None gen=True success_response=True boxed=False oob=False preconfig=False feature feature1 command test-command-features3 None -> None gen=True success_response=True boxed=False oob=False preconfig=False feature feature1 feature feature2 command test-command-cond-features1 None -> None gen=True success_response=True boxed=False oob=False preconfig=False feature feature1 if ['defined(TEST_IF_FEATURE_1)'] command test-command-cond-features2 None -> None gen=True success_response=True boxed=False oob=False preconfig=False feature feature1 if ['defined(TEST_IF_FEATURE_1)'] feature feature2 if ['defined(TEST_IF_FEATURE_2)'] command test-command-cond-features3 None -> None gen=True success_response=True boxed=False oob=False preconfig=False feature feature1 if ['defined(TEST_IF_COND_1)', 'defined(TEST_IF_COND_2)']
tests/qapi-schema/test-qapi.py +9 −4 Original line number Diff line number Diff line Loading @@ -61,10 +61,7 @@ class QAPISchemaTestVisitor(QAPISchemaVisitor): self._print_if(m.ifcond, 8) self._print_variants(variants) self._print_if(ifcond) if features: for f in features: print(' feature %s' % f.name) self._print_if(f.ifcond, 8) self._print_features(features) def visit_alternate_type(self, name, info, ifcond, variants): print('alternate %s' % name) Loading @@ -80,6 +77,7 @@ class QAPISchemaTestVisitor(QAPISchemaVisitor): print(' gen=%s success_response=%s boxed=%s oob=%s preconfig=%s' % (gen, success_response, boxed, allow_oob, allow_preconfig)) self._print_if(ifcond) self._print_features(features) def visit_event(self, name, info, ifcond, arg_type, boxed): print('event %s %s' % (name, arg_type and arg_type.name)) Loading @@ -99,6 +97,13 @@ class QAPISchemaTestVisitor(QAPISchemaVisitor): if ifcond: print('%sif %s' % (' ' * indent, ifcond)) @classmethod def _print_features(cls, features): if features: for f in features: print(' feature %s' % f.name) cls._print_if(f.ifcond, 8) def test_frontend(fname): schema = QAPISchema(fname) Loading
tests/test-qmp-cmds.c +24 −0 Original line number Diff line number Diff line Loading @@ -51,6 +51,30 @@ void qmp_test_features(FeatureStruct0 *fs0, FeatureStruct1 *fs1, { } void qmp_test_command_features0(Error **errp) { } void qmp_test_command_features1(Error **errp) { } void qmp_test_command_features3(Error **errp) { } void qmp_test_command_cond_features1(Error **errp) { } void qmp_test_command_cond_features2(Error **errp) { } void qmp_test_command_cond_features3(Error **errp) { } UserDefTwo *qmp_user_def_cmd2(UserDefOne *ud1a, bool has_udb1, UserDefOne *ud1b, Error **errp) Loading