diff options
| author | Peter Maydell <peter.maydell@linaro.org> | 2020-09-29 11:10:29 +0100 |
|---|---|---|
| committer | Peter Maydell <peter.maydell@linaro.org> | 2020-09-29 11:10:29 +0100 |
| commit | 213057383c9f73a17cfe635b204d88e11f918df1 (patch) | |
| tree | f3a1da40a8e48e3b8aaff8d355610e219c0de1cf /tests/test-qmp-marshal.c | |
| parent | 23290e8070fa18dd8ff930515326e76eeee5810a (diff) | |
| parent | 8138405528c29af2a850cd672a8f8a0b33b7ab40 (diff) | |
| download | focaccia-qemu-213057383c9f73a17cfe635b204d88e11f918df1.tar.gz focaccia-qemu-213057383c9f73a17cfe635b204d88e11f918df1.zip | |
Merge remote-tracking branch 'remotes/mst/tags/for_upstream' into staging
virtio,pc,acpi: fixes, tests Fixes and tests all over the place. Batch iommu updates for vdpa. Removal of deprecated cpu hotplug commands. SMBIOS OEM string support. Signed-off-by: Michael S. Tsirkin <mst@redhat.com> # gpg: Signature made Tue 29 Sep 2020 08:09:21 BST # gpg: using RSA key 5D09FD0871C8F85B94CA8A0D281F0DB8D28D5469 # gpg: issuer "mst@redhat.com" # gpg: Good signature from "Michael S. Tsirkin <mst@kernel.org>" [full] # gpg: aka "Michael S. Tsirkin <mst@redhat.com>" [full] # Primary key fingerprint: 0270 606B 6F3C DF3D 0B17 0970 C350 3912 AFBE 8E67 # Subkey fingerprint: 5D09 FD08 71C8 F85B 94CA 8A0D 281F 0DB8 D28D 5469 * remotes/mst/tags/for_upstream: (48 commits) libvhost-user: return on error in vu_log_queue_fill() libvhost-user: return early on virtqueue errors hw: virtio-pmem: detach the element fromt the virtqueue when error occurs tests/acpi: update golden master DSDT binary table blobs for q35 piix4: don't reserve hw resources when hotplug is off globally Add ACPI DSDT tables for q35 that are being updated by the next patch tests/acpi: add newly added acpi DSDT table blob for pci bridge hotplug flag tests/acpi: unit test for 'acpi-pci-hotplug-with-bridge-support' bridge flag tests/acpi: list added acpi table binary file for pci bridge hotplug test i440fx/acpi: do not add hotplug related amls for cold plugged bridges Fix a gap where acpi_pcihp_find_hotplug_bus() returns a non-hotpluggable bus tests/acpi: add a new ACPI table in order to test root pci hotplug on/off tests/acpi: add new unit test to test hotplug off/on feature on the root pci bus tests/acpi: mark addition of table DSDT.roothp for unit testing root pci hotplug vhost-user: save features of multiqueues if chardev is closed qemu-options: document SMBIOS type 11 settings hw/smbios: report error if table size is too large hw/smbios: support loading OEM strings values from a file tests: acpi: update acpi blobs with new AML x68: acpi: trigger SMI before sending hotplug Notify event to OSPM ... Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Diffstat (limited to 'tests/test-qmp-marshal.c')
| -rw-r--r-- | tests/test-qmp-marshal.c | 383 |
1 files changed, 383 insertions, 0 deletions
diff --git a/tests/test-qmp-marshal.c b/tests/test-qmp-marshal.c new file mode 100644 index 0000000000..54e3952d35 --- /dev/null +++ b/tests/test-qmp-marshal.c @@ -0,0 +1,383 @@ +/* AUTOMATICALLY GENERATED, DO NOT MODIFY */ + +/* + * schema-defined QMP->QAPI command dispatch + * + * Copyright IBM, Corp. 2011 + * + * Authors: + * Anthony Liguori <aliguori@us.ibm.com> + * + * This work is licensed under the terms of the GNU LGPL, version 2.1 or later. + * See the COPYING.LIB file in the top-level directory. + * + */ + +#include "qemu/osdep.h" +#include "qemu-common.h" +#include "qemu/module.h" +#include "qapi/qmp/types.h" +#include "qapi/qmp/dispatch.h" +#include "qapi/visitor.h" +#include "qapi/qmp-output-visitor.h" +#include "qapi/qmp-input-visitor.h" +#include "qapi/dealloc-visitor.h" +#include "test-qapi-types.h" +#include "test-qapi-visit.h" +#include "test-qmp-commands.h" + + +static void qmp_marshal_output___org_qemu_x_Union1(__org_qemu_x_Union1 *ret_in, QObject **ret_out, Error **errp) +{ + Error *err = NULL; + QmpOutputVisitor *qov = qmp_output_visitor_new(); + QapiDeallocVisitor *qdv; + Visitor *v; + + v = qmp_output_get_visitor(qov); + visit_type___org_qemu_x_Union1(v, "unused", &ret_in, &err); + if (err) { + goto out; + } + *ret_out = qmp_output_get_qobject(qov); + +out: + error_propagate(errp, err); + qmp_output_visitor_cleanup(qov); + qdv = qapi_dealloc_visitor_new(); + v = qapi_dealloc_get_visitor(qdv); + visit_type___org_qemu_x_Union1(v, "unused", &ret_in, NULL); + qapi_dealloc_visitor_cleanup(qdv); +} + +static void qmp_marshal___org_qemu_x_command(QDict *args, QObject **ret, Error **errp) +{ + Error *err = NULL; + __org_qemu_x_Union1 *retval; + QmpInputVisitor *qiv = qmp_input_visitor_new(QOBJECT(args), true); + QapiDeallocVisitor *qdv; + Visitor *v; + q_obj___org_qemu_x_command_arg arg = {0}; + + v = qmp_input_get_visitor(qiv); + visit_start_struct(v, NULL, NULL, 0, &err); + if (err) { + goto out; + } + visit_type_q_obj___org_qemu_x_command_arg_members(v, &arg, &err); + if (!err) { + visit_check_struct(v, &err); + } + visit_end_struct(v); + if (err) { + goto out; + } + + retval = qmp___org_qemu_x_command(arg.a, arg.b, arg.c, arg.d, &err); + if (err) { + goto out; + } + + qmp_marshal_output___org_qemu_x_Union1(retval, ret, &err); + +out: + error_propagate(errp, err); + qmp_input_visitor_cleanup(qiv); + qdv = qapi_dealloc_visitor_new(); + v = qapi_dealloc_get_visitor(qdv); + visit_start_struct(v, NULL, NULL, 0, NULL); + visit_type_q_obj___org_qemu_x_command_arg_members(v, &arg, NULL); + visit_end_struct(v); + qapi_dealloc_visitor_cleanup(qdv); +} + +static void qmp_marshal_output_int(int64_t ret_in, QObject **ret_out, Error **errp) +{ + Error *err = NULL; + QmpOutputVisitor *qov = qmp_output_visitor_new(); + QapiDeallocVisitor *qdv; + Visitor *v; + + v = qmp_output_get_visitor(qov); + visit_type_int(v, "unused", &ret_in, &err); + if (err) { + goto out; + } + *ret_out = qmp_output_get_qobject(qov); + +out: + error_propagate(errp, err); + qmp_output_visitor_cleanup(qov); + qdv = qapi_dealloc_visitor_new(); + v = qapi_dealloc_get_visitor(qdv); + visit_type_int(v, "unused", &ret_in, NULL); + qapi_dealloc_visitor_cleanup(qdv); +} + +static void qmp_marshal_guest_get_time(QDict *args, QObject **ret, Error **errp) +{ + Error *err = NULL; + int64_t retval; + QmpInputVisitor *qiv = qmp_input_visitor_new(QOBJECT(args), true); + QapiDeallocVisitor *qdv; + Visitor *v; + q_obj_guest_get_time_arg arg = {0}; + + v = qmp_input_get_visitor(qiv); + visit_start_struct(v, NULL, NULL, 0, &err); + if (err) { + goto out; + } + visit_type_q_obj_guest_get_time_arg_members(v, &arg, &err); + if (!err) { + visit_check_struct(v, &err); + } + visit_end_struct(v); + if (err) { + goto out; + } + + retval = qmp_guest_get_time(arg.a, arg.has_b, arg.b, &err); + if (err) { + goto out; + } + + qmp_marshal_output_int(retval, ret, &err); + +out: + error_propagate(errp, err); + qmp_input_visitor_cleanup(qiv); + qdv = qapi_dealloc_visitor_new(); + v = qapi_dealloc_get_visitor(qdv); + visit_start_struct(v, NULL, NULL, 0, NULL); + visit_type_q_obj_guest_get_time_arg_members(v, &arg, NULL); + visit_end_struct(v); + qapi_dealloc_visitor_cleanup(qdv); +} + +static void qmp_marshal_output_any(QObject *ret_in, QObject **ret_out, Error **errp) +{ + Error *err = NULL; + QmpOutputVisitor *qov = qmp_output_visitor_new(); + QapiDeallocVisitor *qdv; + Visitor *v; + + v = qmp_output_get_visitor(qov); + visit_type_any(v, "unused", &ret_in, &err); + if (err) { + goto out; + } + *ret_out = qmp_output_get_qobject(qov); + +out: + error_propagate(errp, err); + qmp_output_visitor_cleanup(qov); + qdv = qapi_dealloc_visitor_new(); + v = qapi_dealloc_get_visitor(qdv); + visit_type_any(v, "unused", &ret_in, NULL); + qapi_dealloc_visitor_cleanup(qdv); +} + +static void qmp_marshal_guest_sync(QDict *args, QObject **ret, Error **errp) +{ + Error *err = NULL; + QObject *retval; + QmpInputVisitor *qiv = qmp_input_visitor_new(QOBJECT(args), true); + QapiDeallocVisitor *qdv; + Visitor *v; + q_obj_guest_sync_arg arg = {0}; + + v = qmp_input_get_visitor(qiv); + visit_start_struct(v, NULL, NULL, 0, &err); + if (err) { + goto out; + } + visit_type_q_obj_guest_sync_arg_members(v, &arg, &err); + if (!err) { + visit_check_struct(v, &err); + } + visit_end_struct(v); + if (err) { + goto out; + } + + retval = qmp_guest_sync(arg.arg, &err); + if (err) { + goto out; + } + + qmp_marshal_output_any(retval, ret, &err); + +out: + error_propagate(errp, err); + qmp_input_visitor_cleanup(qiv); + qdv = qapi_dealloc_visitor_new(); + v = qapi_dealloc_get_visitor(qdv); + visit_start_struct(v, NULL, NULL, 0, NULL); + visit_type_q_obj_guest_sync_arg_members(v, &arg, NULL); + visit_end_struct(v); + qapi_dealloc_visitor_cleanup(qdv); +} + +static void qmp_marshal_user_def_cmd(QDict *args, QObject **ret, Error **errp) +{ + Error *err = NULL; + + (void)args; + + qmp_user_def_cmd(&err); + error_propagate(errp, err); +} + +static void qmp_marshal_output_Empty2(Empty2 *ret_in, QObject **ret_out, Error **errp) +{ + Error *err = NULL; + QmpOutputVisitor *qov = qmp_output_visitor_new(); + QapiDeallocVisitor *qdv; + Visitor *v; + + v = qmp_output_get_visitor(qov); + visit_type_Empty2(v, "unused", &ret_in, &err); + if (err) { + goto out; + } + *ret_out = qmp_output_get_qobject(qov); + +out: + error_propagate(errp, err); + qmp_output_visitor_cleanup(qov); + qdv = qapi_dealloc_visitor_new(); + v = qapi_dealloc_get_visitor(qdv); + visit_type_Empty2(v, "unused", &ret_in, NULL); + qapi_dealloc_visitor_cleanup(qdv); +} + +static void qmp_marshal_user_def_cmd0(QDict *args, QObject **ret, Error **errp) +{ + Error *err = NULL; + Empty2 *retval; + + (void)args; + + retval = qmp_user_def_cmd0(&err); + if (err) { + goto out; + } + + qmp_marshal_output_Empty2(retval, ret, &err); + +out: + error_propagate(errp, err); +} + +static void qmp_marshal_user_def_cmd1(QDict *args, QObject **ret, Error **errp) +{ + Error *err = NULL; + QmpInputVisitor *qiv = qmp_input_visitor_new(QOBJECT(args), true); + QapiDeallocVisitor *qdv; + Visitor *v; + q_obj_user_def_cmd1_arg arg = {0}; + + v = qmp_input_get_visitor(qiv); + visit_start_struct(v, NULL, NULL, 0, &err); + if (err) { + goto out; + } + visit_type_q_obj_user_def_cmd1_arg_members(v, &arg, &err); + if (!err) { + visit_check_struct(v, &err); + } + visit_end_struct(v); + if (err) { + goto out; + } + + qmp_user_def_cmd1(arg.ud1a, &err); + +out: + error_propagate(errp, err); + qmp_input_visitor_cleanup(qiv); + qdv = qapi_dealloc_visitor_new(); + v = qapi_dealloc_get_visitor(qdv); + visit_start_struct(v, NULL, NULL, 0, NULL); + visit_type_q_obj_user_def_cmd1_arg_members(v, &arg, NULL); + visit_end_struct(v); + qapi_dealloc_visitor_cleanup(qdv); +} + +static void qmp_marshal_output_UserDefTwo(UserDefTwo *ret_in, QObject **ret_out, Error **errp) +{ + Error *err = NULL; + QmpOutputVisitor *qov = qmp_output_visitor_new(); + QapiDeallocVisitor *qdv; + Visitor *v; + + v = qmp_output_get_visitor(qov); + visit_type_UserDefTwo(v, "unused", &ret_in, &err); + if (err) { + goto out; + } + *ret_out = qmp_output_get_qobject(qov); + +out: + error_propagate(errp, err); + qmp_output_visitor_cleanup(qov); + qdv = qapi_dealloc_visitor_new(); + v = qapi_dealloc_get_visitor(qdv); + visit_type_UserDefTwo(v, "unused", &ret_in, NULL); + qapi_dealloc_visitor_cleanup(qdv); +} + +static void qmp_marshal_user_def_cmd2(QDict *args, QObject **ret, Error **errp) +{ + Error *err = NULL; + UserDefTwo *retval; + QmpInputVisitor *qiv = qmp_input_visitor_new(QOBJECT(args), true); + QapiDeallocVisitor *qdv; + Visitor *v; + q_obj_user_def_cmd2_arg arg = {0}; + + v = qmp_input_get_visitor(qiv); + visit_start_struct(v, NULL, NULL, 0, &err); + if (err) { + goto out; + } + visit_type_q_obj_user_def_cmd2_arg_members(v, &arg, &err); + if (!err) { + visit_check_struct(v, &err); + } + visit_end_struct(v); + if (err) { + goto out; + } + + retval = qmp_user_def_cmd2(arg.ud1a, arg.has_ud1b, arg.ud1b, &err); + if (err) { + goto out; + } + + qmp_marshal_output_UserDefTwo(retval, ret, &err); + +out: + error_propagate(errp, err); + qmp_input_visitor_cleanup(qiv); + qdv = qapi_dealloc_visitor_new(); + v = qapi_dealloc_get_visitor(qdv); + visit_start_struct(v, NULL, NULL, 0, NULL); + visit_type_q_obj_user_def_cmd2_arg_members(v, &arg, NULL); + visit_end_struct(v); + qapi_dealloc_visitor_cleanup(qdv); +} + +static void qmp_init_marshal(void) +{ + qmp_register_command("__org.qemu_x-command", qmp_marshal___org_qemu_x_command, QCO_NO_OPTIONS); + qmp_register_command("guest-get-time", qmp_marshal_guest_get_time, QCO_NO_OPTIONS); + qmp_register_command("guest-sync", qmp_marshal_guest_sync, QCO_NO_OPTIONS); + qmp_register_command("user_def_cmd", qmp_marshal_user_def_cmd, QCO_NO_OPTIONS); + qmp_register_command("user_def_cmd0", qmp_marshal_user_def_cmd0, QCO_NO_OPTIONS); + qmp_register_command("user_def_cmd1", qmp_marshal_user_def_cmd1, QCO_NO_OPTIONS); + qmp_register_command("user_def_cmd2", qmp_marshal_user_def_cmd2, QCO_NO_OPTIONS); +} + +qapi_init(qmp_init_marshal); |