tests/m48t59: Make the test independent of global_qtest

Stop using the functions that require global_qtest here and pass
around the QTestState instead (global_qtest should finally get
removed since this causes problems with tests running in parallel).

Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
This commit is contained in:
Thomas Huth 2018-02-12 12:59:46 +01:00
parent 9c29830c90
commit 7cbe423c23
1 changed files with 30 additions and 30 deletions

View File

@ -30,45 +30,45 @@ static uint16_t reg_base = 0x1ff0; /* 0x7f0 for m48t02 */
static int base_year;
static bool use_mmio;
static uint8_t cmos_read_mmio(uint8_t reg)
static uint8_t cmos_read_mmio(QTestState *s, uint8_t reg)
{
return readb(base + (uint32_t)reg_base + (uint32_t)reg);
return qtest_readb(s, base + (uint32_t)reg_base + (uint32_t)reg);
}
static void cmos_write_mmio(uint8_t reg, uint8_t val)
static void cmos_write_mmio(QTestState *s, uint8_t reg, uint8_t val)
{
uint8_t data = val;
writeb(base + (uint32_t)reg_base + (uint32_t)reg, data);
qtest_writeb(s, base + (uint32_t)reg_base + (uint32_t)reg, data);
}
static uint8_t cmos_read_ioio(uint8_t reg)
static uint8_t cmos_read_ioio(QTestState *s, uint8_t reg)
{
outw(base + 0, reg_base + (uint16_t)reg);
return inb(base + 3);
qtest_outw(s, base + 0, reg_base + (uint16_t)reg);
return qtest_inb(s, base + 3);
}
static void cmos_write_ioio(uint8_t reg, uint8_t val)
static void cmos_write_ioio(QTestState *s, uint8_t reg, uint8_t val)
{
outw(base + 0, reg_base + (uint16_t)reg);
outb(base + 3, val);
qtest_outw(s, base + 0, reg_base + (uint16_t)reg);
qtest_outb(s, base + 3, val);
}
static uint8_t cmos_read(uint8_t reg)
static uint8_t cmos_read(QTestState *s, uint8_t reg)
{
if (use_mmio) {
return cmos_read_mmio(reg);
return cmos_read_mmio(s, reg);
} else {
return cmos_read_ioio(reg);
return cmos_read_ioio(s, reg);
}
}
static void cmos_write(uint8_t reg, uint8_t val)
static void cmos_write(QTestState *s, uint8_t reg, uint8_t val)
{
if (use_mmio) {
cmos_write_mmio(reg, val);
cmos_write_mmio(s, reg, val);
} else {
cmos_write_ioio(reg, val);
cmos_write_ioio(s, reg, val);
}
}
@ -106,18 +106,18 @@ static void print_tm(struct tm *tm)
}
#endif
static void cmos_get_date_time(struct tm *date)
static void cmos_get_date_time(QTestState *s, struct tm *date)
{
int sec, min, hour, mday, mon, year;
time_t ts;
struct tm dummy;
sec = cmos_read(RTC_SECONDS);
min = cmos_read(RTC_MINUTES);
hour = cmos_read(RTC_HOURS);
mday = cmos_read(RTC_DAY_OF_MONTH);
mon = cmos_read(RTC_MONTH);
year = cmos_read(RTC_YEAR);
sec = cmos_read(s, RTC_SECONDS);
min = cmos_read(s, RTC_MINUTES);
hour = cmos_read(s, RTC_HOURS);
mday = cmos_read(s, RTC_DAY_OF_MONTH);
mon = cmos_read(s, RTC_MONTH);
year = cmos_read(s, RTC_YEAR);
sec = bcd2dec(sec);
min = bcd2dec(min);
@ -145,7 +145,7 @@ static void cmos_get_date_time(struct tm *date)
static QTestState *m48t59_qtest_start(void)
{
return qtest_start("-rtc clock=vm");
return qtest_init("-rtc clock=vm");
}
static void bcd_check_time(void)
@ -172,10 +172,10 @@ static void bcd_check_time(void)
ts = time(NULL);
gmtime_r(&ts, &start);
cmos_get_date_time(&date[0]);
cmos_get_date_time(&date[1]);
cmos_get_date_time(&date[2]);
cmos_get_date_time(&date[3]);
cmos_get_date_time(s, &date[0]);
cmos_get_date_time(s, &date[1]);
cmos_get_date_time(s, &date[2]);
cmos_get_date_time(s, &date[3]);
ts = time(NULL);
gmtime_r(&ts, &end);
@ -226,8 +226,8 @@ static void fuzz_registers(void)
continue;
}
cmos_write(reg, val);
cmos_read(reg);
cmos_write(s, reg, val);
cmos_read(s, reg);
}
qtest_quit(s);