[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 11/18] wdt_ib700-test: Drop dependence on global_qtes
From: |
Thomas Huth |
Subject: |
[Qemu-devel] [PULL 11/18] wdt_ib700-test: Drop dependence on global_qtest |
Date: |
Wed, 14 Feb 2018 12:20:27 +0100 |
From: Eric Blake <address@hidden>
As a general rule, we prefer avoiding implicit global state
because it makes code harder to safely copy and paste without
thinking about the global state. Improve this test to be
explicit about the state.
Signed-off-by: Eric Blake <address@hidden>
Reviewed-by: Thomas Huth <address@hidden>
Signed-off-by: Thomas Huth <address@hidden>
---
tests/wdt_ib700-test.c | 63 +++++++++++++++++++++++++++-----------------------
1 file changed, 34 insertions(+), 29 deletions(-)
diff --git a/tests/wdt_ib700-test.c b/tests/wdt_ib700-test.c
index d777f32..3b5bbcf 100644
--- a/tests/wdt_ib700-test.c
+++ b/tests/wdt_ib700-test.c
@@ -12,9 +12,9 @@
#include "qapi/qmp/qdict.h"
#include "qemu/timer.h"
-static void qmp_check_no_event(void)
+static void qmp_check_no_event(QTestState *s)
{
- QDict *resp = qmp("{'execute':'query-status'}");
+ QDict *resp = qtest_qmp(s, "{'execute':'query-status'}");
g_assert(qdict_haskey(resp, "return"));
QDECREF(resp);
}
@@ -23,30 +23,30 @@ static QDict *ib700_program_and_wait(QTestState *s)
{
QDict *event, *data;
- clock_step(NANOSECONDS_PER_SECOND * 40);
- qmp_check_no_event();
+ qtest_clock_step(s, NANOSECONDS_PER_SECOND * 40);
+ qmp_check_no_event(s);
/* 2 second limit */
- outb(0x443, 14);
+ qtest_outb(s, 0x443, 14);
/* Ping */
- clock_step(NANOSECONDS_PER_SECOND);
- qmp_check_no_event();
- outb(0x443, 14);
+ qtest_clock_step(s, NANOSECONDS_PER_SECOND);
+ qmp_check_no_event(s);
+ qtest_outb(s, 0x443, 14);
/* Disable */
- clock_step(NANOSECONDS_PER_SECOND);
- qmp_check_no_event();
- outb(0x441, 1);
- clock_step(3 * NANOSECONDS_PER_SECOND);
- qmp_check_no_event();
+ qtest_clock_step(s, NANOSECONDS_PER_SECOND);
+ qmp_check_no_event(s);
+ qtest_outb(s, 0x441, 1);
+ qtest_clock_step(s, 3 * NANOSECONDS_PER_SECOND);
+ qmp_check_no_event(s);
/* Enable and let it fire */
- outb(0x443, 13);
- clock_step(3 * NANOSECONDS_PER_SECOND);
- qmp_check_no_event();
- clock_step(2 * NANOSECONDS_PER_SECOND);
- event = qmp_eventwait_ref("WATCHDOG");
+ qtest_outb(s, 0x443, 13);
+ qtest_clock_step(s, 3 * NANOSECONDS_PER_SECOND);
+ qmp_check_no_event(s);
+ qtest_clock_step(s, 2 * NANOSECONDS_PER_SECOND);
+ event = qtest_qmp_eventwait_ref(s, "WATCHDOG");
data = qdict_get_qdict(event, "data");
QINCREF(data);
QDECREF(event);
@@ -57,48 +57,53 @@ static QDict *ib700_program_and_wait(QTestState *s)
static void ib700_pause(void)
{
QDict *d;
- QTestState *s = qtest_start("-watchdog-action pause -device ib700");
+ QTestState *s = qtest_init("-watchdog-action pause -device ib700");
+
qtest_irq_intercept_in(s, "ioapic");
d = ib700_program_and_wait(s);
g_assert(!strcmp(qdict_get_str(d, "action"), "pause"));
QDECREF(d);
- qmp_eventwait("STOP");
- qtest_end();
+ qtest_qmp_eventwait(s, "STOP");
+ qtest_quit(s);
}
static void ib700_reset(void)
{
QDict *d;
- QTestState *s = qtest_start("-watchdog-action reset -device ib700");
+ QTestState *s = qtest_init("-watchdog-action reset -device ib700");
+
qtest_irq_intercept_in(s, "ioapic");
d = ib700_program_and_wait(s);
g_assert(!strcmp(qdict_get_str(d, "action"), "reset"));
QDECREF(d);
- qmp_eventwait("RESET");
- qtest_end();
+ qtest_qmp_eventwait(s, "RESET");
+ qtest_quit(s);
}
static void ib700_shutdown(void)
{
QDict *d;
- QTestState *s = qtest_start("-watchdog-action reset -no-reboot -device
ib700");
+ QTestState *s;
+
+ s = qtest_init("-watchdog-action reset -no-reboot -device ib700");
qtest_irq_intercept_in(s, "ioapic");
d = ib700_program_and_wait(s);
g_assert(!strcmp(qdict_get_str(d, "action"), "reset"));
QDECREF(d);
- qmp_eventwait("SHUTDOWN");
- qtest_end();
+ qtest_qmp_eventwait(s, "SHUTDOWN");
+ qtest_quit(s);
}
static void ib700_none(void)
{
QDict *d;
- QTestState *s = qtest_start("-watchdog-action none -device ib700");
+ QTestState *s = qtest_init("-watchdog-action none -device ib700");
+
qtest_irq_intercept_in(s, "ioapic");
d = ib700_program_and_wait(s);
g_assert(!strcmp(qdict_get_str(d, "action"), "none"));
QDECREF(d);
- qtest_end();
+ qtest_quit(s);
}
int main(int argc, char **argv)
--
1.8.3.1
- [Qemu-devel] [PULL 01/18] tests: Clean up wait for event, (continued)
- [Qemu-devel] [PULL 01/18] tests: Clean up wait for event, Thomas Huth, 2018/02/14
- [Qemu-devel] [PULL 03/18] libqos: Track QTestState with QPCIBus, Thomas Huth, 2018/02/14
- [Qemu-devel] [PULL 02/18] libqtest: Use qemu_strtoul(), Thomas Huth, 2018/02/14
- [Qemu-devel] [PULL 05/18] libqos: Use explicit QTestState for rtas operations, Thomas Huth, 2018/02/14
- [Qemu-devel] [PULL 04/18] libqos: Use explicit QTestState for fw_cfg operations, Thomas Huth, 2018/02/14
- [Qemu-devel] [PULL 06/18] libqos: Use explicit QTestState for i2c operations, Thomas Huth, 2018/02/14
- [Qemu-devel] [PULL 07/18] libqos: Use explicit QTestState for ahci operations, Thomas Huth, 2018/02/14
- [Qemu-devel] [PULL 09/18] qmp-test: Drop dependence on global_qtest, Thomas Huth, 2018/02/14
- [Qemu-devel] [PULL 08/18] libqos: Use explicit QTestState for remaining libqos operations, Thomas Huth, 2018/02/14
- [Qemu-devel] [PULL 12/18] tests/boot-serial: Enable the boot-serial test on SPARC machines, too, Thomas Huth, 2018/02/14
- [Qemu-devel] [PULL 11/18] wdt_ib700-test: Drop dependence on global_qtest,
Thomas Huth <=
- [Qemu-devel] [PULL 10/18] tests/boot-sector: Drop dependence on global_qtest, Thomas Huth, 2018/02/14
- [Qemu-devel] [PULL 13/18] tests/boot-serial: Add tests for PowerPC Mac machines, Thomas Huth, 2018/02/14
- [Qemu-devel] [PULL 14/18] tests/boot-serial-test: Add support for the aarch64 virt machine, Thomas Huth, 2018/02/14
- [Qemu-devel] [PULL 15/18] tests/m48t59: Fix and re-enable the test for sparc, Thomas Huth, 2018/02/14
- [Qemu-devel] [PULL 16/18] tests/m48t59: Make the test independent of global_qtest, Thomas Huth, 2018/02/14
- [Qemu-devel] [PULL 18/18] tests/m48t59: Use the m48t59 test on ppc, too, Thomas Huth, 2018/02/14
- [Qemu-devel] [PULL 17/18] tests/Makefile: Derive check-qtest-ppc64-y from check-qtest-ppc-y, Thomas Huth, 2018/02/14
- Re: [Qemu-devel] [PULL 00/18] qtest patches, Peter Maydell, 2018/02/15