qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 00/18] Allow qtests with --without-default-devices (part 1)
@ 2023-05-12 12:40 Thomas Huth
  2023-05-12 12:40 ` [PATCH 01/18] hw/i386/Kconfig: ISAPC works fine without VGA_ISA Thomas Huth
                   ` (17 more replies)
  0 siblings, 18 replies; 22+ messages in thread
From: Thomas Huth @ 2023-05-12 12:40 UTC (permalink / raw)
  To: qemu-devel, Paolo Bonzini, Alex Bennée, Fabiano Rosas
  Cc: Philippe Mathieu-Daudé

When configuring QEMU with --without-default-devices, many qtests
fail since they run QEMU without "-no-defaults", i.e. the QEMU
binary tries to instantiate a default VGA and a NIC device - which
fails when it has not been enabled in the config.

Here's now my attempt to fix these issues: The basic idea is to
use the default_display and the new default_nic setting in the
MachineClass to determine whether the default device is available
in the binary or not, and in the latter case skip the instantiation.
Some qtests also need some more check for optional devices on top,
but then it's possible to run "make check" for --without-default-devices
builds, too.

This series only tackles with x86 and the targets that are tested
in the "build-without-defaults" gitlab CI pipeline. If these changes
are acceptable, I can continue this cleanup for the other targets,
too.

Thomas Huth (18):
  hw/i386/Kconfig: ISAPC works fine without VGA_ISA
  softmmu/vl.c: Check for the availability of the VGA device before
    using it
  hw: Move the default NIC machine class setting from the x86 to the
    generic one
  softmmu/vl.c: Disable default NIC if it has not been compiled into the
    binary
  hw/ppc: Use MachineClass->default_nic in the ppc machines
  hw/s390x: Use MachineClass->default_nic in the s390x machine
  hw/sh4: Use MachineClass->default_nic in the sh4 r2d machine
  hw/char/parallel: Move TYPE_ISA_PARALLEL to the header file
  hw/i386: Ignore the default parallel port if it has not been compiled
    into QEMU
  hw/sparc64/sun4u: Use MachineClass->default_nic and
    MachineClass->no_parallel
  tests/qtest/readconfig-test: Check for the availability of USB
    controllers
  tests/qtest/usb-hcd-uhci-test: Skip test if UHCI controller is not
    available
  tests/qtest/cdrom-test: Fix the test to also work without optional
    devices
  tests/qtest/virtio-ccw-test: Remove superfluous tests
  tests/qtest: Check for the availability of virtio-ccw devices before
    using them
  tests/qtest/meson.build: Run the net filter tests only with default
    devices
  tests/qemu-iotests/172: Run QEMU with -vga none and -nic none
  .gitlab-ci.d/buildtest.yml: Run full "make check" with
    --without-default-devices

 include/hw/boards.h             |  1 +
 include/hw/char/parallel.h      |  2 ++
 include/hw/i386/pc.h            |  1 -
 hw/char/parallel-isa.c          |  2 +-
 hw/char/parallel.c              |  1 -
 hw/i386/pc.c                    |  3 ++-
 hw/i386/pc_piix.c               |  7 ++++--
 hw/i386/pc_q35.c                |  8 +++---
 hw/isa/isa-superio.c            |  3 ++-
 hw/ppc/e500.c                   |  3 ++-
 hw/ppc/e500plat.c               |  1 +
 hw/ppc/mac_newworld.c           |  4 ++-
 hw/ppc/mac_oldworld.c           |  4 ++-
 hw/ppc/mpc8544ds.c              |  1 +
 hw/ppc/ppc440_bamboo.c          |  4 ++-
 hw/ppc/prep.c                   |  4 ++-
 hw/s390x/s390-virtio-ccw.c      |  4 ++-
 hw/sh4/r2d.c                    |  4 ++-
 hw/sparc64/sun4u.c              | 11 ++++++---
 softmmu/vl.c                    | 20 ++++++++++++++-
 tests/qtest/cdrom-test.c        | 18 +++++++++++---
 tests/qtest/device-plug-test.c  |  9 ++++++-
 tests/qtest/readconfig-test.c   |  5 +++-
 tests/qtest/usb-hcd-uhci-test.c |  5 ++++
 tests/qtest/virtio-ccw-test.c   | 43 ++++++++++-----------------------
 .gitlab-ci.d/buildtest.yml      |  2 +-
 hw/i386/Kconfig                 |  2 +-
 tests/qemu-iotests/172          |  2 +-
 tests/qtest/meson.build         | 10 +++-----
 29 files changed, 118 insertions(+), 66 deletions(-)

-- 
2.31.1



^ permalink raw reply	[flat|nested] 22+ messages in thread

* [PATCH 01/18] hw/i386/Kconfig: ISAPC works fine without VGA_ISA
  2023-05-12 12:40 [PATCH 00/18] Allow qtests with --without-default-devices (part 1) Thomas Huth
@ 2023-05-12 12:40 ` Thomas Huth
  2023-05-12 12:40 ` [PATCH 02/18] softmmu/vl.c: Check for the availability of the VGA device before using it Thomas Huth
                   ` (16 subsequent siblings)
  17 siblings, 0 replies; 22+ messages in thread
From: Thomas Huth @ 2023-05-12 12:40 UTC (permalink / raw)
  To: qemu-devel, Paolo Bonzini, Alex Bennée, Fabiano Rosas
  Cc: Philippe Mathieu-Daudé

The "isapc" machine can also be run without VGA card, so there
is no need for a hard requirement with a "select" here - "imply"
is enough.

Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 hw/i386/Kconfig | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/hw/i386/Kconfig b/hw/i386/Kconfig
index d40802d83f..9051083c1e 100644
--- a/hw/i386/Kconfig
+++ b/hw/i386/Kconfig
@@ -80,10 +80,10 @@ config I440FX
 
 config ISAPC
     bool
+    imply VGA_ISA
     select ISA_BUS
     select PC
     select IDE_ISA
-    select VGA_ISA
     # FIXME: it is in the same file as i440fx, and does not compile
     # if separated
     depends on I440FX
-- 
2.31.1



^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH 02/18] softmmu/vl.c: Check for the availability of the VGA device before using it
  2023-05-12 12:40 [PATCH 00/18] Allow qtests with --without-default-devices (part 1) Thomas Huth
  2023-05-12 12:40 ` [PATCH 01/18] hw/i386/Kconfig: ISAPC works fine without VGA_ISA Thomas Huth
@ 2023-05-12 12:40 ` Thomas Huth
  2023-05-12 12:40 ` [PATCH 03/18] hw: Move the default NIC machine class setting from the x86 to the generic one Thomas Huth
                   ` (15 subsequent siblings)
  17 siblings, 0 replies; 22+ messages in thread
From: Thomas Huth @ 2023-05-12 12:40 UTC (permalink / raw)
  To: qemu-devel, Paolo Bonzini, Alex Bennée, Fabiano Rosas
  Cc: Philippe Mathieu-Daudé

In case the user disabled the default VGA device in the binary (e.g.
with the "--without-default-devices" configure switch), we should
not try to use it by default if QEMU is running with the default
devices, otherwise it aborts when trying to use it. Simply emit a
warning instead.

Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 softmmu/vl.c | 13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)

diff --git a/softmmu/vl.c b/softmmu/vl.c
index 6c2427262b..43d3b972da 100644
--- a/softmmu/vl.c
+++ b/softmmu/vl.c
@@ -957,7 +957,18 @@ static const char *
 get_default_vga_model(const MachineClass *machine_class)
 {
     if (machine_class->default_display) {
-        return machine_class->default_display;
+        for (int t = 0; t < VGA_TYPE_MAX; t++) {
+            const VGAInterfaceInfo *ti = &vga_interfaces[t];
+
+            if (ti->opt_name && vga_interface_available(t) &&
+                g_str_equal(ti->opt_name, machine_class->default_display)) {
+                return machine_class->default_display;
+            }
+        }
+
+        warn_report_once("Default display '%s' is not available in this binary",
+                         machine_class->default_display);
+        return NULL;
     } else if (vga_interface_available(VGA_CIRRUS)) {
         return "cirrus";
     } else if (vga_interface_available(VGA_STD)) {
-- 
2.31.1



^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH 03/18] hw: Move the default NIC machine class setting from the x86 to the generic one
  2023-05-12 12:40 [PATCH 00/18] Allow qtests with --without-default-devices (part 1) Thomas Huth
  2023-05-12 12:40 ` [PATCH 01/18] hw/i386/Kconfig: ISAPC works fine without VGA_ISA Thomas Huth
  2023-05-12 12:40 ` [PATCH 02/18] softmmu/vl.c: Check for the availability of the VGA device before using it Thomas Huth
@ 2023-05-12 12:40 ` Thomas Huth
  2023-05-12 12:40 ` [PATCH 04/18] softmmu/vl.c: Disable default NIC if it has not been compiled into the binary Thomas Huth
                   ` (14 subsequent siblings)
  17 siblings, 0 replies; 22+ messages in thread
From: Thomas Huth @ 2023-05-12 12:40 UTC (permalink / raw)
  To: qemu-devel, Paolo Bonzini, Alex Bennée, Fabiano Rosas
  Cc: Philippe Mathieu-Daudé

We are going to re-use this setting for other targets, so let's
move this to the main MachineClass.

Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 include/hw/boards.h  | 1 +
 include/hw/i386/pc.h | 1 -
 hw/i386/pc.c         | 3 ++-
 hw/i386/pc_piix.c    | 4 ++--
 hw/i386/pc_q35.c     | 6 ++----
 5 files changed, 7 insertions(+), 8 deletions(-)

diff --git a/include/hw/boards.h b/include/hw/boards.h
index f4117fdb9a..a385010909 100644
--- a/include/hw/boards.h
+++ b/include/hw/boards.h
@@ -253,6 +253,7 @@ struct MachineClass {
     const char *default_machine_opts;
     const char *default_boot_order;
     const char *default_display;
+    const char *default_nic;
     GPtrArray *compat_props;
     const char *hw_version;
     ram_addr_t default_ram_size;
diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h
index 84935fc958..ed7bb5f2a4 100644
--- a/include/hw/i386/pc.h
+++ b/include/hw/i386/pc.h
@@ -93,7 +93,6 @@ struct PCMachineClass {
     /* Device configuration: */
     bool pci_enabled;
     bool kvmclock_enabled;
-    const char *default_nic_model;
 
     /* Compat options: */
 
diff --git a/hw/i386/pc.c b/hw/i386/pc.c
index d761c8c775..4c64e91479 100644
--- a/hw/i386/pc.c
+++ b/hw/i386/pc.c
@@ -1354,12 +1354,13 @@ void pc_basic_device_init(struct PCMachineState *pcms,
 
 void pc_nic_init(PCMachineClass *pcmc, ISABus *isa_bus, PCIBus *pci_bus)
 {
+    MachineClass *mc = MACHINE_CLASS(pcmc);
     int i;
 
     rom_set_order_override(FW_CFG_ORDER_OVERRIDE_NIC);
     for (i = 0; i < nb_nics; i++) {
         NICInfo *nd = &nd_table[i];
-        const char *model = nd->model ? nd->model : pcmc->default_nic_model;
+        const char *model = nd->model ? nd->model : mc->default_nic;
 
         if (g_str_equal(model, "ne2k_isa")) {
             pc_init_ne2k_isa(isa_bus, nd);
diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c
index 66a849d279..1a3712ada0 100644
--- a/hw/i386/pc_piix.c
+++ b/hw/i386/pc_piix.c
@@ -442,7 +442,6 @@ static void pc_xen_hvm_init(MachineState *machine)
 static void pc_i440fx_machine_options(MachineClass *m)
 {
     PCMachineClass *pcmc = PC_MACHINE_CLASS(m);
-    pcmc->default_nic_model = "e1000";
     pcmc->pci_root_uid = 0;
     pcmc->default_cpu_version = 1;
 
@@ -450,6 +449,7 @@ static void pc_i440fx_machine_options(MachineClass *m)
     m->desc = "Standard PC (i440FX + PIIX, 1996)";
     m->default_machine_opts = "firmware=bios-256k.bin";
     m->default_display = "std";
+    m->default_nic = "e1000";
     machine_class_allow_dynamic_sysbus_dev(m, TYPE_RAMFB_DEVICE);
     machine_class_allow_dynamic_sysbus_dev(m, TYPE_VMBUS_BRIDGE);
 }
@@ -876,7 +876,7 @@ static void isapc_machine_options(MachineClass *m)
     pcmc->gigabyte_align = false;
     pcmc->smbios_legacy_mode = true;
     pcmc->has_reserved_memory = false;
-    pcmc->default_nic_model = "ne2k_isa";
+    m->default_nic = "ne2k_isa";
     m->default_cpu_type = X86_CPU_TYPE_NAME("486");
 }
 
diff --git a/hw/i386/pc_q35.c b/hw/i386/pc_q35.c
index f02919d92c..5dc13af8d6 100644
--- a/hw/i386/pc_q35.c
+++ b/hw/i386/pc_q35.c
@@ -355,7 +355,6 @@ static void pc_q35_init(MachineState *machine)
 static void pc_q35_machine_options(MachineClass *m)
 {
     PCMachineClass *pcmc = PC_MACHINE_CLASS(m);
-    pcmc->default_nic_model = "e1000e";
     pcmc->pci_root_uid = 0;
     pcmc->default_cpu_version = 1;
 
@@ -364,6 +363,7 @@ static void pc_q35_machine_options(MachineClass *m)
     m->units_per_default_bus = 1;
     m->default_machine_opts = "firmware=bios-256k.bin";
     m->default_display = "std";
+    m->default_nic = "e1000e";
     m->default_kernel_irqchip_split = false;
     m->no_floppy = 1;
     machine_class_allow_dynamic_sysbus_dev(m, TYPE_AMD_IOMMU_DEVICE);
@@ -576,10 +576,8 @@ DEFINE_Q35_MACHINE(v2_12, "pc-q35-2.12", NULL,
 
 static void pc_q35_2_11_machine_options(MachineClass *m)
 {
-    PCMachineClass *pcmc = PC_MACHINE_CLASS(m);
-
     pc_q35_2_12_machine_options(m);
-    pcmc->default_nic_model = "e1000";
+    m->default_nic = "e1000";
     compat_props_add(m->compat_props, hw_compat_2_11, hw_compat_2_11_len);
     compat_props_add(m->compat_props, pc_compat_2_11, pc_compat_2_11_len);
 }
-- 
2.31.1



^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH 04/18] softmmu/vl.c: Disable default NIC if it has not been compiled into the binary
  2023-05-12 12:40 [PATCH 00/18] Allow qtests with --without-default-devices (part 1) Thomas Huth
                   ` (2 preceding siblings ...)
  2023-05-12 12:40 ` [PATCH 03/18] hw: Move the default NIC machine class setting from the x86 to the generic one Thomas Huth
@ 2023-05-12 12:40 ` Thomas Huth
  2023-05-12 12:40 ` [PATCH 05/18] hw/ppc: Use MachineClass->default_nic in the ppc machines Thomas Huth
                   ` (13 subsequent siblings)
  17 siblings, 0 replies; 22+ messages in thread
From: Thomas Huth @ 2023-05-12 12:40 UTC (permalink / raw)
  To: qemu-devel, Paolo Bonzini, Alex Bennée, Fabiano Rosas
  Cc: Philippe Mathieu-Daudé

Don't try to instantiate a default NIC if it is not available (since
this will cause QEMU to abort). Emit a warning instead.

Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 softmmu/vl.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/softmmu/vl.c b/softmmu/vl.c
index 43d3b972da..b0b96f67fa 100644
--- a/softmmu/vl.c
+++ b/softmmu/vl.c
@@ -1294,6 +1294,13 @@ static void qemu_disable_default_devices(void)
         default_monitor = 0;
         default_net = 0;
         default_vga = 0;
+    } else {
+        if (default_net && machine_class->default_nic &&
+            !module_object_class_by_name(machine_class->default_nic)) {
+            warn_report("Default NIC '%s' is not available in this binary",
+                        machine_class->default_nic);
+            default_net = 0;
+        }
     }
 }
 
-- 
2.31.1



^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH 05/18] hw/ppc: Use MachineClass->default_nic in the ppc machines
  2023-05-12 12:40 [PATCH 00/18] Allow qtests with --without-default-devices (part 1) Thomas Huth
                   ` (3 preceding siblings ...)
  2023-05-12 12:40 ` [PATCH 04/18] softmmu/vl.c: Disable default NIC if it has not been compiled into the binary Thomas Huth
@ 2023-05-12 12:40 ` Thomas Huth
  2023-05-12 12:40 ` [PATCH 06/18] hw/s390x: Use MachineClass->default_nic in the s390x machine Thomas Huth
                   ` (12 subsequent siblings)
  17 siblings, 0 replies; 22+ messages in thread
From: Thomas Huth @ 2023-05-12 12:40 UTC (permalink / raw)
  To: qemu-devel, Paolo Bonzini, Alex Bennée, Fabiano Rosas
  Cc: Philippe Mathieu-Daudé

Mark the default NIC via the new MachineClass->default_nic setting
so that the machine-defaults code in vl.c can decide whether the
default NIC is usable or not (for example when compiling with the
"--without-default-devices" configure switch).

Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 hw/ppc/e500.c          | 3 ++-
 hw/ppc/e500plat.c      | 1 +
 hw/ppc/mac_newworld.c  | 4 +++-
 hw/ppc/mac_oldworld.c  | 4 +++-
 hw/ppc/mpc8544ds.c     | 1 +
 hw/ppc/ppc440_bamboo.c | 4 +++-
 hw/ppc/prep.c          | 4 +++-
 7 files changed, 16 insertions(+), 5 deletions(-)

diff --git a/hw/ppc/e500.c b/hw/ppc/e500.c
index 117c9c08ed..b6eb599751 100644
--- a/hw/ppc/e500.c
+++ b/hw/ppc/e500.c
@@ -898,6 +898,7 @@ void ppce500_init(MachineState *machine)
     MemoryRegion *address_space_mem = get_system_memory();
     PPCE500MachineState *pms = PPCE500_MACHINE(machine);
     const PPCE500MachineClass *pmc = PPCE500_MACHINE_GET_CLASS(machine);
+    MachineClass *mc = MACHINE_CLASS(pmc);
     PCIBus *pci_bus;
     CPUPPCState *env = NULL;
     uint64_t loadaddr;
@@ -1073,7 +1074,7 @@ void ppce500_init(MachineState *machine)
     if (pci_bus) {
         /* Register network interfaces. */
         for (i = 0; i < nb_nics; i++) {
-            pci_nic_init_nofail(&nd_table[i], pci_bus, "virtio-net-pci", NULL);
+            pci_nic_init_nofail(&nd_table[i], pci_bus, mc->default_nic, NULL);
         }
     }
 
diff --git a/hw/ppc/e500plat.c b/hw/ppc/e500plat.c
index 3032bd3f6d..7aa2f2107a 100644
--- a/hw/ppc/e500plat.c
+++ b/hw/ppc/e500plat.c
@@ -99,6 +99,7 @@ static void e500plat_machine_class_init(ObjectClass *oc, void *data)
     mc->max_cpus = 32;
     mc->default_cpu_type = POWERPC_CPU_TYPE_NAME("e500v2_v30");
     mc->default_ram_id = "mpc8544ds.ram";
+    mc->default_nic = "virtio-net-pci";
     machine_class_allow_dynamic_sysbus_dev(mc, TYPE_ETSEC_COMMON);
  }
 
diff --git a/hw/ppc/mac_newworld.c b/hw/ppc/mac_newworld.c
index 460c14b5e3..535710314a 100644
--- a/hw/ppc/mac_newworld.c
+++ b/hw/ppc/mac_newworld.c
@@ -132,6 +132,7 @@ static void ppc_core99_reset(void *opaque)
 static void ppc_core99_init(MachineState *machine)
 {
     Core99MachineState *core99_machine = CORE99_MACHINE(machine);
+    MachineClass *mc = MACHINE_GET_CLASS(machine);
     PowerPCCPU *cpu = NULL;
     CPUPPCState *env = NULL;
     char *filename;
@@ -444,7 +445,7 @@ static void ppc_core99_init(MachineState *machine)
     }
 
     for (i = 0; i < nb_nics; i++) {
-        pci_nic_init_nofail(&nd_table[i], pci_bus, "sungem", NULL);
+        pci_nic_init_nofail(&nd_table[i], pci_bus, mc->default_nic, NULL);
     }
 
     /* The NewWorld NVRAM is not located in the MacIO device */
@@ -577,6 +578,7 @@ static void core99_machine_class_init(ObjectClass *oc, void *data)
     mc->max_cpus = 1;
     mc->default_boot_order = "cd";
     mc->default_display = "std";
+    mc->default_nic = "sungem";
     mc->kvm_type = core99_kvm_type;
 #ifdef TARGET_PPC64
     mc->default_cpu_type = POWERPC_CPU_TYPE_NAME("970fx_v3.1");
diff --git a/hw/ppc/mac_oldworld.c b/hw/ppc/mac_oldworld.c
index 2e4cc3fe0b..510ff0eaaf 100644
--- a/hw/ppc/mac_oldworld.c
+++ b/hw/ppc/mac_oldworld.c
@@ -87,6 +87,7 @@ static void ppc_heathrow_reset(void *opaque)
 static void ppc_heathrow_init(MachineState *machine)
 {
     const char *bios_name = machine->firmware ?: PROM_FILENAME;
+    MachineClass *mc = MACHINE_GET_CLASS(machine);
     PowerPCCPU *cpu = NULL;
     CPUPPCState *env = NULL;
     char *filename;
@@ -276,7 +277,7 @@ static void ppc_heathrow_init(MachineState *machine)
     pci_vga_init(pci_bus);
 
     for (i = 0; i < nb_nics; i++) {
-        pci_nic_init_nofail(&nd_table[i], pci_bus, "ne2k_pci", NULL);
+        pci_nic_init_nofail(&nd_table[i], pci_bus, mc->default_nic, NULL);
     }
 
     /* MacIO IDE */
@@ -424,6 +425,7 @@ static void heathrow_class_init(ObjectClass *oc, void *data)
     mc->kvm_type = heathrow_kvm_type;
     mc->default_cpu_type = POWERPC_CPU_TYPE_NAME("750_v3.1");
     mc->default_display = "std";
+    mc->default_nic = "ne2k_pci";
     mc->ignore_boot_device_suffixes = true;
     mc->default_ram_id = "ppc_heathrow.ram";
     fwc->get_dev_path = heathrow_fw_dev_path;
diff --git a/hw/ppc/mpc8544ds.c b/hw/ppc/mpc8544ds.c
index 7dd5219736..b7130903d6 100644
--- a/hw/ppc/mpc8544ds.c
+++ b/hw/ppc/mpc8544ds.c
@@ -61,6 +61,7 @@ static void mpc8544ds_machine_class_init(ObjectClass *oc, void *data)
     mc->max_cpus = 15;
     mc->default_cpu_type = POWERPC_CPU_TYPE_NAME("e500v2_v30");
     mc->default_ram_id = "mpc8544ds.ram";
+    mc->default_nic = "virtio-net-pci";
 }
 
 #define TYPE_MPC8544DS_MACHINE  MACHINE_TYPE_NAME("mpc8544ds")
diff --git a/hw/ppc/ppc440_bamboo.c b/hw/ppc/ppc440_bamboo.c
index 2880c81cb1..f969fa3c29 100644
--- a/hw/ppc/ppc440_bamboo.c
+++ b/hw/ppc/ppc440_bamboo.c
@@ -161,6 +161,7 @@ static void bamboo_init(MachineState *machine)
 {
     const char *kernel_filename = machine->kernel_filename;
     const char *initrd_filename = machine->initrd_filename;
+    MachineClass *mc = MACHINE_GET_CLASS(machine);
     unsigned int pci_irq_nrs[4] = { 28, 27, 26, 25 };
     MemoryRegion *address_space_mem = get_system_memory();
     MemoryRegion *isa = g_new(MemoryRegion, 1);
@@ -246,7 +247,7 @@ static void bamboo_init(MachineState *machine)
              * There are no PCI NICs on the Bamboo board, but there are
              * PCI slots, so we can pick whatever default model we want.
              */
-            pci_nic_init_nofail(&nd_table[i], pcibus, "e1000", NULL);
+            pci_nic_init_nofail(&nd_table[i], pcibus, mc->default_nic, NULL);
         }
     }
 
@@ -296,6 +297,7 @@ static void bamboo_machine_init(MachineClass *mc)
     mc->init = bamboo_init;
     mc->default_cpu_type = POWERPC_CPU_TYPE_NAME("440epb");
     mc->default_ram_id = "ppc4xx.sdram";
+    mc->default_nic = "e1000";
 }
 
 DEFINE_MACHINE("bamboo", bamboo_machine_init)
diff --git a/hw/ppc/prep.c b/hw/ppc/prep.c
index d00280c0f8..4610abddbd 100644
--- a/hw/ppc/prep.c
+++ b/hw/ppc/prep.c
@@ -229,6 +229,7 @@ static int prep_set_cmos_checksum(DeviceState *dev, void *opaque)
 static void ibm_40p_init(MachineState *machine)
 {
     const char *bios_name = machine->firmware ?: "openbios-ppc";
+    MachineClass *mc = MACHINE_GET_CLASS(machine);
     CPUPPCState *env = NULL;
     uint16_t cmos_checksum;
     PowerPCCPU *cpu;
@@ -323,7 +324,7 @@ static void ibm_40p_init(MachineState *machine)
         pci_vga_init(pci_bus);
 
         for (i = 0; i < nb_nics; i++) {
-            pci_nic_init_nofail(&nd_table[i], pci_bus, "pcnet",
+            pci_nic_init_nofail(&nd_table[i], pci_bus, mc->default_nic,
                                 i == 0 ? "3" : NULL);
         }
     }
@@ -427,6 +428,7 @@ static void ibm_40p_machine_init(MachineClass *mc)
     mc->default_boot_order = "c";
     mc->default_cpu_type = POWERPC_CPU_TYPE_NAME("604");
     mc->default_display = "std";
+    mc->default_nic = "pcnet";
 }
 
 DEFINE_MACHINE("40p", ibm_40p_machine_init)
-- 
2.31.1



^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH 06/18] hw/s390x: Use MachineClass->default_nic in the s390x machine
  2023-05-12 12:40 [PATCH 00/18] Allow qtests with --without-default-devices (part 1) Thomas Huth
                   ` (4 preceding siblings ...)
  2023-05-12 12:40 ` [PATCH 05/18] hw/ppc: Use MachineClass->default_nic in the ppc machines Thomas Huth
@ 2023-05-12 12:40 ` Thomas Huth
  2023-05-12 12:40 ` [PATCH 07/18] hw/sh4: Use MachineClass->default_nic in the sh4 r2d machine Thomas Huth
                   ` (11 subsequent siblings)
  17 siblings, 0 replies; 22+ messages in thread
From: Thomas Huth @ 2023-05-12 12:40 UTC (permalink / raw)
  To: qemu-devel, Paolo Bonzini, Alex Bennée, Fabiano Rosas
  Cc: Philippe Mathieu-Daudé

Mark the default NIC via the new MachineClass->default_nic setting
so that the machine-defaults code in vl.c can decide whether the
default NIC is usable or not (for example when compiling with the
"--without-default-devices" configure switch).

Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 hw/s390x/s390-virtio-ccw.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/hw/s390x/s390-virtio-ccw.c b/hw/s390x/s390-virtio-ccw.c
index e6f2c62625..fe30722e33 100644
--- a/hw/s390x/s390-virtio-ccw.c
+++ b/hw/s390x/s390-virtio-ccw.c
@@ -245,6 +245,7 @@ static void s390_create_sclpconsole(const char *type, Chardev *chardev)
 
 static void ccw_init(MachineState *machine)
 {
+    MachineClass *mc = MACHINE_GET_CLASS(machine);
     int ret;
     VirtualCssBus *css_bus;
     DeviceState *dev;
@@ -292,7 +293,7 @@ static void ccw_init(MachineState *machine)
     }
 
     /* Create VirtIO network adapters */
-    s390_create_virtio_net(BUS(css_bus), "virtio-net-ccw");
+    s390_create_virtio_net(BUS(css_bus), mc->default_nic);
 
     /* init consoles */
     if (serial_hd(0)) {
@@ -746,6 +747,7 @@ static void ccw_machine_class_init(ObjectClass *oc, void *data)
     hc->unplug_request = s390_machine_device_unplug_request;
     nc->nmi_monitor_handler = s390_nmi;
     mc->default_ram_id = "s390.ram";
+    mc->default_nic = "virtio-net-ccw";
 
     object_class_property_add_bool(oc, "aes-key-wrap",
                                    machine_get_aes_key_wrap,
-- 
2.31.1



^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH 07/18] hw/sh4: Use MachineClass->default_nic in the sh4 r2d machine
  2023-05-12 12:40 [PATCH 00/18] Allow qtests with --without-default-devices (part 1) Thomas Huth
                   ` (5 preceding siblings ...)
  2023-05-12 12:40 ` [PATCH 06/18] hw/s390x: Use MachineClass->default_nic in the s390x machine Thomas Huth
@ 2023-05-12 12:40 ` Thomas Huth
  2023-05-12 12:40 ` [PATCH 08/18] hw/char/parallel: Move TYPE_ISA_PARALLEL to the header file Thomas Huth
                   ` (10 subsequent siblings)
  17 siblings, 0 replies; 22+ messages in thread
From: Thomas Huth @ 2023-05-12 12:40 UTC (permalink / raw)
  To: qemu-devel, Paolo Bonzini, Alex Bennée, Fabiano Rosas
  Cc: Philippe Mathieu-Daudé

Mark the default NIC via the new MachineClass->default_nic setting
so that the machine-defaults code in vl.c can decide whether the
default NIC is usable or not (for example when compiling with the
"--without-default-devices" configure switch).

Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 hw/sh4/r2d.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/hw/sh4/r2d.c b/hw/sh4/r2d.c
index 826a0a31b5..4944994e9c 100644
--- a/hw/sh4/r2d.c
+++ b/hw/sh4/r2d.c
@@ -232,6 +232,7 @@ static void r2d_init(MachineState *machine)
     const char *kernel_filename = machine->kernel_filename;
     const char *kernel_cmdline = machine->kernel_cmdline;
     const char *initrd_filename = machine->initrd_filename;
+    MachineClass *mc = MACHINE_GET_CLASS(machine);
     SuperHCPU *cpu;
     CPUSH4State *env;
     ResetData *reset_info;
@@ -310,7 +311,7 @@ static void r2d_init(MachineState *machine)
     /* NIC: rtl8139 on-board, and 2 slots. */
     for (i = 0; i < nb_nics; i++)
         pci_nic_init_nofail(&nd_table[i], pci_bus,
-                            "rtl8139", i == 0 ? "2" : NULL);
+                            mc->default_nic, i == 0 ? "2" : NULL);
 
     /* USB keyboard */
     usb_create_simple(usb_bus_find(-1), "usb-kbd");
@@ -375,6 +376,7 @@ static void r2d_machine_init(MachineClass *mc)
     mc->init = r2d_init;
     mc->block_default_type = IF_IDE;
     mc->default_cpu_type = TYPE_SH7751R_CPU;
+    mc->default_nic = "rtl8139";
 }
 
 DEFINE_MACHINE("r2d", r2d_machine_init)
-- 
2.31.1



^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH 08/18] hw/char/parallel: Move TYPE_ISA_PARALLEL to the header file
  2023-05-12 12:40 [PATCH 00/18] Allow qtests with --without-default-devices (part 1) Thomas Huth
                   ` (6 preceding siblings ...)
  2023-05-12 12:40 ` [PATCH 07/18] hw/sh4: Use MachineClass->default_nic in the sh4 r2d machine Thomas Huth
@ 2023-05-12 12:40 ` Thomas Huth
  2023-05-12 12:40 ` [PATCH 09/18] hw/i386: Ignore the default parallel port if it has not been compiled into QEMU Thomas Huth
                   ` (9 subsequent siblings)
  17 siblings, 0 replies; 22+ messages in thread
From: Thomas Huth @ 2023-05-12 12:40 UTC (permalink / raw)
  To: qemu-devel, Paolo Bonzini, Alex Bennée, Fabiano Rosas
  Cc: Philippe Mathieu-Daudé

We are going to require the macro from other files, too, so move
this #define to the header file.

Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 include/hw/char/parallel.h | 2 ++
 hw/char/parallel-isa.c     | 2 +-
 hw/char/parallel.c         | 1 -
 hw/isa/isa-superio.c       | 3 ++-
 4 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/include/hw/char/parallel.h b/include/hw/char/parallel.h
index 0a23c0f57e..29d2876d00 100644
--- a/include/hw/char/parallel.h
+++ b/include/hw/char/parallel.h
@@ -4,6 +4,8 @@
 #include "hw/isa/isa.h"
 #include "chardev/char.h"
 
+#define TYPE_ISA_PARALLEL "isa-parallel"
+
 void parallel_hds_isa_init(ISABus *bus, int n);
 
 bool parallel_mm_init(MemoryRegion *address_space,
diff --git a/hw/char/parallel-isa.c b/hw/char/parallel-isa.c
index 1ccbb96e70..547ae69304 100644
--- a/hw/char/parallel-isa.c
+++ b/hw/char/parallel-isa.c
@@ -21,7 +21,7 @@ static void parallel_init(ISABus *bus, int index, Chardev *chr)
     DeviceState *dev;
     ISADevice *isadev;
 
-    isadev = isa_new("isa-parallel");
+    isadev = isa_new(TYPE_ISA_PARALLEL);
     dev = DEVICE(isadev);
     qdev_prop_set_uint32(dev, "index", index);
     qdev_prop_set_chr(dev, "chardev", chr);
diff --git a/hw/char/parallel.c b/hw/char/parallel.c
index af551e7864..3d32589bb3 100644
--- a/hw/char/parallel.c
+++ b/hw/char/parallel.c
@@ -93,7 +93,6 @@ typedef struct ParallelState {
     PortioList portio_list;
 } ParallelState;
 
-#define TYPE_ISA_PARALLEL "isa-parallel"
 OBJECT_DECLARE_SIMPLE_TYPE(ISAParallelState, ISA_PARALLEL)
 
 struct ISAParallelState {
diff --git a/hw/isa/isa-superio.c b/hw/isa/isa-superio.c
index c81bfe58ef..9292ec3bcf 100644
--- a/hw/isa/isa-superio.c
+++ b/hw/isa/isa-superio.c
@@ -16,6 +16,7 @@
 #include "qapi/error.h"
 #include "sysemu/blockdev.h"
 #include "chardev/char.h"
+#include "hw/char/parallel.h"
 #include "hw/block/fdc.h"
 #include "hw/isa/superio.h"
 #include "hw/qdev-properties.h"
@@ -51,7 +52,7 @@ static void isa_superio_realize(DeviceState *dev, Error **errp)
             } else {
                 name = g_strdup_printf("parallel%d", i);
             }
-            isa = isa_new("isa-parallel");
+            isa = isa_new(TYPE_ISA_PARALLEL);
             d = DEVICE(isa);
             qdev_prop_set_uint32(d, "index", i);
             if (k->parallel.get_iobase) {
-- 
2.31.1



^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH 09/18] hw/i386: Ignore the default parallel port if it has not been compiled into QEMU
  2023-05-12 12:40 [PATCH 00/18] Allow qtests with --without-default-devices (part 1) Thomas Huth
                   ` (7 preceding siblings ...)
  2023-05-12 12:40 ` [PATCH 08/18] hw/char/parallel: Move TYPE_ISA_PARALLEL to the header file Thomas Huth
@ 2023-05-12 12:40 ` Thomas Huth
  2023-05-12 12:40 ` [PATCH 10/18] hw/sparc64/sun4u: Use MachineClass->default_nic and MachineClass->no_parallel Thomas Huth
                   ` (8 subsequent siblings)
  17 siblings, 0 replies; 22+ messages in thread
From: Thomas Huth @ 2023-05-12 12:40 UTC (permalink / raw)
  To: qemu-devel, Paolo Bonzini, Alex Bennée, Fabiano Rosas
  Cc: Philippe Mathieu-Daudé

Don't try to instantiate the parallel port if it has not been
enabled in the build configuration.

Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 hw/i386/pc_piix.c | 3 +++
 hw/i386/pc_q35.c  | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c
index 1a3712ada0..ab1c4a414e 100644
--- a/hw/i386/pc_piix.c
+++ b/hw/i386/pc_piix.c
@@ -26,6 +26,7 @@
 #include CONFIG_DEVICES
 
 #include "qemu/units.h"
+#include "hw/char/parallel.h"
 #include "hw/dma/i8257.h"
 #include "hw/loader.h"
 #include "hw/i386/x86.h"
@@ -450,6 +451,7 @@ static void pc_i440fx_machine_options(MachineClass *m)
     m->default_machine_opts = "firmware=bios-256k.bin";
     m->default_display = "std";
     m->default_nic = "e1000";
+    m->no_parallel = !module_object_class_by_name(TYPE_ISA_PARALLEL);
     machine_class_allow_dynamic_sysbus_dev(m, TYPE_RAMFB_DEVICE);
     machine_class_allow_dynamic_sysbus_dev(m, TYPE_VMBUS_BRIDGE);
 }
@@ -878,6 +880,7 @@ static void isapc_machine_options(MachineClass *m)
     pcmc->has_reserved_memory = false;
     m->default_nic = "ne2k_isa";
     m->default_cpu_type = X86_CPU_TYPE_NAME("486");
+    m->no_parallel = !module_object_class_by_name(TYPE_ISA_PARALLEL);
 }
 
 DEFINE_PC_MACHINE(isapc, "isapc", pc_init_isa,
diff --git a/hw/i386/pc_q35.c b/hw/i386/pc_q35.c
index 5dc13af8d6..1109d2c4d0 100644
--- a/hw/i386/pc_q35.c
+++ b/hw/i386/pc_q35.c
@@ -30,6 +30,7 @@
 
 #include "qemu/osdep.h"
 #include "qemu/units.h"
+#include "hw/char/parallel.h"
 #include "hw/loader.h"
 #include "hw/i2c/smbus_eeprom.h"
 #include "hw/rtc/mc146818rtc.h"
@@ -366,6 +367,7 @@ static void pc_q35_machine_options(MachineClass *m)
     m->default_nic = "e1000e";
     m->default_kernel_irqchip_split = false;
     m->no_floppy = 1;
+    m->no_parallel = !module_object_class_by_name(TYPE_ISA_PARALLEL);
     machine_class_allow_dynamic_sysbus_dev(m, TYPE_AMD_IOMMU_DEVICE);
     machine_class_allow_dynamic_sysbus_dev(m, TYPE_INTEL_IOMMU_DEVICE);
     machine_class_allow_dynamic_sysbus_dev(m, TYPE_RAMFB_DEVICE);
-- 
2.31.1



^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH 10/18] hw/sparc64/sun4u: Use MachineClass->default_nic and MachineClass->no_parallel
  2023-05-12 12:40 [PATCH 00/18] Allow qtests with --without-default-devices (part 1) Thomas Huth
                   ` (8 preceding siblings ...)
  2023-05-12 12:40 ` [PATCH 09/18] hw/i386: Ignore the default parallel port if it has not been compiled into QEMU Thomas Huth
@ 2023-05-12 12:40 ` Thomas Huth
  2023-05-12 12:40 ` [PATCH 11/18] tests/qtest/readconfig-test: Check for the availability of USB controllers Thomas Huth
                   ` (7 subsequent siblings)
  17 siblings, 0 replies; 22+ messages in thread
From: Thomas Huth @ 2023-05-12 12:40 UTC (permalink / raw)
  To: qemu-devel, Paolo Bonzini, Alex Bennée, Fabiano Rosas
  Cc: Philippe Mathieu-Daudé

Announce the default NIC via MachineClass->default_nic and set up
MachineClass->no_parallel according to the availability of the
"isa-parallel" device, so that the Sun machines also work when
QEMU has been configured with "--without-default-devices".

Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 hw/sparc64/sun4u.c | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/hw/sparc64/sun4u.c b/hw/sparc64/sun4u.c
index eae7589462..e2858a0331 100644
--- a/hw/sparc64/sun4u.c
+++ b/hw/sparc64/sun4u.c
@@ -553,6 +553,7 @@ static void sun4uv_init(MemoryRegion *address_space_mem,
                         MachineState *machine,
                         const struct hwdef *hwdef)
 {
+    MachineClass *mc = MACHINE_GET_CLASS(machine);
     SPARCCPU *cpu;
     Nvram *nvram;
     unsigned int i;
@@ -645,15 +646,15 @@ static void sun4uv_init(MemoryRegion *address_space_mem,
         PCIBus *bus;
         nd = &nd_table[i];
 
-        if (!nd->model || strcmp(nd->model, "sunhme") == 0) {
+        if (!nd->model || strcmp(nd->model, mc->default_nic) == 0) {
             if (!onboard_nic) {
                 pci_dev = pci_new_multifunction(PCI_DEVFN(1, 1),
-                                                   true, "sunhme");
+                                                   true, mc->default_nic);
                 bus = pci_busA;
                 memcpy(&macaddr, &nd->macaddr.a, sizeof(MACAddr));
                 onboard_nic = true;
             } else {
-                pci_dev = pci_new(-1, "sunhme");
+                pci_dev = pci_new(-1, mc->default_nic);
                 bus = pci_busB;
             }
         } else {
@@ -816,6 +817,8 @@ static void sun4u_class_init(ObjectClass *oc, void *data)
     mc->default_cpu_type = SPARC_CPU_TYPE_NAME("TI-UltraSparc-IIi");
     mc->ignore_boot_device_suffixes = true;
     mc->default_display = "std";
+    mc->default_nic = "sunhme";
+    mc->no_parallel = !module_object_class_by_name(TYPE_ISA_PARALLEL);
     fwc->get_dev_path = sun4u_fw_dev_path;
 }
 
@@ -840,6 +843,8 @@ static void sun4v_class_init(ObjectClass *oc, void *data)
     mc->default_boot_order = "c";
     mc->default_cpu_type = SPARC_CPU_TYPE_NAME("Sun-UltraSparc-T1");
     mc->default_display = "std";
+    mc->default_nic = "sunhme";
+    mc->no_parallel = !module_object_class_by_name(TYPE_ISA_PARALLEL);
 }
 
 static const TypeInfo sun4v_type = {
-- 
2.31.1



^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH 11/18] tests/qtest/readconfig-test: Check for the availability of USB controllers
  2023-05-12 12:40 [PATCH 00/18] Allow qtests with --without-default-devices (part 1) Thomas Huth
                   ` (9 preceding siblings ...)
  2023-05-12 12:40 ` [PATCH 10/18] hw/sparc64/sun4u: Use MachineClass->default_nic and MachineClass->no_parallel Thomas Huth
@ 2023-05-12 12:40 ` Thomas Huth
  2023-05-12 12:40 ` [PATCH 12/18] tests/qtest/usb-hcd-uhci-test: Skip test if UHCI controller is not available Thomas Huth
                   ` (6 subsequent siblings)
  17 siblings, 0 replies; 22+ messages in thread
From: Thomas Huth @ 2023-05-12 12:40 UTC (permalink / raw)
  To: qemu-devel, Paolo Bonzini, Alex Bennée, Fabiano Rosas
  Cc: Philippe Mathieu-Daudé

The USB controllers might not be available in the QEMU binary
(e.g. when using the "--without-default-devices" configure switch),
so we have to check whether the devices can be used before running
the related test.

Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 tests/qtest/readconfig-test.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/tests/qtest/readconfig-test.c b/tests/qtest/readconfig-test.c
index 918d45684b..ac7242451b 100644
--- a/tests/qtest/readconfig-test.c
+++ b/tests/qtest/readconfig-test.c
@@ -207,7 +207,10 @@ int main(int argc, char *argv[])
     if (g_str_equal(arch, "i386") ||
         g_str_equal(arch, "x86_64")) {
         qtest_add_func("readconfig/x86/memdev", test_x86_memdev);
-        qtest_add_func("readconfig/x86/ich9-ehci-uhci", test_docs_config_ich9);
+        if (qtest_has_device("ich9-usb-ehci1") &&
+            qtest_has_device("ich9-usb-uhci1")) {
+            qtest_add_func("readconfig/x86/ich9-ehci-uhci", test_docs_config_ich9);
+        }
     }
 #if defined(CONFIG_SPICE) && !defined(__FreeBSD__)
     qtest_add_func("readconfig/spice", test_spice);
-- 
2.31.1



^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH 12/18] tests/qtest/usb-hcd-uhci-test: Skip test if UHCI controller is not available
  2023-05-12 12:40 [PATCH 00/18] Allow qtests with --without-default-devices (part 1) Thomas Huth
                   ` (10 preceding siblings ...)
  2023-05-12 12:40 ` [PATCH 11/18] tests/qtest/readconfig-test: Check for the availability of USB controllers Thomas Huth
@ 2023-05-12 12:40 ` Thomas Huth
  2023-05-12 12:40 ` [PATCH 13/18] tests/qtest/cdrom-test: Fix the test to also work without optional devices Thomas Huth
                   ` (5 subsequent siblings)
  17 siblings, 0 replies; 22+ messages in thread
From: Thomas Huth @ 2023-05-12 12:40 UTC (permalink / raw)
  To: qemu-devel, Paolo Bonzini, Alex Bennée, Fabiano Rosas
  Cc: Philippe Mathieu-Daudé

The test is already fenced with CONFIG_USB_UHCI in meson.build, but in
case we build the ppc or mips targets in parallel, this config switch
is still set in "config_all_devices" and thus the test is still run.
Thus we need an explicit additional check here before adding the tests
to the test plan.

Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 tests/qtest/usb-hcd-uhci-test.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/tests/qtest/usb-hcd-uhci-test.c b/tests/qtest/usb-hcd-uhci-test.c
index f264d2bf73..84ac2f3c1a 100644
--- a/tests/qtest/usb-hcd-uhci-test.c
+++ b/tests/qtest/usb-hcd-uhci-test.c
@@ -66,6 +66,11 @@ int main(int argc, char **argv)
 
     g_test_init(&argc, &argv, NULL);
 
+    if (!qtest_has_device("piix3-usb-uhci")) {
+        g_debug("piix3-usb-uhci not available");
+        return 0;
+    }
+
     qtest_add_func("/uhci/pci/init", test_uhci_init);
     qtest_add_func("/uhci/pci/port1", test_port_1);
     qtest_add_func("/uhci/pci/hotplug", test_uhci_hotplug);
-- 
2.31.1



^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH 13/18] tests/qtest/cdrom-test: Fix the test to also work without optional devices
  2023-05-12 12:40 [PATCH 00/18] Allow qtests with --without-default-devices (part 1) Thomas Huth
                   ` (11 preceding siblings ...)
  2023-05-12 12:40 ` [PATCH 12/18] tests/qtest/usb-hcd-uhci-test: Skip test if UHCI controller is not available Thomas Huth
@ 2023-05-12 12:40 ` Thomas Huth
  2023-05-12 12:40 ` [PATCH 14/18] tests/qtest/virtio-ccw-test: Remove superfluous tests Thomas Huth
                   ` (4 subsequent siblings)
  17 siblings, 0 replies; 22+ messages in thread
From: Thomas Huth @ 2023-05-12 12:40 UTC (permalink / raw)
  To: qemu-devel, Paolo Bonzini, Alex Bennée, Fabiano Rosas
  Cc: Philippe Mathieu-Daudé

It's possible to disable virtio-scsi and virtio-blk in the binaries,
so we must not run the corresponding tests if these devices are missing.

Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 tests/qtest/cdrom-test.c | 18 +++++++++++++++---
 1 file changed, 15 insertions(+), 3 deletions(-)

diff --git a/tests/qtest/cdrom-test.c b/tests/qtest/cdrom-test.c
index 26a2400181..3a9054a5e0 100644
--- a/tests/qtest/cdrom-test.c
+++ b/tests/qtest/cdrom-test.c
@@ -131,9 +131,12 @@ static void test_cdboot(gconstpointer data)
 static void add_x86_tests(void)
 {
     qtest_add_data_func("cdrom/boot/default", "-cdrom ", test_cdboot);
-    qtest_add_data_func("cdrom/boot/virtio-scsi",
-                        "-device virtio-scsi -device scsi-cd,drive=cdr "
-                        "-blockdev file,node-name=cdr,filename=", test_cdboot);
+    if (qtest_has_device("virtio-scsi-ccw")) {
+        qtest_add_data_func("cdrom/boot/virtio-scsi",
+                            "-device virtio-scsi -device scsi-cd,drive=cdr "
+                            "-blockdev file,node-name=cdr,filename=",
+                            test_cdboot);
+    }
     /*
      * Unstable CI test under load
      * See https://lists.gnu.org/archive/html/qemu-devel/2019-02/msg05509.html
@@ -176,7 +179,16 @@ static void add_x86_tests(void)
 
 static void add_s390x_tests(void)
 {
+    if (!qtest_has_device("virtio-blk-ccw")) {
+        return;
+    }
+
     qtest_add_data_func("cdrom/boot/default", "-cdrom ", test_cdboot);
+
+    if (!qtest_has_device("virtio-scsi-ccw")) {
+        return;
+    }
+
     qtest_add_data_func("cdrom/boot/virtio-scsi",
                         "-device virtio-scsi -device scsi-cd,drive=cdr "
                         "-blockdev file,node-name=cdr,filename=", test_cdboot);
-- 
2.31.1



^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH 14/18] tests/qtest/virtio-ccw-test: Remove superfluous tests
  2023-05-12 12:40 [PATCH 00/18] Allow qtests with --without-default-devices (part 1) Thomas Huth
                   ` (12 preceding siblings ...)
  2023-05-12 12:40 ` [PATCH 13/18] tests/qtest/cdrom-test: Fix the test to also work without optional devices Thomas Huth
@ 2023-05-12 12:40 ` Thomas Huth
  2023-05-12 12:40 ` [PATCH 15/18] tests/qtest: Check for the availability of virtio-ccw devices before using them Thomas Huth
                   ` (3 subsequent siblings)
  17 siblings, 0 replies; 22+ messages in thread
From: Thomas Huth @ 2023-05-12 12:40 UTC (permalink / raw)
  To: qemu-devel, Paolo Bonzini, Alex Bennée, Fabiano Rosas
  Cc: Philippe Mathieu-Daudé

virtio-balloon-ccw is already tested in the device-plug-test,
virtio-blk-ccw is already tested in cdrom-test, and virtio-net-ccw
is already tested in the pxe-test, so there is not much point
in doing "nop" tests here again.

Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 tests/qtest/virtio-ccw-test.c | 23 -----------------------
 1 file changed, 23 deletions(-)

diff --git a/tests/qtest/virtio-ccw-test.c b/tests/qtest/virtio-ccw-test.c
index 2de77bb6fe..c0790e3ba2 100644
--- a/tests/qtest/virtio-ccw-test.c
+++ b/tests/qtest/virtio-ccw-test.c
@@ -17,12 +17,6 @@
 #include "libqtest-single.h"
 #include "libqos/virtio.h"
 
-static void virtio_balloon_nop(void)
-{
-    global_qtest = qtest_initf("-device virtio-balloon-ccw");
-    qtest_end();
-}
-
 static void virtconsole_nop(void)
 {
     global_qtest = qtest_initf("-device virtio-serial-ccw,id=vser0 "
@@ -53,20 +47,6 @@ static void virtio_serial_hotplug(void)
     qtest_quit(qts);
 }
 
-static void virtio_blk_nop(void)
-{
-    global_qtest = qtest_initf("-drive if=none,id=drv0,file=null-co://,"
-                               "file.read-zeroes=on,format=raw "
-                                "-device virtio-blk-ccw,drive=drv0");
-    qtest_end();
-}
-
-static void virtio_net_nop(void)
-{
-    global_qtest = qtest_initf("-device virtio-net-ccw");
-    qtest_end();
-}
-
 static void virtio_rng_nop(void)
 {
     global_qtest = qtest_initf("-device virtio-rng-ccw");
@@ -96,13 +76,10 @@ static void virtio_scsi_hotplug(void)
 int main(int argc, char **argv)
 {
     g_test_init(&argc, &argv, NULL);
-    qtest_add_func("/virtio/balloon/nop", virtio_balloon_nop);
     qtest_add_func("/virtio/console/nop", virtconsole_nop);
     qtest_add_func("/virtio/serialport/nop", virtserialport_nop);
     qtest_add_func("/virtio/serial/nop", virtio_serial_nop);
     qtest_add_func("/virtio/serial/hotplug", virtio_serial_hotplug);
-    qtest_add_func("/virtio/block/nop", virtio_blk_nop);
-    qtest_add_func("/virtio/net/nop", virtio_net_nop);
     qtest_add_func("/virtio/rng/nop", virtio_rng_nop);
     qtest_add_func("/virtio/scsi/nop", virtio_scsi_nop);
     qtest_add_func("/virtio/scsi/hotplug", virtio_scsi_hotplug);
-- 
2.31.1



^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH 15/18] tests/qtest: Check for the availability of virtio-ccw devices before using them
  2023-05-12 12:40 [PATCH 00/18] Allow qtests with --without-default-devices (part 1) Thomas Huth
                   ` (13 preceding siblings ...)
  2023-05-12 12:40 ` [PATCH 14/18] tests/qtest/virtio-ccw-test: Remove superfluous tests Thomas Huth
@ 2023-05-12 12:40 ` Thomas Huth
  2023-05-12 12:40 ` [PATCH 16/18] tests/qtest/meson.build: Run the net filter tests only with default devices Thomas Huth
                   ` (2 subsequent siblings)
  17 siblings, 0 replies; 22+ messages in thread
From: Thomas Huth @ 2023-05-12 12:40 UTC (permalink / raw)
  To: qemu-devel, Paolo Bonzini, Alex Bennée, Fabiano Rosas
  Cc: Philippe Mathieu-Daudé

The devices might not have been compiled into the QEMU binary, so we
have to check before we can use them.

Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 tests/qtest/device-plug-test.c |  9 ++++++++-
 tests/qtest/virtio-ccw-test.c  | 20 +++++++++++++-------
 2 files changed, 21 insertions(+), 8 deletions(-)

diff --git a/tests/qtest/device-plug-test.c b/tests/qtest/device-plug-test.c
index 01cecd6e20..abd544b70c 100644
--- a/tests/qtest/device-plug-test.c
+++ b/tests/qtest/device-plug-test.c
@@ -156,7 +156,14 @@ static void test_q35_pci_unplug_json_request(void)
 
 static void test_ccw_unplug(void)
 {
-    QTestState *qtest = qtest_initf("-device virtio-balloon-ccw,id=dev0");
+    QTestState *qtest;
+
+    if (!qtest_has_device("virtio-balloon-ccw")) {
+        g_test_skip("Device virtio-balloon-ccw not available");
+        return;
+    }
+
+    qtest = qtest_initf("-device virtio-balloon-ccw,id=dev0");
 
     qtest_qmp_device_del_send(qtest, "dev0");
     wait_device_deleted_event(qtest, "dev0");
diff --git a/tests/qtest/virtio-ccw-test.c b/tests/qtest/virtio-ccw-test.c
index c0790e3ba2..f4f5858b84 100644
--- a/tests/qtest/virtio-ccw-test.c
+++ b/tests/qtest/virtio-ccw-test.c
@@ -76,13 +76,19 @@ static void virtio_scsi_hotplug(void)
 int main(int argc, char **argv)
 {
     g_test_init(&argc, &argv, NULL);
-    qtest_add_func("/virtio/console/nop", virtconsole_nop);
-    qtest_add_func("/virtio/serialport/nop", virtserialport_nop);
-    qtest_add_func("/virtio/serial/nop", virtio_serial_nop);
-    qtest_add_func("/virtio/serial/hotplug", virtio_serial_hotplug);
-    qtest_add_func("/virtio/rng/nop", virtio_rng_nop);
-    qtest_add_func("/virtio/scsi/nop", virtio_scsi_nop);
-    qtest_add_func("/virtio/scsi/hotplug", virtio_scsi_hotplug);
+    if (qtest_has_device("virtio-serial-ccw")) {
+        qtest_add_func("/virtio/console/nop", virtconsole_nop);
+        qtest_add_func("/virtio/serialport/nop", virtserialport_nop);
+        qtest_add_func("/virtio/serial/nop", virtio_serial_nop);
+        qtest_add_func("/virtio/serial/hotplug", virtio_serial_hotplug);
+    }
+    if (qtest_has_device("virtio-rng-ccw")) {
+        qtest_add_func("/virtio/rng/nop", virtio_rng_nop);
+    }
+    if (qtest_has_device("virtio-rng-ccw")) {
+        qtest_add_func("/virtio/scsi/nop", virtio_scsi_nop);
+        qtest_add_func("/virtio/scsi/hotplug", virtio_scsi_hotplug);
+    }
 
     return g_test_run();
 }
-- 
2.31.1



^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH 16/18] tests/qtest/meson.build: Run the net filter tests only with default devices
  2023-05-12 12:40 [PATCH 00/18] Allow qtests with --without-default-devices (part 1) Thomas Huth
                   ` (14 preceding siblings ...)
  2023-05-12 12:40 ` [PATCH 15/18] tests/qtest: Check for the availability of virtio-ccw devices before using them Thomas Huth
@ 2023-05-12 12:40 ` Thomas Huth
  2023-05-14 20:31   ` Paolo Bonzini
  2023-05-12 12:40 ` [PATCH 17/18] tests/qemu-iotests/172: Run QEMU with -vga none and -nic none Thomas Huth
  2023-05-12 12:40 ` [PATCH 18/18] .gitlab-ci.d/buildtest.yml: Run full "make check" with --without-default-devices Thomas Huth
  17 siblings, 1 reply; 22+ messages in thread
From: Thomas Huth @ 2023-05-12 12:40 UTC (permalink / raw)
  To: qemu-devel, Paolo Bonzini, Alex Bennée, Fabiano Rosas
  Cc: Philippe Mathieu-Daudé

These tests rely on a default NIC to be available. Skip them if we
used the "--without-default-devices" configure option.

Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 tests/qtest/meson.build | 10 ++++------
 1 file changed, 4 insertions(+), 6 deletions(-)

diff --git a/tests/qtest/meson.build b/tests/qtest/meson.build
index 48cd35b5b2..8fec3103b5 100644
--- a/tests/qtest/meson.build
+++ b/tests/qtest/meson.build
@@ -35,9 +35,9 @@ qtests_cxl = \
   (config_all_devices.has_key('CONFIG_CXL') ? ['cxl-test'] : [])
 
 qtests_filter = \
-  (slirp.found() ? ['test-netfilter'] : []) + \
-  (config_host.has_key('CONFIG_POSIX') ? ['test-filter-mirror'] : []) + \
-  (config_host.has_key('CONFIG_POSIX') ? ['test-filter-redirector'] : [])
+  (get_option('default_devices') and slirp.found() ? ['test-netfilter'] : []) + \
+  (get_option('default_devices') and config_host.has_key('CONFIG_POSIX') ? ['test-filter-mirror'] : []) + \
+  (get_option('default_devices') and config_host.has_key('CONFIG_POSIX') ? ['test-filter-redirector'] : [])
 
 qtests_i386 = \
   (slirp.found() ? ['pxe-test'] : []) + \
@@ -221,9 +221,7 @@ qtests_aarch64 = \
    'migration-test']
 
 qtests_s390x = \
-  (slirp.found() ? ['pxe-test', 'test-netfilter'] : []) +                 \
-  (config_host.has_key('CONFIG_POSIX') ? ['test-filter-mirror'] : []) +                         \
-  (config_host.has_key('CONFIG_POSIX') ? ['test-filter-redirector'] : []) +                     \
+  qtests_filter + \
   ['boot-serial-test',
    'drive_del-test',
    'device-plug-test',
-- 
2.31.1



^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH 17/18] tests/qemu-iotests/172: Run QEMU with -vga none and -nic none
  2023-05-12 12:40 [PATCH 00/18] Allow qtests with --without-default-devices (part 1) Thomas Huth
                   ` (15 preceding siblings ...)
  2023-05-12 12:40 ` [PATCH 16/18] tests/qtest/meson.build: Run the net filter tests only with default devices Thomas Huth
@ 2023-05-12 12:40 ` Thomas Huth
  2023-05-12 12:40 ` [PATCH 18/18] .gitlab-ci.d/buildtest.yml: Run full "make check" with --without-default-devices Thomas Huth
  17 siblings, 0 replies; 22+ messages in thread
From: Thomas Huth @ 2023-05-12 12:40 UTC (permalink / raw)
  To: qemu-devel, Paolo Bonzini, Alex Bennée, Fabiano Rosas
  Cc: Philippe Mathieu-Daudé

This way QEMU won't complain in case the VGA card or the NIC device
are not available in the binary, thus it won't spoil the output
and the test then passes with such QEMU binaries that have a limited
configuration, too.

Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 tests/qemu-iotests/172 | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tests/qemu-iotests/172 b/tests/qemu-iotests/172
index ff269ca7b5..4da0e0f2e2 100755
--- a/tests/qemu-iotests/172
+++ b/tests/qemu-iotests/172
@@ -56,7 +56,7 @@ do_run_qemu()
             done
         fi
         echo quit
-    ) | $QEMU -accel qtest -nographic -monitor stdio -serial none "$@"
+    ) | $QEMU -accel qtest -nographic -monitor stdio -serial none -vga none -nic none "$@"
     echo
 }
 
-- 
2.31.1



^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH 18/18] .gitlab-ci.d/buildtest.yml: Run full "make check" with --without-default-devices
  2023-05-12 12:40 [PATCH 00/18] Allow qtests with --without-default-devices (part 1) Thomas Huth
                   ` (16 preceding siblings ...)
  2023-05-12 12:40 ` [PATCH 17/18] tests/qemu-iotests/172: Run QEMU with -vga none and -nic none Thomas Huth
@ 2023-05-12 12:40 ` Thomas Huth
  17 siblings, 0 replies; 22+ messages in thread
From: Thomas Huth @ 2023-05-12 12:40 UTC (permalink / raw)
  To: qemu-devel, Paolo Bonzini, Alex Bennée, Fabiano Rosas
  Cc: Philippe Mathieu-Daudé

Thanks to the fixes from the previous patches, we can now run
the full set of "make check" with all targets here.

Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 .gitlab-ci.d/buildtest.yml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/.gitlab-ci.d/buildtest.yml b/.gitlab-ci.d/buildtest.yml
index bb3650a51c..1922caf536 100644
--- a/.gitlab-ci.d/buildtest.yml
+++ b/.gitlab-ci.d/buildtest.yml
@@ -527,7 +527,7 @@ build-without-defaults:
       --disable-strip
     TARGETS: avr-softmmu mips64-softmmu s390x-softmmu sh4-softmmu
       sparc64-softmmu hexagon-linux-user i386-linux-user s390x-linux-user
-    MAKE_CHECK_ARGS: check-unit check-qtest-avr check-qtest-mips64
+    MAKE_CHECK_ARGS: check
 
 build-libvhost-user:
   extends: .base_job_template
-- 
2.31.1



^ permalink raw reply related	[flat|nested] 22+ messages in thread

* Re: [PATCH 16/18] tests/qtest/meson.build: Run the net filter tests only with default devices
  2023-05-12 12:40 ` [PATCH 16/18] tests/qtest/meson.build: Run the net filter tests only with default devices Thomas Huth
@ 2023-05-14 20:31   ` Paolo Bonzini
  2023-05-15  9:46     ` Thomas Huth
  0 siblings, 1 reply; 22+ messages in thread
From: Paolo Bonzini @ 2023-05-14 20:31 UTC (permalink / raw)
  To: Thomas Huth
  Cc: qemu-devel, Alex Bennée, Fabiano Rosas,
	Philippe Mathieu-Daudé

[-- Attachment #1: Type: text/plain, Size: 2387 bytes --]

Il ven 12 mag 2023, 14:41 Thomas Huth <thuth@redhat.com> ha scritto:

> These tests rely on a default NIC to be available. Skip them if we
> used the "--without-default-devices" configure option.
>
> Signed-off-by: Thomas Huth <thuth@redhat.com>
>

This is the only patch I have some qualms about, because it reduces
coverage in legitimate setups where the default NIC _is_ included in the
binary.

Still a lot better than before, but please add a FIXME here. We can perhaps
try to use QMP to check if the machines have a usable default NIC, and if
not skip the test, but this should not block the bulk of your work from
being merged.

So, apart from this issue, series

Acked-by: Paolo Bonzini <pbonzini@redhat.com>

(Since I have only skimmed the contents of the individual patches but liked
them enough—or disliked for this one...—to reply already).

Paolo


---
>  tests/qtest/meson.build | 10 ++++------
>  1 file changed, 4 insertions(+), 6 deletions(-)
>
> diff --git a/tests/qtest/meson.build b/tests/qtest/meson.build
> index 48cd35b5b2..8fec3103b5 100644
> --- a/tests/qtest/meson.build
> +++ b/tests/qtest/meson.build
> @@ -35,9 +35,9 @@ qtests_cxl = \
>    (config_all_devices.has_key('CONFIG_CXL') ? ['cxl-test'] : [])
>
>  qtests_filter = \
> -  (slirp.found() ? ['test-netfilter'] : []) + \
> -  (config_host.has_key('CONFIG_POSIX') ? ['test-filter-mirror'] : []) + \
> -  (config_host.has_key('CONFIG_POSIX') ? ['test-filter-redirector'] : [])
> +  (get_option('default_devices') and slirp.found() ? ['test-netfilter'] :
> []) + \
> +  (get_option('default_devices') and config_host.has_key('CONFIG_POSIX')
> ? ['test-filter-mirror'] : []) + \
> +  (get_option('default_devices') and config_host.has_key('CONFIG_POSIX')
> ? ['test-filter-redirector'] : [])
>
>  qtests_i386 = \
>    (slirp.found() ? ['pxe-test'] : []) + \
> @@ -221,9 +221,7 @@ qtests_aarch64 = \
>     'migration-test']
>
>  qtests_s390x = \
> -  (slirp.found() ? ['pxe-test', 'test-netfilter'] : []) +
>  \
> -  (config_host.has_key('CONFIG_POSIX') ? ['test-filter-mirror'] : []) +
>                        \
> -  (config_host.has_key('CONFIG_POSIX') ? ['test-filter-redirector'] : [])
> +                     \
> +  qtests_filter + \
>    ['boot-serial-test',
>     'drive_del-test',
>     'device-plug-test',
> --
> 2.31.1
>
>

[-- Attachment #2: Type: text/html, Size: 3615 bytes --]

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH 16/18] tests/qtest/meson.build: Run the net filter tests only with default devices
  2023-05-14 20:31   ` Paolo Bonzini
@ 2023-05-15  9:46     ` Thomas Huth
  2023-05-15 10:42       ` Paolo Bonzini
  0 siblings, 1 reply; 22+ messages in thread
From: Thomas Huth @ 2023-05-15  9:46 UTC (permalink / raw)
  To: Paolo Bonzini
  Cc: qemu-devel, Alex Bennée, Fabiano Rosas,
	Philippe Mathieu-Daudé

On 14/05/2023 22.31, Paolo Bonzini wrote:
> 
> 
> Il ven 12 mag 2023, 14:41 Thomas Huth <thuth@redhat.com 
> <mailto:thuth@redhat.com>> ha scritto:
> 
>     These tests rely on a default NIC to be available. Skip them if we
>     used the "--without-default-devices" configure option.
> 
>     Signed-off-by: Thomas Huth <thuth@redhat.com <mailto:thuth@redhat.com>>
> 
> 
> This is the only patch I have some qualms about, because it reduces coverage 
> in legitimate setups where the default NIC _is_ included in the binary.
> 
> Still a lot better than before, but please add a FIXME here.

Ok, will do.

> We can perhaps 
> try to use QMP to check if the machines have a usable default NIC, and if 
> not skip the test, but this should not block the bulk of your work from 
> being merged.

I'm currently not aware of a way to query the default NIC via QMP, so this 
might need some extensions there ... but I'll keep it in mind.

The alternative would be to hard-code the default NICs for each architecture 
in the tests again and check for the availability with that hard-coded list 
... but that's also ugly, I think.

> So, apart from this issue, series
> 
> Acked-by: Paolo Bonzini <pbonzini@redhat.com>

Thanks!

  Thomas




^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH 16/18] tests/qtest/meson.build: Run the net filter tests only with default devices
  2023-05-15  9:46     ` Thomas Huth
@ 2023-05-15 10:42       ` Paolo Bonzini
  0 siblings, 0 replies; 22+ messages in thread
From: Paolo Bonzini @ 2023-05-15 10:42 UTC (permalink / raw)
  To: Thomas Huth
  Cc: qemu-devel, Alex Bennée, Fabiano Rosas,
	Philippe Mathieu-Daudé

On Mon, May 15, 2023 at 11:46 AM Thomas Huth <thuth@redhat.com> wrote:
> On 14/05/2023 22.31, Paolo Bonzini wrote:
> > We can perhaps
> > try to use QMP to check if the machines have a usable default NIC, and if
> > not skip the test, but this should not block the bulk of your work from
> > being merged.
>
> I'm currently not aware of a way to query the default NIC via QMP, so this
> might need some extensions there ... but I'll keep it in mind.

Yes, it would need some changes to MachineInfo (in qapi/machine.json).

Paolo



^ permalink raw reply	[flat|nested] 22+ messages in thread

end of thread, other threads:[~2023-05-15 10:42 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-05-12 12:40 [PATCH 00/18] Allow qtests with --without-default-devices (part 1) Thomas Huth
2023-05-12 12:40 ` [PATCH 01/18] hw/i386/Kconfig: ISAPC works fine without VGA_ISA Thomas Huth
2023-05-12 12:40 ` [PATCH 02/18] softmmu/vl.c: Check for the availability of the VGA device before using it Thomas Huth
2023-05-12 12:40 ` [PATCH 03/18] hw: Move the default NIC machine class setting from the x86 to the generic one Thomas Huth
2023-05-12 12:40 ` [PATCH 04/18] softmmu/vl.c: Disable default NIC if it has not been compiled into the binary Thomas Huth
2023-05-12 12:40 ` [PATCH 05/18] hw/ppc: Use MachineClass->default_nic in the ppc machines Thomas Huth
2023-05-12 12:40 ` [PATCH 06/18] hw/s390x: Use MachineClass->default_nic in the s390x machine Thomas Huth
2023-05-12 12:40 ` [PATCH 07/18] hw/sh4: Use MachineClass->default_nic in the sh4 r2d machine Thomas Huth
2023-05-12 12:40 ` [PATCH 08/18] hw/char/parallel: Move TYPE_ISA_PARALLEL to the header file Thomas Huth
2023-05-12 12:40 ` [PATCH 09/18] hw/i386: Ignore the default parallel port if it has not been compiled into QEMU Thomas Huth
2023-05-12 12:40 ` [PATCH 10/18] hw/sparc64/sun4u: Use MachineClass->default_nic and MachineClass->no_parallel Thomas Huth
2023-05-12 12:40 ` [PATCH 11/18] tests/qtest/readconfig-test: Check for the availability of USB controllers Thomas Huth
2023-05-12 12:40 ` [PATCH 12/18] tests/qtest/usb-hcd-uhci-test: Skip test if UHCI controller is not available Thomas Huth
2023-05-12 12:40 ` [PATCH 13/18] tests/qtest/cdrom-test: Fix the test to also work without optional devices Thomas Huth
2023-05-12 12:40 ` [PATCH 14/18] tests/qtest/virtio-ccw-test: Remove superfluous tests Thomas Huth
2023-05-12 12:40 ` [PATCH 15/18] tests/qtest: Check for the availability of virtio-ccw devices before using them Thomas Huth
2023-05-12 12:40 ` [PATCH 16/18] tests/qtest/meson.build: Run the net filter tests only with default devices Thomas Huth
2023-05-14 20:31   ` Paolo Bonzini
2023-05-15  9:46     ` Thomas Huth
2023-05-15 10:42       ` Paolo Bonzini
2023-05-12 12:40 ` [PATCH 17/18] tests/qemu-iotests/172: Run QEMU with -vga none and -nic none Thomas Huth
2023-05-12 12:40 ` [PATCH 18/18] .gitlab-ci.d/buildtest.yml: Run full "make check" with --without-default-devices Thomas Huth

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).