aboutsummaryrefslogtreecommitdiff
path: root/tests/wdt_ib700-test.c
diff options
context:
space:
mode:
authorEric Blake <eblake@redhat.com>2017-09-11 12:20:09 -0500
committerThomas Huth <thuth@redhat.com>2018-02-14 11:43:42 +0100
commitdb57d7a3c284db2315d92f55962597cc7276579a (patch)
tree1c663445ce2ff0d2cf2980c79b11659de7fb9bce /tests/wdt_ib700-test.c
parent8b19f2b77e72c4b0d5f26a2ab6327b407bca195c (diff)
downloadqemu-db57d7a3c284db2315d92f55962597cc7276579a.zip
qemu-db57d7a3c284db2315d92f55962597cc7276579a.tar.gz
qemu-db57d7a3c284db2315d92f55962597cc7276579a.tar.bz2
wdt_ib700-test: Drop dependence on global_qtest
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 <eblake@redhat.com> Reviewed-by: Thomas Huth <thuth@redhat.com> Signed-off-by: Thomas Huth <thuth@redhat.com>
Diffstat (limited to 'tests/wdt_ib700-test.c')
-rw-r--r--tests/wdt_ib700-test.c63
1 files 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)