2014-02-09 11:43:10 +08:00
|
|
|
/*
|
|
|
|
* QTest testcase for VirtIO RNG
|
|
|
|
*
|
|
|
|
* Copyright (c) 2014 SUSE LINUX Products GmbH
|
|
|
|
*
|
|
|
|
* This work is licensed under the terms of the GNU GPL, version 2 or later.
|
|
|
|
* See the COPYING file in the top-level directory.
|
|
|
|
*/
|
|
|
|
|
2016-02-09 02:08:51 +08:00
|
|
|
#include "qemu/osdep.h"
|
2014-02-09 11:43:10 +08:00
|
|
|
#include "libqtest.h"
|
2014-09-26 17:28:09 +08:00
|
|
|
#include "libqos/pci.h"
|
|
|
|
|
|
|
|
#define PCI_SLOT_HP 0x06
|
2014-02-09 11:43:10 +08:00
|
|
|
|
|
|
|
/* Tests only initialization so far. TODO: Replace with functional tests */
|
|
|
|
static void pci_nop(void)
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
2014-09-26 17:28:09 +08:00
|
|
|
static void hotplug(void)
|
|
|
|
{
|
2016-10-17 18:30:24 +08:00
|
|
|
const char *arch = qtest_get_arch();
|
|
|
|
|
2018-08-06 14:53:35 +08:00
|
|
|
qtest_qmp_device_add("virtio-rng-pci", "rng1",
|
|
|
|
"{'addr': %s}", stringify(PCI_SLOT_HP));
|
2016-10-17 18:30:24 +08:00
|
|
|
|
|
|
|
if (strcmp(arch, "i386") == 0 || strcmp(arch, "x86_64") == 0) {
|
|
|
|
qpci_unplug_acpi_device_test("rng1", PCI_SLOT_HP);
|
|
|
|
}
|
2014-09-26 17:28:09 +08:00
|
|
|
}
|
|
|
|
|
2014-02-09 11:43:10 +08:00
|
|
|
int main(int argc, char **argv)
|
|
|
|
{
|
|
|
|
int ret;
|
|
|
|
|
|
|
|
g_test_init(&argc, &argv, NULL);
|
|
|
|
qtest_add_func("/virtio/rng/pci/nop", pci_nop);
|
2014-09-26 17:28:09 +08:00
|
|
|
qtest_add_func("/virtio/rng/pci/hotplug", hotplug);
|
2014-02-09 11:43:10 +08:00
|
|
|
|
|
|
|
qtest_start("-device virtio-rng-pci");
|
|
|
|
ret = g_test_run();
|
|
|
|
|
|
|
|
qtest_end();
|
|
|
|
|
|
|
|
return ret;
|
|
|
|
}
|