mirror of https://gitee.com/openkylin/qemu.git
tests: qapi: Test 'features' of commands
Signed-off-by: Peter Krempa <pkrempa@redhat.com> Reviewed-by: Markus Armbruster <armbru@redhat.com> Signed-off-by: Markus Armbruster <armbru@redhat.com> Message-Id: <20191018081454.21369-4-armbru@redhat.com>
This commit is contained in:
parent
23394b4c39
commit
2e2e0df270
|
@ -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)'] } ] }
|
||||
|
|
|
@ -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)']
|
||||
|
|
|
@ -61,10 +61,7 @@ def visit_object_type(self, name, info, ifcond, base, members, variants,
|
|||
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)
|
||||
|
@ -80,6 +77,7 @@ def visit_command(self, name, info, ifcond, arg_type, ret_type, gen,
|
|||
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))
|
||||
|
@ -99,6 +97,13 @@ def _print_if(ifcond, indent=4):
|
|||
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)
|
||||
|
|
|
@ -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…
Reference in New Issue