[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v3 4/7] Add migrate_set_ports into migrate_qmp to change migratio
From: |
Het Gala |
Subject: |
[PATCH v3 4/7] Add migrate_set_ports into migrate_qmp to change migration port number |
Date: |
Wed, 6 Mar 2024 10:49:55 +0000 |
Add a migrate_set_ports() function that from each QDict, fills in
the port in case it was 0 in the test.
Handle a list of channels so we can add a negative test that
passes more than one channel.
Signed-off-by: Het Gala <het.gala@nutanix.com>
Suggested-by: Fabiano Rosas <farosas@suse.de>
---
tests/qtest/migration-helpers.c | 26 ++++++++++++++++++++++++++
1 file changed, 26 insertions(+)
diff --git a/tests/qtest/migration-helpers.c b/tests/qtest/migration-helpers.c
index 478c1f259b..df4978bf17 100644
--- a/tests/qtest/migration-helpers.c
+++ b/tests/qtest/migration-helpers.c
@@ -17,6 +17,8 @@
#include "qapi/qapi-visit-sockets.h"
#include "qapi/qobject-input-visitor.h"
#include "qapi/error.h"
+#include "qapi/qmp/qlist.h"
+
#include "migration-helpers.h"
@@ -73,6 +75,29 @@ migrate_get_socket_address(QTestState *who, const char
*parameter)
return result;
}
+static void migrate_set_ports(QTestState *to, QList *channelList)
+{
+ g_autofree char *addr = NULL;
+ g_autofree char *addr_port = NULL;
+ QListEntry *entry;
+
+ addr = migrate_get_socket_address(to, "socket-address");
+ addr_port = g_strsplit(addr, ":", 3)[2];
+
+ QLIST_FOREACH_ENTRY(channelList, entry) {
+ QDict *channel = qobject_to(QDict, qlist_entry_obj(entry));
+ QObject *addr_obj = qdict_get(channel, "addr");
+
+ if (qobject_type(addr_obj) == QTYPE_QDICT) {
+ QDict *addrdict = qobject_to(QDict, addr_obj);
+ if (qdict_haskey(addrdict, "port") &&
+ (strcmp(qdict_get_str(addrdict, "port"), "0") == 0)) {
+ qdict_put_str(addrdict, "port", addr_port);
+ }
+ }
+ }
+}
+
bool migrate_watch_for_events(QTestState *who, const char *name,
QDict *event, void *opaque)
{
@@ -143,6 +168,7 @@ void migrate_qmp(QTestState *who, QTestState *to, const
char *uri,
if (!uri) {
connect_uri = migrate_get_socket_address(to, "socket-address");
}
+ migrate_set_ports(to, NULL);
qdict_put_str(args, "uri", uri ? uri : connect_uri);
qtest_qmp_assert_success(who,
--
2.22.3
- [PATCH v3 0/7] qtest: migration: Add tests for introducing 'channels' argument in migrate QAPIs, Het Gala, 2024/03/06
- [PATCH v3 1/7] Add 'to' object into migrate_qmp(), Het Gala, 2024/03/06
- [PATCH v3 2/7] Replace connect_uri and move migrate_get_socket_address inside migrate_qmp, Het Gala, 2024/03/06
- [PATCH v3 3/7] Add channels parameter in migrate_qmp_fail, Het Gala, 2024/03/06
- [PATCH v3 4/7] Add migrate_set_ports into migrate_qmp to change migration port number,
Het Gala <=
- Re: [PATCH v3 4/7] Add migrate_set_ports into migrate_qmp to change migration port number, Fabiano Rosas, 2024/03/06
- Re: [PATCH v3 4/7] Add migrate_set_ports into migrate_qmp to change migration port number, Het Gala, 2024/03/06
- Re: [PATCH v3 4/7] Add migrate_set_ports into migrate_qmp to change migration port number, Fabiano Rosas, 2024/03/06
- Re: [PATCH v3 4/7] Add migrate_set_ports into migrate_qmp to change migration port number, Het Gala, 2024/03/06
- Re: [PATCH v3 4/7] Add migrate_set_ports into migrate_qmp to change migration port number, Het Gala, 2024/03/06
- Re: [PATCH v3 4/7] Add migrate_set_ports into migrate_qmp to change migration port number, Fabiano Rosas, 2024/03/07
[PATCH v3 5/7] Add channels parameter in migrate_qmp, Het Gala, 2024/03/06
[PATCH v3 6/7] Add multifd_tcp_plain test using list of channels instead of uri, Het Gala, 2024/03/06