qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Thomas Huth <thuth@redhat.com>
To: Peter Maydell <peter.maydell@linaro.org>, qemu-devel@nongnu.org
Cc: kwolf@redhat.com, lvivier@redhat.com, mreitz@redhat.com
Subject: [Qemu-devel] [PULL 07/13] tests/device-introspect: Use qtest_init() instead of qtest_start()
Date: Tue, 21 May 2019 12:53:38 +0200	[thread overview]
Message-ID: <20190521105344.11637-8-thuth@redhat.com> (raw)
In-Reply-To: <20190521105344.11637-1-thuth@redhat.com>

qtest_start() + qtest_end() should be avoided, since they use the
global_qtest variable that we want to get rid of in the long run.
Use qtest_init() and qtest_quit() instead.

Message-Id: <20190515174328.16361-6-thuth@redhat.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 tests/device-introspect-test.c | 85 ++++++++++++++++++----------------
 1 file changed, 46 insertions(+), 39 deletions(-)

diff --git a/tests/device-introspect-test.c b/tests/device-introspect-test.c
index a25092dfaa..04f22903b0 100644
--- a/tests/device-introspect-test.c
+++ b/tests/device-introspect-test.c
@@ -26,7 +26,8 @@
 
 const char common_args[] = "-nodefaults -machine none";
 
-static QList *qom_list_types(const char *implements, bool abstract)
+static QList *qom_list_types(QTestState * qts, const char *implements,
+                             bool abstract)
 {
     QDict *resp;
     QList *ret;
@@ -36,8 +37,8 @@ static QList *qom_list_types(const char *implements, bool abstract)
     if (implements) {
         qdict_put_str(args, "implements", implements);
     }
-    resp = qmp("{'execute': 'qom-list-types',"
-               " 'arguments': %p }", args);
+    resp = qtest_qmp(qts, "{'execute': 'qom-list-types', 'arguments': %p }",
+                     args);
     g_assert(qdict_haskey(resp, "return"));
     ret = qdict_get_qlist(resp, "return");
     qobject_ref(ret);
@@ -95,12 +96,12 @@ static QDict *type_list_find(QList *types, const char *name)
     return NULL;
 }
 
-static QList *device_type_list(bool abstract)
+static QList *device_type_list(QTestState *qts, bool abstract)
 {
-    return qom_list_types("device", abstract);
+    return qom_list_types(qts, "device", abstract);
 }
 
-static void test_one_device(const char *type)
+static void test_one_device(QTestState *qts, const char *type)
 {
     QDict *resp;
     char *help;
@@ -109,15 +110,15 @@ static void test_one_device(const char *type)
 
     g_test_message("Testing device '%s'", type);
 
-    qom_tree_start = hmp("info qom-tree");
-    qtree_start = hmp("info qtree");
+    qom_tree_start = qtest_hmp(qts, "info qom-tree");
+    qtree_start = qtest_hmp(qts, "info qtree");
 
-    resp = qmp("{'execute': 'device-list-properties',"
-               " 'arguments': {'typename': %s}}",
+    resp = qtest_qmp(qts, "{'execute': 'device-list-properties',"
+                          " 'arguments': {'typename': %s}}",
                type);
     qobject_unref(resp);
 
-    help = hmp("device_add \"%s,help\"", type);
+    help = qtest_hmp(qts, "device_add \"%s,help\"", type);
     g_free(help);
 
     /*
@@ -125,12 +126,12 @@ static void test_one_device(const char *type)
      * "info qom-tree" or "info qtree" have a good chance at crashing then.
      * Also make sure that the tree did not change.
      */
-    qom_tree_end = hmp("info qom-tree");
+    qom_tree_end = qtest_hmp(qts, "info qom-tree");
     g_assert_cmpstr(qom_tree_start, ==, qom_tree_end);
     g_free(qom_tree_start);
     g_free(qom_tree_end);
 
-    qtree_end = hmp("info qtree");
+    qtree_end = qtest_hmp(qts, "info qtree");
     g_assert_cmpstr(qtree_start, ==, qtree_end);
     g_free(qtree_start);
     g_free(qtree_end);
@@ -140,29 +141,30 @@ static void test_device_intro_list(void)
 {
     QList *types;
     char *help;
+    QTestState *qts;
 
-    qtest_start(common_args);
+    qts = qtest_init(common_args);
 
-    types = device_type_list(true);
+    types = device_type_list(qts, true);
     qobject_unref(types);
 
-    help = hmp("device_add help");
+    help = qtest_hmp(qts, "device_add help");
     g_free(help);
 
-    qtest_end();
+    qtest_quit(qts);
 }
 
 /*
  * Ensure all entries returned by qom-list-types implements=<parent>
  * have <parent> as a parent.
  */
-static void test_qom_list_parents(const char *parent)
+static void test_qom_list_parents(QTestState *qts, const char *parent)
 {
     QList *types;
     QListEntry *e;
     QDict *index;
 
-    types = qom_list_types(parent, true);
+    types = qom_list_types(qts, parent, true);
     index = qom_type_index(types);
 
     QLIST_FOREACH_ENTRY(types, e) {
@@ -181,11 +183,12 @@ static void test_qom_list_fields(void)
     QList *all_types;
     QList *non_abstract;
     QListEntry *e;
+    QTestState *qts;
 
-    qtest_start(common_args);
+    qts = qtest_init(common_args);
 
-    all_types = qom_list_types(NULL, true);
-    non_abstract = qom_list_types(NULL, false);
+    all_types = qom_list_types(qts, NULL, true);
+    non_abstract = qom_list_types(qts, NULL, false);
 
     QLIST_FOREACH_ENTRY(all_types, e) {
         QDict *d = qobject_to(QDict, qlist_entry_obj(e));
@@ -198,27 +201,29 @@ static void test_qom_list_fields(void)
         g_assert(abstract == expected_abstract);
     }
 
-    test_qom_list_parents("object");
-    test_qom_list_parents("device");
-    test_qom_list_parents("sys-bus-device");
+    test_qom_list_parents(qts, "object");
+    test_qom_list_parents(qts, "device");
+    test_qom_list_parents(qts, "sys-bus-device");
 
     qobject_unref(all_types);
     qobject_unref(non_abstract);
-    qtest_end();
+    qtest_quit(qts);
 }
 
 static void test_device_intro_none(void)
 {
-    qtest_start(common_args);
-    test_one_device("nonexistent");
-    qtest_end();
+    QTestState *qts = qtest_init(common_args);
+
+    test_one_device(qts, "nonexistent");
+    qtest_quit(qts);
 }
 
 static void test_device_intro_abstract(void)
 {
-    qtest_start(common_args);
-    test_one_device("device");
-    qtest_end();
+    QTestState *qts = qtest_init(common_args);
+
+    test_one_device(qts, "device");
+    qtest_quit(qts);
 }
 
 static void test_device_intro_concrete(const void *args)
@@ -226,19 +231,20 @@ static void test_device_intro_concrete(const void *args)
     QList *types;
     QListEntry *entry;
     const char *type;
+    QTestState *qts;
 
-    qtest_start(args);
-    types = device_type_list(false);
+    qts = qtest_init(args);
+    types = device_type_list(qts, false);
 
     QLIST_FOREACH_ENTRY(types, entry) {
         type = qdict_get_try_str(qobject_to(QDict, qlist_entry_obj(entry)),
                                  "name");
         g_assert(type);
-        test_one_device(type);
+        test_one_device(qts, type);
     }
 
     qobject_unref(types);
-    qtest_end();
+    qtest_quit(qts);
     g_free((void *)args);
 }
 
@@ -247,10 +253,11 @@ static void test_abstract_interfaces(void)
     QList *all_types;
     QListEntry *e;
     QDict *index;
+    QTestState *qts;
 
-    qtest_start(common_args);
+    qts = qtest_init(common_args);
 
-    all_types = qom_list_types("interface", true);
+    all_types = qom_list_types(qts, "interface", true);
     index = qom_type_index(all_types);
 
     QLIST_FOREACH_ENTRY(all_types, e) {
@@ -273,7 +280,7 @@ static void test_abstract_interfaces(void)
 
     qobject_unref(all_types);
     qobject_unref(index);
-    qtest_end();
+    qtest_quit(qts);
 }
 
 static void add_machine_test_case(const char *mname)
-- 
2.21.0



  parent reply	other threads:[~2019-05-21 11:01 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-05-21 10:53 [Qemu-devel] [PULL 00/13] qtests and some iotest patches Thomas Huth
2019-05-21 10:53 ` [Qemu-devel] [PULL 01/13] tests/libqtest: Remove unused global_qtest-related wrapper functions Thomas Huth
2019-05-21 10:53 ` [Qemu-devel] [PULL 02/13] tests/libqtest: Fix description of qtest_vinitf() and qtest_initf() Thomas Huth
2019-05-21 10:53 ` [Qemu-devel] [PULL 03/13] tests/libqos: Get rid of global_qtest dependency in qvring_init() Thomas Huth
2019-05-21 10:53 ` [Qemu-devel] [PULL 04/13] tests/q35-test: Make test independent of global_qtest Thomas Huth
2019-05-21 10:53 ` [Qemu-devel] [PULL 05/13] tests/numa-test: Use qtest_init() instead of qtest_start() Thomas Huth
2019-05-21 10:53 ` [Qemu-devel] [PULL 06/13] tests/qom-test: " Thomas Huth
2019-05-21 10:53 ` Thomas Huth [this message]
2019-05-21 10:53 ` [Qemu-devel] [PULL 08/13] tests/hd-geo-test: " Thomas Huth
2019-05-21 10:53 ` [Qemu-devel] [PULL 09/13] tests/qemu-iotests/005: Add a sanity check for large sparse file support Thomas Huth
2019-05-21 10:53 ` [Qemu-devel] [PULL 10/13] tests/qemu-iotests/check: Pick a default machine if necessary Thomas Huth
2019-05-21 10:53 ` [Qemu-devel] [PULL 11/13] tests/qemu-iotests: Do not hard-code the path to bash Thomas Huth
2019-05-24  8:12   ` Ed Maste
2019-05-21 10:53 ` [Qemu-devel] [PULL 12/13] cirrus / travis: Add gnu-sed and bash for macOS and FreeBSD Thomas Huth
2019-05-21 10:53 ` [Qemu-devel] [PULL 13/13] tests/qemu-iotests: Remove the "_supported_os Linux" line from many tests Thomas Huth
2019-05-24  8:11   ` Ed Maste
2019-05-21 13:56 ` [Qemu-devel] [PULL 00/13] qtests and some iotest patches Peter Maydell

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190521105344.11637-8-thuth@redhat.com \
    --to=thuth@redhat.com \
    --cc=kwolf@redhat.com \
    --cc=lvivier@redhat.com \
    --cc=mreitz@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).