mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-04 16:23:55 -06:00
tests/qtest: Use qtest_system_reset() instead of open-coded versions
Use the qtest_system_reset() function in various tests that were previously open-coding the system-reset. Note that in several cases this fixes a bug where the test did not wait for the RESET QMP event before continuing. Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Signed-off-by: Fabiano Rosas <farosas@suse.de>
This commit is contained in:
parent
6b76264ed0
commit
9881d3d168
7 changed files with 10 additions and 47 deletions
|
@ -959,7 +959,7 @@ static void test_acpi_piix4_tcg_bridge(void)
|
|||
free_test_data(&data);
|
||||
|
||||
/* check that reboot/reset doesn't change any ACPI tables */
|
||||
qtest_qmp_send(data.qts, "{'execute':'system_reset' }");
|
||||
qtest_system_reset(data.qts);
|
||||
process_acpi_tables(&data);
|
||||
free_test_data(&data);
|
||||
}
|
||||
|
@ -1216,7 +1216,7 @@ static void test_acpi_q35_multif_bridge(void)
|
|||
free_test_data(&data);
|
||||
|
||||
/* check that reboot/reset doesn't change any ACPI tables */
|
||||
qtest_qmp_send(data.qts, "{'execute':'system_reset' }");
|
||||
qtest_system_reset(data.qts);
|
||||
process_acpi_tables(&data);
|
||||
free_test_data(&data);
|
||||
}
|
||||
|
|
|
@ -40,12 +40,7 @@ static void test_a_boot_order(const char *machine,
|
|||
machine ?: "", test_args);
|
||||
actual = read_boot_order(qts);
|
||||
g_assert_cmphex(actual, ==, expected_boot);
|
||||
qtest_qmp_assert_success(qts, "{ 'execute': 'system_reset' }");
|
||||
/*
|
||||
* system_reset only requests reset. We get a RESET event after
|
||||
* the actual reset completes. Need to wait for that.
|
||||
*/
|
||||
qtest_qmp_eventwait(qts, "RESET");
|
||||
qtest_system_reset(qts);
|
||||
actual = read_boot_order(qts);
|
||||
g_assert_cmphex(actual, ==, expected_reboot);
|
||||
qtest_quit(qts);
|
||||
|
|
|
@ -900,7 +900,6 @@ static void test_override_hot_unplug(TestArgs *args, const char *devid,
|
|||
QTestState *qts;
|
||||
char *joined_args;
|
||||
QFWCFG *fw_cfg;
|
||||
QDict *response;
|
||||
int i;
|
||||
|
||||
joined_args = g_strjoinv(" ", args->argv);
|
||||
|
@ -913,13 +912,7 @@ static void test_override_hot_unplug(TestArgs *args, const char *devid,
|
|||
/* unplug device an restart */
|
||||
qtest_qmp_device_del_send(qts, devid);
|
||||
|
||||
response = qtest_qmp(qts,
|
||||
"{ 'execute': 'system_reset', 'arguments': { }}");
|
||||
g_assert(response);
|
||||
g_assert(!qdict_haskey(response, "error"));
|
||||
qobject_unref(response);
|
||||
|
||||
qtest_qmp_eventwait(qts, "RESET");
|
||||
qtest_system_reset(qts);
|
||||
|
||||
read_bootdevices(fw_cfg, expected2);
|
||||
|
||||
|
|
|
@ -83,7 +83,6 @@ static void test_smram_lock(void)
|
|||
{
|
||||
QPCIBus *pcibus;
|
||||
QPCIDevice *pcidev;
|
||||
QDict *response;
|
||||
QTestState *qts;
|
||||
|
||||
qts = qtest_init("-M q35");
|
||||
|
@ -107,10 +106,7 @@ static void test_smram_lock(void)
|
|||
g_assert(smram_test_bit(pcidev, MCH_HOST_BRIDGE_SMRAM_D_OPEN) == false);
|
||||
|
||||
/* reset */
|
||||
response = qtest_qmp(qts, "{'execute': 'system_reset', 'arguments': {} }");
|
||||
g_assert(response);
|
||||
g_assert(!qdict_haskey(response, "error"));
|
||||
qobject_unref(response);
|
||||
qtest_system_reset(qts);
|
||||
|
||||
/* check open is settable again */
|
||||
smram_set_bit(pcidev, MCH_HOST_BRIDGE_SMRAM_D_OPEN, false);
|
||||
|
@ -194,7 +190,6 @@ static void test_smram_smbase_lock(void)
|
|||
{
|
||||
QPCIBus *pcibus;
|
||||
QPCIDevice *pcidev;
|
||||
QDict *response;
|
||||
QTestState *qts;
|
||||
int i;
|
||||
|
||||
|
@ -237,10 +232,7 @@ static void test_smram_smbase_lock(void)
|
|||
}
|
||||
|
||||
/* reset */
|
||||
response = qtest_qmp(qts, "{'execute': 'system_reset', 'arguments': {} }");
|
||||
g_assert(response);
|
||||
g_assert(!qdict_haskey(response, "error"));
|
||||
qobject_unref(response);
|
||||
qtest_system_reset(qts);
|
||||
|
||||
/* check RAM at SMBASE is available after reset */
|
||||
g_assert_cmpint(qtest_readb(qts, SMBASE), ==, SMRAM_TEST_PATTERN);
|
||||
|
|
|
@ -103,8 +103,7 @@ static void restart_qemu_or_continue(char *path)
|
|||
old_path = g_strdup(path);
|
||||
qtest_start(path);
|
||||
} else { /* if cmd line is the same, reset the guest */
|
||||
qobject_unref(qmp("{ 'execute': 'system_reset' }"));
|
||||
qmp_eventwait("RESET");
|
||||
qtest_system_reset(global_qtest);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -169,14 +169,6 @@ static uint32_t reset(uint32_t gpio, unsigned int offset)
|
|||
return 0x0;
|
||||
}
|
||||
|
||||
static void system_reset(void)
|
||||
{
|
||||
QDict *r;
|
||||
r = qtest_qmp(global_qtest, "{'execute': 'system_reset'}");
|
||||
g_assert_false(qdict_haskey(r, "error"));
|
||||
qobject_unref(r);
|
||||
}
|
||||
|
||||
static void test_idr_reset_value(void)
|
||||
{
|
||||
/*
|
||||
|
@ -214,7 +206,7 @@ static void test_idr_reset_value(void)
|
|||
gpio_writel(GPIO_H, OTYPER, 0xDEADBEEF);
|
||||
gpio_writel(GPIO_H, PUPDR, 0xDEADBEEF);
|
||||
|
||||
system_reset();
|
||||
qtest_system_reset(global_qtest);
|
||||
|
||||
uint32_t moder = gpio_readl(GPIO_A, MODER);
|
||||
uint32_t odr = gpio_readl(GPIO_A, ODR);
|
||||
|
|
|
@ -47,14 +47,6 @@ static void syscfg_set_irq(int num, int level)
|
|||
qtest_set_irq_in(global_qtest, SOC, NULL, num, level);
|
||||
}
|
||||
|
||||
static void system_reset(void)
|
||||
{
|
||||
QDict *response;
|
||||
response = qtest_qmp(global_qtest, "{'execute': 'system_reset'}");
|
||||
g_assert(qdict_haskey(response, "return"));
|
||||
qobject_unref(response);
|
||||
}
|
||||
|
||||
static void test_reset(void)
|
||||
{
|
||||
/*
|
||||
|
@ -182,7 +174,7 @@ static void test_set_only_bits(void)
|
|||
syscfg_writel(SYSCFG_SWPR2, 0x00000000);
|
||||
g_assert_cmphex(syscfg_readl(SYSCFG_SWPR2), ==, 0xFFFFFFFF);
|
||||
|
||||
system_reset();
|
||||
qtest_system_reset(global_qtest);
|
||||
}
|
||||
|
||||
static void test_clear_only_bits(void)
|
||||
|
@ -194,7 +186,7 @@ static void test_clear_only_bits(void)
|
|||
syscfg_writel(SYSCFG_CFGR1, 0x00000001);
|
||||
g_assert_cmphex(syscfg_readl(SYSCFG_CFGR1), ==, 0x00000000);
|
||||
|
||||
system_reset();
|
||||
qtest_system_reset(global_qtest);
|
||||
}
|
||||
|
||||
static void test_interrupt(void)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue