@@ -1835,7 +1835,7 @@ static void create_ahci_io_test(enum IOMode type, enum AddrMode addr,
int main(int argc, char **argv)
{
- const char *arch, *base;
+ const char *base;
int ret;
int fd;
int c;
@@ -1867,8 +1867,7 @@ int main(int argc, char **argv)
}
/* Check architecture */
- arch = qtest_get_arch();
- if (strcmp(arch, "i386") && strcmp(arch, "x86_64")) {
+ if (strcmp(qtest_get_base_arch(), "x86")) {
g_test_message("Skipping test for non-x86");
return 0;
}
@@ -253,11 +253,9 @@ static void test_reset_before_transfer_ok(void)
int main(int argc, char **argv)
{
- const char *arch = qtest_get_arch();
-
g_test_init(&argc, &argv, NULL);
- if (strcmp(arch, "i386") == 0) {
+ if (!strcmp(qtest_get_base_arch(), "x86") && qtest_get_arch_bits() == 32) {
qtest_add_func("am53c974/test_cmdfifo_underflow_ok",
test_cmdfifo_underflow_ok);
qtest_add_func("am53c974/test_cmdfifo_underflow2_ok",
@@ -2044,7 +2044,7 @@ static void test_acpi_virt_oem_fields(void)
int main(int argc, char *argv[])
{
- const char *arch = qtest_get_arch();
+ const char *arch = qtest_get_base_arch();
bool has_kvm, has_tcg;
char *v_env = getenv("V");
int ret;
@@ -2063,7 +2063,7 @@ int main(int argc, char *argv[])
return 0;
}
- if (strcmp(arch, "i386") == 0 || strcmp(arch, "x86_64") == 0) {
+ if (strcmp(arch, "x86") == 0) {
ret = boot_sector_init(disk);
if (ret) {
return ret;
@@ -2173,7 +2173,7 @@ int main(int argc, char *argv[])
#endif
}
}
- } else if (strcmp(arch, "aarch64") == 0) {
+ } else if (strcmp(arch, "arm") == 0 && qtest_get_arch_bits() == 64) {
if (has_tcg && qtest_has_device("virtio-blk-pci")) {
qtest_add_func("acpi/virt", test_acpi_virt_tcg);
qtest_add_func("acpi/virt/acpihmatvirt",
@@ -90,7 +90,7 @@ int boot_sector_init(char *fname)
int fd, ret;
size_t len;
char *boot_code;
- const char *arch = qtest_get_arch();
+ const char *arch = qtest_get_base_arch();
fd = mkstemp(fname);
if (fd < 0) {
@@ -98,12 +98,12 @@ int boot_sector_init(char *fname)
return 1;
}
- if (g_str_equal(arch, "i386") || g_str_equal(arch, "x86_64")) {
+ if (g_str_equal(arch, "x86")) {
/* Q35 requires a minimum 0x7e000 bytes disk (bug or feature?) */
len = MAX(0x7e000, sizeof(x86_boot_sector));
boot_code = g_malloc0(len);
memcpy(boot_code, x86_boot_sector, sizeof(x86_boot_sector));
- } else if (g_str_equal(arch, "ppc64")) {
+ } else if (g_str_equal(arch, "ppc") && qtest_get_arch_bits() == 64) {
/* For Open Firmware based system, use a Forth script */
boot_code = g_strdup_printf("\\ Bootscript\n%x %x c! %x %x c!\n",
LOW(SIGNATURE), SIGNATURE_ADDR,
@@ -65,7 +65,6 @@ static void process_device_remove(QTestState *qtest, const char *id)
static void test_pci_unplug_request(void)
{
QTestState *qtest;
- const char *arch = qtest_get_arch();
const char *machine_addition = "";
if (!qtest_has_device("virtio-mouse-pci")) {
@@ -73,7 +72,7 @@ static void test_pci_unplug_request(void)
return;
}
- if (strcmp(arch, "i386") == 0 || strcmp(arch, "x86_64") == 0) {
+ if (strcmp(qtest_get_base_arch(), "x86") == 0) {
machine_addition = "-machine pc";
}
@@ -107,7 +106,6 @@ static void test_q35_pci_unplug_request(void)
static void test_pci_unplug_json_request(void)
{
QTestState *qtest;
- const char *arch = qtest_get_arch();
const char *machine_addition = "";
if (!qtest_has_device("virtio-mouse-pci")) {
@@ -115,7 +113,7 @@ static void test_pci_unplug_json_request(void)
return;
}
- if (strcmp(arch, "i386") == 0 || strcmp(arch, "x86_64") == 0) {
+ if (strcmp(qtest_get_base_arch(), "x86") == 0) {
machine_addition = "-machine pc";
}
@@ -125,9 +125,9 @@ static void drive_del(QTestState *qts)
*/
static const char *qvirtio_get_dev_type(void)
{
- const char *arch = qtest_get_arch();
+ const char *arch = qtest_get_base_arch();
- if (g_str_equal(arch, "arm") || g_str_equal(arch, "aarch64")) {
+ if (g_str_equal(arch, "arm")) {
return "device"; /* for virtio-mmio */
} else if (g_str_equal(arch, "s390x")) {
return "ccw";
@@ -249,7 +249,6 @@ static void test_drive_del_device_del(void)
static void test_cli_device_del(void)
{
QTestState *qts;
- const char *arch = qtest_get_arch();
const char *machine_addition = "";
if (!has_device_builtin("virtio-blk")) {
@@ -257,7 +256,7 @@ static void test_cli_device_del(void)
return;
}
- if (strcmp(arch, "i386") == 0 || strcmp(arch, "x86_64") == 0) {
+ if (strcmp(qtest_get_base_arch(), "x86") == 0) {
machine_addition = "-machine pc";
}
@@ -323,7 +322,6 @@ static void test_empty_device_del(void)
static void test_device_add_and_del(void)
{
QTestState *qts;
- const char *arch = qtest_get_arch();
const char *machine_addition = "";
if (!has_device_builtin("virtio-blk")) {
@@ -331,7 +329,7 @@ static void test_device_add_and_del(void)
return;
}
- if (strcmp(arch, "i386") == 0 || strcmp(arch, "x86_64") == 0) {
+ if (strcmp(qtest_get_base_arch(), "x86") == 0) {
machine_addition = "-machine pc";
}
@@ -394,7 +392,6 @@ static void test_device_add_and_del_q35(void)
static void test_drive_add_device_add_and_del(void)
{
QTestState *qts;
- const char *arch = qtest_get_arch();
const char *machine_addition = "";
if (!has_device_builtin("virtio-blk")) {
@@ -402,7 +399,7 @@ static void test_drive_add_device_add_and_del(void)
return;
}
- if (strcmp(arch, "i386") == 0 || strcmp(arch, "x86_64") == 0) {
+ if (strcmp(qtest_get_base_arch(), "x86") == 0) {
machine_addition = "-machine pc";
}
@@ -447,7 +444,6 @@ static void test_drive_add_device_add_and_del_q35(void)
static void test_blockdev_add_device_add_and_del(void)
{
QTestState *qts;
- const char *arch = qtest_get_arch();
const char *machine_addition = "";
if (!has_device_builtin("virtio-blk")) {
@@ -455,7 +451,7 @@ static void test_blockdev_add_device_add_and_del(void)
return;
}
- if (strcmp(arch, "i386") == 0 || strcmp(arch, "x86_64") == 0) {
+ if (strcmp(qtest_get_base_arch(), "x86") == 0) {
machine_addition = "-machine pc";
}
@@ -95,9 +95,7 @@ static void cleanup_vm(ERSTState *s)
static void setup_vm_cmd(ERSTState *s, const char *cmd)
{
- const char *arch = qtest_get_arch();
-
- if (strcmp(arch, "i386") == 0 || strcmp(arch, "x86_64") == 0) {
+ if (strcmp(qtest_get_base_arch(), "x86") == 0) {
s->qs = qtest_pc_boot("%s", cmd);
} else {
g_printerr("erst-test tests are only available on x86\n");
@@ -40,11 +40,9 @@ static void test_lp1879531_eth_get_rss_ex_dst_addr(void)
int main(int argc, char **argv)
{
- const char *arch = qtest_get_arch();
-
g_test_init(&argc, &argv, NULL);
- if (strcmp(arch, "i386") == 0 || strcmp(arch, "x86_64") == 0) {
+ if (strcmp(qtest_get_base_arch(), "x86") == 0) {
qtest_add_func("fuzz/test_lp1879531_eth_get_rss_ex_dst_addr",
test_lp1879531_eth_get_rss_ex_dst_addr);
}
@@ -397,9 +397,9 @@ static void test_ivshmem_hotplug_q35(void)
static void test_ivshmem_hotplug(void)
{
QTestState *qts;
- const char *arch = qtest_get_arch();
+ const char *arch = qtest_get_base_arch();
- if (strcmp(arch, "i386") == 0 || strcmp(arch, "x86_64") == 0) {
+ if (strcmp(arch, "x86") == 0) {
qts = qtest_init("-object memory-backend-ram,size=1M,id=mb1"
" -machine pc");
} else {
@@ -409,7 +409,7 @@ static void test_ivshmem_hotplug(void)
qtest_qmp_device_add(qts, "ivshmem-plain", "iv1",
"{'addr': %s, 'memdev': 'mb1'}",
stringify(PCI_SLOT_HP));
- if (strcmp(arch, "ppc64") != 0) {
+ if (strcmp(arch, "ppc") != 0 && qtest_get_arch_bits() == 64) {
qpci_unplug_acpi_device_test(qts, "iv1", PCI_SLOT_HP);
}
@@ -31,10 +31,12 @@
static void machine_apply_to_node(const char *name)
{
- char *machine_name = g_strconcat(qtest_get_arch(), "/", name, NULL);
+ g_autofree char *machine_name = g_strdup_printf("%s/%u/%s",
+ qtest_get_base_arch(),
+ qtest_get_arch_bits(),
+ name);
qos_graph_node_set_availability(machine_name, true);
- g_free(machine_name);
}
void machines_apply_to_node(MachineInfoList *mach_info)
@@ -28,11 +28,9 @@ static void test_lp1878642_pci_bus_get_irq_level_assert(void)
int main(int argc, char **argv)
{
- const char *arch = qtest_get_arch();
-
g_test_init(&argc, &argv, NULL);
- if (strcmp(arch, "i386") == 0 || strcmp(arch, "x86_64") == 0) {
+ if (strcmp(qtest_get_base_arch(), "x86") == 0) {
qtest_add_func("ich9/test_lp1878642_pci_bus_get_irq_level_assert",
test_lp1878642_pci_bus_get_irq_level_assert);
}
@@ -239,15 +239,13 @@ static void fuzz_registers(void)
static void base_setup(void)
{
- const char *arch = qtest_get_arch();
-
- if (g_str_equal(arch, "sparc")) {
+ if (g_str_equal(qtest_get_arch(), "sparc")) {
/* Note: For sparc64, we'd need to map-in the PCI bridge memory first */
base = 0x71200000;
base_year = 1968;
base_machine = "SS-5";
use_mmio = true;
- } else if (g_str_equal(arch, "ppc") || g_str_equal(arch, "ppc64")) {
+ } else if (g_str_equal(qtest_get_base_arch(), "ppc")) {
base = 0xF0000000;
base_year = 1968;
base_machine = "ref405ep";
@@ -129,7 +129,7 @@ static void test_batch(const testdef_t *tests, bool ipv6)
int main(int argc, char *argv[])
{
int ret;
- const char *arch = qtest_get_arch();
+ const char *arch = qtest_get_base_arch();
g_test_init(&argc, &argv, NULL);
@@ -143,12 +143,12 @@ int main(int argc, char *argv[])
return ret;
- if (strcmp(arch, "i386") == 0 || strcmp(arch, "x86_64") == 0) {
+ if (strcmp(arch, "x86") == 0) {
test_batch(x86_tests, false);
if (g_test_slow()) {
test_batch(x86_tests_slow, false);
}
- } else if (strcmp(arch, "ppc64") == 0) {
+ } else if (strcmp(arch, "ppc") == 0 && qtest_get_arch_bits() == 64) {
test_batch(ppc64_tests, g_test_slow());
if (g_test_slow()) {
test_batch(ppc64_tests_slow, true);
@@ -293,8 +293,10 @@ static void walk_path(QOSGraphNode *orig_path, int len)
path_vec[0] = g_string_free(cmd_line, false);
if (path->u.test.subprocess) {
- gchar *subprocess_path = g_strdup_printf("/%s/%s/subprocess",
- qtest_get_arch(), path_str);
+ gchar *subprocess_path = g_strdup_printf("/%s/%u/%s/subprocess",
+ qtest_get_base_arch(),
+ qtest_get_arch_bits(),
+ path_str);
qtest_add_data_func(path_str, subprocess_path, subprocess_run_one_test);
g_test_add_data_func(subprocess_path, path_vec, run_one_test);
} else {
@@ -382,13 +382,9 @@ static void test_docs_q35_virtio_serial(void)
int main(int argc, char *argv[])
{
- const char *arch;
g_test_init(&argc, &argv, NULL);
- arch = qtest_get_arch();
-
- if (g_str_equal(arch, "i386") ||
- g_str_equal(arch, "x86_64")) {
+ if (g_str_equal(qtest_get_base_arch(), "x86")) {
qtest_add_func("readconfig/x86/memdev", test_x86_memdev);
if (qtest_has_device("ich9-usb-ehci1") &&
qtest_has_device("ich9-usb-uhci1")) {
@@ -36,11 +36,9 @@ static void test_rtas_get_time_of_day_vof(void)
int main(int argc, char *argv[])
{
- const char *arch = qtest_get_arch();
-
g_test_init(&argc, &argv, NULL);
- if (strcmp(arch, "ppc64")) {
+ if (strcmp(qtest_get_base_arch(), "ppc") && qtest_get_arch_bits() != 64) {
g_printerr("RTAS requires qemu-system-ppc64\n");
exit(EXIT_FAILURE);
}
@@ -552,7 +552,6 @@ static void *ufs_blk_test_setup(GString *cmd_line, void *arg)
static void ufs_register_nodes(void)
{
- const char *arch;
QOSGraphEdgeOptions edge_opts = {
.before_cmd_line = "-blockdev null-co,node-name=drv0,read-zeroes=on",
.after_cmd_line = "-device ufs-lu,bus=ufs0,drive=drv0,lun=0",
@@ -575,8 +574,7 @@ static void ufs_register_nodes(void)
* Check architecture
* TODO: Enable ufs io tests for ppc64
*/
- arch = qtest_get_arch();
- if (!strcmp(arch, "ppc64")) {
+ if (!strcmp(qtest_get_base_arch(), "ppc") && qtest_get_arch_bits() == 64) {
g_test_message("Skipping ufs io tests for ppc64");
return;
}
@@ -53,7 +53,7 @@ static void test_usb_storage_hotplug(void)
int main(int argc, char **argv)
{
- const char *arch = qtest_get_arch();
+ const char *arch = qtest_get_base_arch();
const char *cmd = "-device piix3-usb-uhci,id=uhci,addr=1d.0"
" -drive id=drive0,if=none,file=null-co://,"
"file.read-zeroes=on,format=raw"
@@ -73,9 +73,9 @@ int main(int argc, char **argv)
qtest_add_func("/uhci/pci/hotplug/usb-storage", test_usb_storage_hotplug);
}
- if (strcmp(arch, "i386") == 0 || strcmp(arch, "x86_64") == 0) {
+ if (strcmp(arch, "x86") == 0) {
qs = qtest_pc_boot("%s", cmd);
- } else if (strcmp(arch, "ppc64") == 0) {
+ } else if (strcmp(arch, "ppc") == 0 && qtest_get_arch_bits() == 64) {
qs = qtest_spapr_boot("%s", cmd);
} else {
g_printerr("usb-hcd-uhci-test tests are only "
@@ -169,7 +169,6 @@ static void hotplug(void *obj, void *data, QGuestAllocator *t_alloc)
{
QVirtioPCIDevice *dev = obj;
QTestState *qts = dev->pdev->bus->qts;
- const char *arch = qtest_get_arch();
if (dev->pdev->bus->not_hotpluggable) {
g_test_skip("pci bus does not support hotplug");
@@ -179,7 +178,7 @@ static void hotplug(void *obj, void *data, QGuestAllocator *t_alloc)
qtest_qmp_device_add(qts, "virtio-net-pci", "net1",
"{'addr': %s}", stringify(PCI_SLOT_HP));
- if (strcmp(arch, "i386") == 0 || strcmp(arch, "x86_64") == 0) {
+ if (strcmp(qtest_get_base_arch(), "x86") == 0) {
qpci_unplug_acpi_device_test(qts, "net1", PCI_SLOT_HP);
}
}
@@ -25,12 +25,10 @@ static void rng_hotplug(void *obj, void *data, QGuestAllocator *alloc)
return;
}
- const char *arch = qtest_get_arch();
-
qtest_qmp_device_add(qts, "virtio-rng-pci", "rng1",
"{'addr': %s}", stringify(PCI_SLOT_HP));
- if (strcmp(arch, "i386") == 0 || strcmp(arch, "x86_64") == 0) {
+ if (strcmp(qtest_get_base_arch(), "x86") == 0) {
qpci_unplug_acpi_device_test(qts, "rng1", PCI_SLOT_HP);
}
}
Additionally use qtest_get_arch_bits() when relevant. Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> --- tests/qtest/ahci-test.c | 5 ++--- tests/qtest/am53c974-test.c | 4 +--- tests/qtest/bios-tables-test.c | 6 +++--- tests/qtest/boot-sector.c | 6 +++--- tests/qtest/device-plug-test.c | 6 ++---- tests/qtest/drive_del-test.c | 16 ++++++---------- tests/qtest/erst-test.c | 4 +--- tests/qtest/fuzz-e1000e-test.c | 4 +--- tests/qtest/ivshmem-test.c | 6 +++--- tests/qtest/libqos/qos_external.c | 6 ++++-- tests/qtest/lpc-ich9-test.c | 4 +--- tests/qtest/m48t59-test.c | 6 ++---- tests/qtest/pxe-test.c | 6 +++--- tests/qtest/qos-test.c | 6 ++++-- tests/qtest/readconfig-test.c | 6 +----- tests/qtest/rtas-test.c | 4 +--- tests/qtest/ufs-test.c | 4 +--- tests/qtest/usb-hcd-uhci-test.c | 6 +++--- tests/qtest/virtio-net-test.c | 3 +-- tests/qtest/virtio-rng-test.c | 4 +--- 20 files changed, 44 insertions(+), 68 deletions(-)