Miscellaneous patches for 2018-08-15
-----BEGIN PGP SIGNATURE----- iQIcBAABAgAGBQJbc8UDAAoJEDhwtADrkYZTxZsP/itLPJvthaavG4ppJbPYQNBF ys+lT66EfSQF9itlok6X0Z/3TseoXl2VbBQGfzd0q/TxAoiXOLRmTS34E+cM4DdM KNcp1WpD+05aupWnelkvUnSuQV4HLY963MUBuPrpG9pCfvl+kygYo7pibSflaY4X XC2Os0mbEsxtz6HcwCMZ4G4fxLHTfJwBDiitODlsig8cOnuUEr8mCTsk/G0uYSgt FnKSr0lV475AK0+ACQ4X/eM+f567hrZ3Ew37XUMJB6DQBkiGz0hc6gIEW///Zgu0 LU00pbc8r1GGRoUA/2f8GL1sqb56v3hahrMmcq93/JNcHl04NLL8sefN/L4soRY/ /rI4BbddX9/nf6IFHTXFyModvt4oIhCdMMoE9eu7Nm5SMgG9NKOopw0lgJ00BN0j wZiBmmMUKEQvYPj8MnGINQJKBy+uUf0GCAgYbf59iKM7ZadmUdIRdBs9+LsDAcZD m5E612CZ8tF+hx5lJKiGfIjNNsdtzor4eOm7qaTKQvvbzwzJ+Wz+sFkaYsNQAN+s sP/Wj6eUf5UYeB4Z8MLl0vmYKPJxbOhYdaMNeKofh55jyfovQgLnewFwX+242a7U jiLCcNcctmH0OBC/HMnlSIg/LpwcubWXyKrt5ls7Mr1XvXnkTkegvFKM+7Td6s8C JvyqMN0tTZLKgJCMB4QI =ICqR -----END PGP SIGNATURE----- Merge remote-tracking branch 'remotes/armbru/tags/pull-misc-2018-08-15' into staging Miscellaneous patches for 2018-08-15 # gpg: Signature made Wed 15 Aug 2018 07:15:31 BST # gpg: using RSA key 3870B400EB918653 # gpg: Good signature from "Markus Armbruster <armbru@redhat.com>" # gpg: aka "Markus Armbruster <armbru@pond.sub.org>" # Primary key fingerprint: 354B C8B3 D7EB 2A6B 6867 4E5F 3870 B400 EB91 8653 * remotes/armbru/tags/pull-misc-2018-08-15: monitor: fix oob command leak tests: fix crumple/recursive leak qapi: Fix some pycodestyle-3 complaints tests: change /0.15/* tests to /qmp/* qmp-shell: learn to send commands with quoted arguments Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
commit
c146b54c7f
|
@ -4277,6 +4277,8 @@ static void handle_qmp_command(JSONMessageParser *parser, GQueue *tokens)
|
|||
trace_monitor_qmp_cmd_out_of_band(qobject_get_try_str(id)
|
||||
?: "");
|
||||
monitor_qmp_dispatch(mon, req, id);
|
||||
qobject_unref(req);
|
||||
qobject_unref(id);
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
@ -884,12 +884,12 @@ def check_keys(expr_elem, meta, required, optional=[]):
|
|||
if key not in required and key not in optional:
|
||||
raise QAPISemError(info, "Unknown key '%s' in %s '%s'"
|
||||
% (key, meta, name))
|
||||
if (key == 'gen' or key == 'success-response') and value is not False:
|
||||
if key in ['gen', 'success-response'] and value is not False:
|
||||
raise QAPISemError(info,
|
||||
"'%s' of %s '%s' should only use false value"
|
||||
% (key, meta, name))
|
||||
if (key == 'boxed' or key == 'allow-oob' or
|
||||
key == 'allow-preconfig') and value is not True:
|
||||
if (key in ['boxed', 'allow-oob', 'allow-preconfig']
|
||||
and value is not True):
|
||||
raise QAPISemError(info,
|
||||
"'%s' of %s '%s' should only use true value"
|
||||
% (key, meta, name))
|
||||
|
@ -1845,12 +1845,12 @@ def camel_to_upper(value):
|
|||
return c_fun_str
|
||||
|
||||
new_name = ''
|
||||
l = len(c_fun_str)
|
||||
for i in range(l):
|
||||
length = len(c_fun_str)
|
||||
for i in range(length):
|
||||
c = c_fun_str[i]
|
||||
# When c is upper and no '_' appears before, do more checks
|
||||
if c.isupper() and (i > 0) and c_fun_str[i - 1] != '_':
|
||||
if i < l - 1 and c_fun_str[i + 1].islower():
|
||||
if i < length - 1 and c_fun_str[i + 1].islower():
|
||||
new_name += '_'
|
||||
elif c_fun_str[i - 1].isdigit():
|
||||
new_name += '_'
|
||||
|
@ -1863,6 +1863,7 @@ def c_enum_const(type_name, const_name, prefix=None):
|
|||
type_name = prefix
|
||||
return camel_to_upper(type_name) + '_' + c_name(const_name, False).upper()
|
||||
|
||||
|
||||
if hasattr(str, 'maketrans'):
|
||||
c_name_trans = str.maketrans('.-', '__')
|
||||
else:
|
||||
|
@ -1912,6 +1913,7 @@ def c_name(name, protect=True):
|
|||
return 'q_' + name
|
||||
return name
|
||||
|
||||
|
||||
eatspace = '\033EATSPACE.'
|
||||
pointer_suffix = ' *' + eatspace
|
||||
|
||||
|
@ -1922,6 +1924,7 @@ def genindent(count):
|
|||
ret += ' '
|
||||
return ret
|
||||
|
||||
|
||||
indent_level = 0
|
||||
|
||||
|
||||
|
|
|
@ -187,7 +187,7 @@ void visit_type_%(c_name)s(Visitor *v, const char *name, %(c_name)s **obj, Error
|
|||
}
|
||||
switch ((*obj)->type) {
|
||||
''',
|
||||
c_name=c_name(name))
|
||||
c_name=c_name(name))
|
||||
|
||||
for var in variants.variants:
|
||||
ret += mcgen('''
|
||||
|
|
|
@ -74,6 +74,7 @@ import sys
|
|||
import os
|
||||
import errno
|
||||
import atexit
|
||||
import shlex
|
||||
|
||||
class QMPCompleter(list):
|
||||
def complete(self, text, state):
|
||||
|
@ -219,7 +220,7 @@ class QMPShell(qmp.QEMUMonitorProtocol):
|
|||
|
||||
< command-name > [ arg-name1=arg1 ] ... [ arg-nameN=argN ]
|
||||
"""
|
||||
cmdargs = cmdline.split()
|
||||
cmdargs = shlex.split(cmdline)
|
||||
|
||||
# Transactional CLI entry/exit:
|
||||
if cmdargs[0] == 'transaction(':
|
||||
|
|
|
@ -491,6 +491,7 @@ static void qdict_crumple_test_recursive(void)
|
|||
empty_list_0 = qobject_to(QDict, qlist_pop(empty_list));
|
||||
g_assert(empty_list_0);
|
||||
g_assert_cmpint(qdict_size(empty_list_0), ==, 0);
|
||||
qobject_unref(empty_list_0);
|
||||
|
||||
qobject_unref(src);
|
||||
qobject_unref(dst);
|
||||
|
|
|
@ -34,8 +34,8 @@ class QAPISchemaTestVisitor(QAPISchemaVisitor):
|
|||
if base:
|
||||
print(' base %s' % base.name)
|
||||
for m in members:
|
||||
print(' member %s: %s optional=%s' % \
|
||||
(m.name, m.type.name, m.optional))
|
||||
print(' member %s: %s optional=%s'
|
||||
% (m.name, m.type.name, m.optional))
|
||||
self._print_variants(variants)
|
||||
self._print_if(ifcond)
|
||||
|
||||
|
@ -46,10 +46,11 @@ class QAPISchemaTestVisitor(QAPISchemaVisitor):
|
|||
|
||||
def visit_command(self, name, info, ifcond, arg_type, ret_type, gen,
|
||||
success_response, boxed, allow_oob, allow_preconfig):
|
||||
print('command %s %s -> %s' % \
|
||||
(name, arg_type and arg_type.name, ret_type and ret_type.name))
|
||||
print(' gen=%s success_response=%s boxed=%s oob=%s preconfig=%s' % \
|
||||
(gen, success_response, boxed, allow_oob, allow_preconfig))
|
||||
print('command %s %s -> %s'
|
||||
% (name, arg_type and arg_type.name,
|
||||
ret_type and ret_type.name))
|
||||
print(' gen=%s success_response=%s boxed=%s oob=%s preconfig=%s'
|
||||
% (gen, success_response, boxed, allow_oob, allow_preconfig))
|
||||
self._print_if(ifcond)
|
||||
|
||||
def visit_event(self, name, info, ifcond, arg_type, boxed):
|
||||
|
|
|
@ -286,11 +286,11 @@ int main(int argc, char **argv)
|
|||
{
|
||||
g_test_init(&argc, &argv, NULL);
|
||||
|
||||
g_test_add_func("/0.15/dispatch_cmd", test_dispatch_cmd);
|
||||
g_test_add_func("/0.15/dispatch_cmd_failure", test_dispatch_cmd_failure);
|
||||
g_test_add_func("/0.15/dispatch_cmd_io", test_dispatch_cmd_io);
|
||||
g_test_add_func("/0.15/dealloc_types", test_dealloc_types);
|
||||
g_test_add_func("/0.15/dealloc_partial", test_dealloc_partial);
|
||||
g_test_add_func("/qmp/dispatch_cmd", test_dispatch_cmd);
|
||||
g_test_add_func("/qmp/dispatch_cmd_failure", test_dispatch_cmd_failure);
|
||||
g_test_add_func("/qmp/dispatch_cmd_io", test_dispatch_cmd_io);
|
||||
g_test_add_func("/qmp/dealloc_types", test_dealloc_types);
|
||||
g_test_add_func("/qmp/dealloc_partial", test_dealloc_partial);
|
||||
|
||||
test_qmp_init_marshal(&qmp_commands);
|
||||
g_test_run();
|
||||
|
|
Loading…
Reference in a new issue