{"id":808931,"url":"http://patchwork.ozlabs.org/api/1.0/patches/808931/?format=json","project":{"id":14,"url":"http://patchwork.ozlabs.org/api/1.0/projects/14/?format=json","name":"QEMU Development","link_name":"qemu-devel","list_id":"qemu-devel.nongnu.org","list_email":"qemu-devel@nongnu.org","web_url":"","scm_url":"","webscm_url":""},"msgid":"<20170901180340.30009-26-eblake@redhat.com>","date":"2017-09-01T18:03:36","name":"[v6,25/29] wdt_ib700-test: Drop dependence on global_qtest","commit_ref":null,"pull_url":null,"state":"new","archived":false,"hash":"cca1d02452afce2277e7969d070d47e32ad68ad6","submitter":{"id":6591,"url":"http://patchwork.ozlabs.org/api/1.0/people/6591/?format=json","name":"Eric Blake","email":"eblake@redhat.com"},"delegate":null,"mbox":"http://patchwork.ozlabs.org/project/qemu-devel/patch/20170901180340.30009-26-eblake@redhat.com/mbox/","series":[{"id":1089,"url":"http://patchwork.ozlabs.org/api/1.0/series/1089/?format=json","date":"2017-09-01T18:03:12","name":"Preliminary libqtest cleanups","version":6,"mbox":"http://patchwork.ozlabs.org/series/1089/mbox/"}],"check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/808931/checks/","tags":{},"headers":{"Return-Path":"<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming@bilbo.ozlabs.org","Authentication-Results":["ozlabs.org;\n\tspf=pass (mailfrom) smtp.mailfrom=nongnu.org\n\t(client-ip=2001:4830:134:3::11; helo=lists.gnu.org;\n\tenvelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n\treceiver=<UNKNOWN>)","ext-mx10.extmail.prod.ext.phx2.redhat.com;\n\tdmarc=none (p=none dis=none) header.from=redhat.com","ext-mx10.extmail.prod.ext.phx2.redhat.com;\n\tspf=fail smtp.mailfrom=eblake@redhat.com"],"Received":["from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11])\n\t(using TLSv1 with cipher AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3xkSDR4nmlz9sMN\n\tfor <incoming@patchwork.ozlabs.org>;\n\tSat,  2 Sep 2017 04:18:47 +1000 (AEST)","from localhost ([::1]:53172 helo=lists.gnu.org)\n\tby lists.gnu.org with esmtp (Exim 4.71) (envelope-from\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>)\n\tid 1dnqWj-0004FL-LR\n\tfor incoming@patchwork.ozlabs.org; Fri, 01 Sep 2017 14:18:45 -0400","from eggs.gnu.org ([2001:4830:134:3::10]:56225)\n\tby lists.gnu.org with esmtp (Exim 4.71)\n\t(envelope-from <eblake@redhat.com>) id 1dnqIs-0007VU-GR\n\tfor qemu-devel@nongnu.org; Fri, 01 Sep 2017 14:04:27 -0400","from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)\n\t(envelope-from <eblake@redhat.com>) id 1dnqIr-00022P-5a\n\tfor qemu-devel@nongnu.org; Fri, 01 Sep 2017 14:04:26 -0400","from mx1.redhat.com ([209.132.183.28]:56298)\n\tby eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32)\n\t(Exim 4.71) (envelope-from <eblake@redhat.com>) id 1dnqIq-00021f-Ty\n\tfor qemu-devel@nongnu.org; Fri, 01 Sep 2017 14:04:25 -0400","from smtp.corp.redhat.com\n\t(int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15])\n\t(using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby mx1.redhat.com (Postfix) with ESMTPS id 014C65D5F4\n\tfor <qemu-devel@nongnu.org>; Fri,  1 Sep 2017 18:04:24 +0000 (UTC)","from red.redhat.com (ovpn-121-149.rdu2.redhat.com [10.10.121.149])\n\tby smtp.corp.redhat.com (Postfix) with ESMTP id 603BB5450A;\n\tFri,  1 Sep 2017 18:04:23 +0000 (UTC)"],"DMARC-Filter":"OpenDMARC Filter v1.3.2 mx1.redhat.com 014C65D5F4","From":"Eric Blake <eblake@redhat.com>","To":"qemu-devel@nongnu.org","Date":"Fri,  1 Sep 2017 13:03:36 -0500","Message-Id":"<20170901180340.30009-26-eblake@redhat.com>","In-Reply-To":"<20170901180340.30009-1-eblake@redhat.com>","References":"<20170901180340.30009-1-eblake@redhat.com>","X-Scanned-By":"MIMEDefang 2.79 on 10.5.11.15","X-Greylist":"Sender IP whitelisted, not delayed by milter-greylist-4.5.16\n\t(mx1.redhat.com [10.5.110.39]);\n\tFri, 01 Sep 2017 18:04:24 +0000 (UTC)","X-detected-operating-system":"by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic]\n\t[fuzzy]","X-Received-From":"209.132.183.28","Subject":"[Qemu-devel] [PATCH v6 25/29] wdt_ib700-test: Drop dependence on\n\tglobal_qtest","X-BeenThere":"qemu-devel@nongnu.org","X-Mailman-Version":"2.1.21","Precedence":"list","List-Id":"<qemu-devel.nongnu.org>","List-Unsubscribe":"<https://lists.nongnu.org/mailman/options/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>","List-Archive":"<http://lists.nongnu.org/archive/html/qemu-devel/>","List-Post":"<mailto:qemu-devel@nongnu.org>","List-Help":"<mailto:qemu-devel-request@nongnu.org?subject=help>","List-Subscribe":"<https://lists.nongnu.org/mailman/listinfo/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=subscribe>","Cc":"pbonzini@redhat.com, armbru@redhat.com","Errors-To":"qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org","Sender":"\"Qemu-devel\"\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>"},"content":"As a general rule, we prefer avoiding implicit global state\nbecause it makes code harder to safely copy and paste without\nthinking about the global state.  Improve this test to be\nexplicit about the state.\n\nSigned-off-by: Eric Blake <eblake@redhat.com>\n---\n tests/wdt_ib700-test.c | 63 +++++++++++++++++++++++++++-----------------------\n 1 file changed, 34 insertions(+), 29 deletions(-)","diff":"diff --git a/tests/wdt_ib700-test.c b/tests/wdt_ib700-test.c\nindex 4fc8eeae86..4bb8374011 100644\n--- a/tests/wdt_ib700-test.c\n+++ b/tests/wdt_ib700-test.c\n@@ -11,9 +11,9 @@\n #include \"libqtest.h\"\n #include \"qemu/timer.h\"\n\n-static void qmp_check_no_event(void)\n+static void qmp_check_no_event(QTestState *s)\n {\n-    QDict *resp = qmp(\"{'execute':'query-status'}\");\n+    QDict *resp = qtest_qmp(s, \"{'execute':'query-status'}\");\n     g_assert(qdict_haskey(resp, \"return\"));\n     QDECREF(resp);\n }\n@@ -22,30 +22,30 @@ static QDict *ib700_program_and_wait(QTestState *s)\n {\n     QDict *event, *data;\n\n-    clock_step(NANOSECONDS_PER_SECOND * 40);\n-    qmp_check_no_event();\n+    qtest_clock_step(s, NANOSECONDS_PER_SECOND * 40);\n+    qmp_check_no_event(s);\n\n     /* 2 second limit */\n-    outb(0x443, 14);\n+    qtest_outb(s, 0x443, 14);\n\n     /* Ping */\n-    clock_step(NANOSECONDS_PER_SECOND);\n-    qmp_check_no_event();\n-    outb(0x443, 14);\n+    qtest_clock_step(s, NANOSECONDS_PER_SECOND);\n+    qmp_check_no_event(s);\n+    qtest_outb(s, 0x443, 14);\n\n     /* Disable */\n-    clock_step(NANOSECONDS_PER_SECOND);\n-    qmp_check_no_event();\n-    outb(0x441, 1);\n-    clock_step(3 * NANOSECONDS_PER_SECOND);\n-    qmp_check_no_event();\n+    qtest_clock_step(s, NANOSECONDS_PER_SECOND);\n+    qmp_check_no_event(s);\n+    qtest_outb(s, 0x441, 1);\n+    qtest_clock_step(s, 3 * NANOSECONDS_PER_SECOND);\n+    qmp_check_no_event(s);\n\n     /* Enable and let it fire */\n-    outb(0x443, 13);\n-    clock_step(3 * NANOSECONDS_PER_SECOND);\n-    qmp_check_no_event();\n-    clock_step(2 * NANOSECONDS_PER_SECOND);\n-    event = qmp_eventwait_ref(\"WATCHDOG\");\n+    qtest_outb(s, 0x443, 13);\n+    qtest_clock_step(s, 3 * NANOSECONDS_PER_SECOND);\n+    qmp_check_no_event(s);\n+    qtest_clock_step(s, 2 * NANOSECONDS_PER_SECOND);\n+    event = qtest_qmp_eventwait_ref(s, \"WATCHDOG\");\n     data = qdict_get_qdict(event, \"data\");\n     QINCREF(data);\n     QDECREF(event);\n@@ -56,48 +56,53 @@ static QDict *ib700_program_and_wait(QTestState *s)\n static void ib700_pause(void)\n {\n     QDict *d;\n-    QTestState *s = qtest_start(\"-watchdog-action pause -device ib700\");\n+    QTestState *s = qtest_init(\"-watchdog-action pause -device ib700\");\n+\n     qtest_irq_intercept_in(s, \"ioapic\");\n     d = ib700_program_and_wait(s);\n     g_assert(!strcmp(qdict_get_str(d, \"action\"), \"pause\"));\n     QDECREF(d);\n-    qmp_eventwait(\"STOP\");\n-    qtest_end();\n+    qtest_qmp_eventwait(s, \"STOP\");\n+    qtest_quit(s);\n }\n\n static void ib700_reset(void)\n {\n     QDict *d;\n-    QTestState *s = qtest_start(\"-watchdog-action reset -device ib700\");\n+    QTestState *s = qtest_init(\"-watchdog-action reset -device ib700\");\n+\n     qtest_irq_intercept_in(s, \"ioapic\");\n     d = ib700_program_and_wait(s);\n     g_assert(!strcmp(qdict_get_str(d, \"action\"), \"reset\"));\n     QDECREF(d);\n-    qmp_eventwait(\"RESET\");\n-    qtest_end();\n+    qtest_qmp_eventwait(s, \"RESET\");\n+    qtest_quit(s);\n }\n\n static void ib700_shutdown(void)\n {\n     QDict *d;\n-    QTestState *s = qtest_start(\"-watchdog-action reset -no-reboot -device ib700\");\n+    QTestState *s;\n+\n+    s = qtest_init(\"-watchdog-action reset -no-reboot -device ib700\");\n     qtest_irq_intercept_in(s, \"ioapic\");\n     d = ib700_program_and_wait(s);\n     g_assert(!strcmp(qdict_get_str(d, \"action\"), \"reset\"));\n     QDECREF(d);\n-    qmp_eventwait(\"SHUTDOWN\");\n-    qtest_end();\n+    qtest_qmp_eventwait(s, \"SHUTDOWN\");\n+    qtest_quit(s);\n }\n\n static void ib700_none(void)\n {\n     QDict *d;\n-    QTestState *s = qtest_start(\"-watchdog-action none -device ib700\");\n+    QTestState *s = qtest_init(\"-watchdog-action none -device ib700\");\n+\n     qtest_irq_intercept_in(s, \"ioapic\");\n     d = ib700_program_and_wait(s);\n     g_assert(!strcmp(qdict_get_str(d, \"action\"), \"none\"));\n     QDECREF(d);\n-    qtest_end();\n+    qtest_quit(s);\n }\n\n int main(int argc, char **argv)\n","prefixes":["v6","25/29"]}