Compare commits
	
		
			12 Commits
		
	
	
		
			v9.0.4
			...
			without-de
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|  | eab13108cd | ||
|  | 750400c56f | ||
|  | f5ef199312 | ||
|  | c789207417 | ||
|  | 3bf0b7dd7b | ||
|  | 3864d5e5c6 | ||
|  | 8a840ab4c2 | ||
|  | d32f29f651 | ||
|  | 696cf0c1cd | ||
|  | ef92be0914 | ||
|  | f85bfa0bcb | ||
|  | ecbd3f095e | 
| @@ -40,6 +40,7 @@ trap "_cleanup; exit \$status" 0 1 2 3 15 | ||||
| _supported_fmt qcow2 | ||||
| _supported_proto file fuse | ||||
| _require_drivers null-co | ||||
| _require_devices virtio-scsi-pci | ||||
|  | ||||
| if [ "$QEMU_DEFAULT_MACHINE" != "pc" ]; then | ||||
|     _notrun "Requires a PC machine" | ||||
|   | ||||
| @@ -1008,6 +1008,12 @@ static void test_acpi_q35_multif_bridge(void) | ||||
|         .machine = MACHINE_Q35, | ||||
|         .variant = ".multi-bridge", | ||||
|     }; | ||||
|  | ||||
|     if (!qtest_has_device("pcie-root-port")) { | ||||
|         g_test_skip("Device pcie-root-port is not available"); | ||||
|         goto out; | ||||
|     } | ||||
|  | ||||
|     test_vm_prepare("-S" | ||||
|         " -device virtio-balloon,id=balloon0,addr=0x4.0x2" | ||||
|         " -device pcie-root-port,id=rp0,multifunction=on," | ||||
| @@ -1043,6 +1049,7 @@ static void test_acpi_q35_multif_bridge(void) | ||||
|     /* check that reboot/reset doesn't change any ACPI tables  */ | ||||
|     qtest_qmp_send(data.qts, "{'execute':'system_reset' }"); | ||||
|     process_acpi_tables(&data); | ||||
| out: | ||||
|     free_test_data(&data); | ||||
| } | ||||
|  | ||||
| @@ -1396,6 +1403,11 @@ static void test_acpi_tcg_dimm_pxm(const char *machine) | ||||
| { | ||||
|     test_data data; | ||||
|  | ||||
|     if (!qtest_has_device("nvdimm")) { | ||||
|         g_test_skip("Device nvdimm is not available"); | ||||
|         return; | ||||
|     } | ||||
|  | ||||
|     memset(&data, 0, sizeof(data)); | ||||
|     data.machine = machine; | ||||
|     data.variant = ".dimmpxm"; | ||||
| @@ -1444,6 +1456,11 @@ static void test_acpi_virt_tcg_memhp(void) | ||||
|         .scan_len = 256ULL * 1024 * 1024, | ||||
|     }; | ||||
|  | ||||
|     if (!qtest_has_device("nvdimm")) { | ||||
|         g_test_skip("Device nvdimm is not available"); | ||||
|         goto out; | ||||
|     } | ||||
|  | ||||
|     data.variant = ".memhp"; | ||||
|     test_acpi_one(" -machine nvdimm=on" | ||||
|                   " -cpu cortex-a57" | ||||
| @@ -1457,7 +1474,7 @@ static void test_acpi_virt_tcg_memhp(void) | ||||
|                   " -device pc-dimm,id=dimm0,memdev=ram2,node=0" | ||||
|                   " -device nvdimm,id=dimm1,memdev=nvm0,node=1", | ||||
|                   &data); | ||||
|  | ||||
| out: | ||||
|     free_test_data(&data); | ||||
|  | ||||
| } | ||||
| @@ -1475,6 +1492,11 @@ static void test_acpi_microvm_tcg(void) | ||||
| { | ||||
|     test_data data; | ||||
|  | ||||
|     if (!qtest_has_device("virtio-blk-device")) { | ||||
|         g_test_skip("Device virtio-blk-device is not available"); | ||||
|         return; | ||||
|     } | ||||
|  | ||||
|     test_acpi_microvm_prepare(&data); | ||||
|     test_acpi_one(" -machine microvm,acpi=on,ioapic2=off,rtc=off", | ||||
|                   &data); | ||||
| @@ -1485,6 +1507,11 @@ static void test_acpi_microvm_usb_tcg(void) | ||||
| { | ||||
|     test_data data; | ||||
|  | ||||
|     if (!qtest_has_device("virtio-blk-device")) { | ||||
|         g_test_skip("Device virtio-blk-device is not available"); | ||||
|         return; | ||||
|     } | ||||
|  | ||||
|     test_acpi_microvm_prepare(&data); | ||||
|     data.variant = ".usb"; | ||||
|     test_acpi_one(" -machine microvm,acpi=on,ioapic2=off,usb=on,rtc=off", | ||||
| @@ -1496,6 +1523,11 @@ static void test_acpi_microvm_rtc_tcg(void) | ||||
| { | ||||
|     test_data data; | ||||
|  | ||||
|     if (!qtest_has_device("virtio-blk-device")) { | ||||
|         g_test_skip("Device virtio-blk-device is not available"); | ||||
|         return; | ||||
|     } | ||||
|  | ||||
|     test_acpi_microvm_prepare(&data); | ||||
|     data.variant = ".rtc"; | ||||
|     test_acpi_one(" -machine microvm,acpi=on,ioapic2=off,rtc=on", | ||||
| @@ -1507,6 +1539,11 @@ static void test_acpi_microvm_pcie_tcg(void) | ||||
| { | ||||
|     test_data data; | ||||
|  | ||||
|     if (!qtest_has_device("virtio-blk-device")) { | ||||
|         g_test_skip("Device virtio-blk-device is not available"); | ||||
|         return; | ||||
|     } | ||||
|  | ||||
|     test_acpi_microvm_prepare(&data); | ||||
|     data.variant = ".pcie"; | ||||
|     data.tcg_only = true; /* need constant host-phys-bits */ | ||||
| @@ -1519,6 +1556,11 @@ static void test_acpi_microvm_ioapic2_tcg(void) | ||||
| { | ||||
|     test_data data; | ||||
|  | ||||
|     if (!qtest_has_device("virtio-blk-device")) { | ||||
|         g_test_skip("Device virtio-blk-device is not available"); | ||||
|         return; | ||||
|     } | ||||
|  | ||||
|     test_acpi_microvm_prepare(&data); | ||||
|     data.variant = ".ioapic2"; | ||||
|     test_acpi_one(" -machine microvm,acpi=on,ioapic2=on,rtc=off", | ||||
| @@ -1558,6 +1600,12 @@ static void test_acpi_virt_tcg_pxb(void) | ||||
|         .ram_start = 0x40000000ULL, | ||||
|         .scan_len = 128ULL * 1024 * 1024, | ||||
|     }; | ||||
|  | ||||
|     if (!qtest_has_device("pcie-root-port")) { | ||||
|         g_test_skip("Device pcie-root-port is not available"); | ||||
|         goto out; | ||||
|     } | ||||
|  | ||||
|     /* | ||||
|      * While using -cdrom, the cdrom would auto plugged into pxb-pcie, | ||||
|      * the reason is the bus of pxb-pcie is also root bus, it would lead | ||||
| @@ -1576,7 +1624,7 @@ static void test_acpi_virt_tcg_pxb(void) | ||||
|                   " -cpu cortex-a57" | ||||
|                   " -device pxb-pcie,bus_nr=128", | ||||
|                   &data); | ||||
|  | ||||
| out: | ||||
|     free_test_data(&data); | ||||
| } | ||||
|  | ||||
| @@ -1764,6 +1812,12 @@ static void test_acpi_microvm_acpi_erst(void) | ||||
|     gchar *params; | ||||
|     test_data data; | ||||
|  | ||||
|     if (!qtest_has_device("virtio-blk-device")) { | ||||
|         g_test_skip("Device virtio-blk-device is not available"); | ||||
|         g_free(tmp_path); | ||||
|         return; | ||||
|     } | ||||
|  | ||||
|     test_acpi_microvm_prepare(&data); | ||||
|     data.variant = ".pcie"; | ||||
|     data.tcg_only = true; /* need constant host-phys-bits */ | ||||
| @@ -1824,6 +1878,11 @@ static void test_acpi_q35_viot(void) | ||||
|         .variant = ".viot", | ||||
|     }; | ||||
|  | ||||
|     if (!qtest_has_device("virtio-iommu")) { | ||||
|         g_test_skip("Device virtio-iommu is not available"); | ||||
|         goto out; | ||||
|     } | ||||
|  | ||||
|     /* | ||||
|      * To keep things interesting, two buses bypass the IOMMU. | ||||
|      * VIOT should only describes the other two buses. | ||||
| @@ -1834,6 +1893,7 @@ static void test_acpi_q35_viot(void) | ||||
|                   "-device pxb-pcie,bus_nr=0x20,id=pcie.200,bus=pcie.0,bypass_iommu=on " | ||||
|                   "-device pxb-pcie,bus_nr=0x30,id=pcie.300,bus=pcie.0", | ||||
|                   &data); | ||||
| out: | ||||
|     free_test_data(&data); | ||||
| } | ||||
|  | ||||
| @@ -1894,8 +1954,10 @@ static void test_acpi_virt_viot(void) | ||||
|         .scan_len = 128ULL * 1024 * 1024, | ||||
|     }; | ||||
|  | ||||
|     test_acpi_one("-cpu cortex-a57 " | ||||
|                   "-device virtio-iommu-pci", &data); | ||||
|     if (qtest_has_device("virtio-iommu")) { | ||||
|         test_acpi_one("-cpu cortex-a57 " | ||||
|                        "-device virtio-iommu-pci", &data); | ||||
|     } | ||||
|     free_test_data(&data); | ||||
| } | ||||
|  | ||||
| @@ -2004,6 +2066,11 @@ static void test_acpi_microvm_oem_fields(void) | ||||
|     test_data data; | ||||
|     char *args; | ||||
|  | ||||
|     if (!qtest_has_device("virtio-blk-device")) { | ||||
|         g_test_skip("Device virtio-blk-device is not available"); | ||||
|         return; | ||||
|     } | ||||
|  | ||||
|     test_acpi_microvm_prepare(&data); | ||||
|  | ||||
|     args = test_acpi_create_args(&data, | ||||
|   | ||||
| @@ -64,15 +64,21 @@ 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")) { | ||||
|         g_test_skip("Device virtio-mouse-pci not available"); | ||||
|         return; | ||||
|     } | ||||
|  | ||||
|     if (strcmp(arch, "i386") == 0 || strcmp(arch, "x86_64") == 0) { | ||||
|         machine_addition = "-machine pc"; | ||||
|     } | ||||
|  | ||||
|     QTestState *qtest = qtest_initf("%s -device virtio-mouse-pci,id=dev0", | ||||
|                                     machine_addition); | ||||
|     qtest = qtest_initf("%s -device virtio-mouse-pci,id=dev0", | ||||
|                         machine_addition); | ||||
|  | ||||
|     process_device_remove(qtest, "dev0"); | ||||
|  | ||||
| @@ -81,11 +87,17 @@ static void test_pci_unplug_request(void) | ||||
|  | ||||
| static void test_q35_pci_unplug_request(void) | ||||
| { | ||||
|     QTestState *qtest; | ||||
|  | ||||
|     QTestState *qtest = qtest_initf("-machine q35 " | ||||
|                                     "-device pcie-root-port,id=p1 " | ||||
|                                     "-device pcie-pci-bridge,bus=p1,id=b1 " | ||||
|                                     "-device virtio-mouse-pci,bus=b1,id=dev0"); | ||||
|     if (!qtest_has_device("virtio-mouse-pci")) { | ||||
|         g_test_skip("Device virtio-mouse-pci not available"); | ||||
|         return; | ||||
|     } | ||||
|  | ||||
|     qtest = qtest_initf("-machine q35 " | ||||
|                         "-device pcie-root-port,id=p1 " | ||||
|                         "-device pcie-pci-bridge,bus=p1,id=b1 " | ||||
|                         "-device virtio-mouse-pci,bus=b1,id=dev0"); | ||||
|  | ||||
|     process_device_remove(qtest, "dev0"); | ||||
|  | ||||
| @@ -94,14 +106,20 @@ 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")) { | ||||
|         g_test_skip("Device virtio-mouse-pci not available"); | ||||
|         return; | ||||
|     } | ||||
|  | ||||
|     if (strcmp(arch, "i386") == 0 || strcmp(arch, "x86_64") == 0) { | ||||
|         machine_addition = "-machine pc"; | ||||
|     } | ||||
|  | ||||
|     QTestState *qtest = qtest_initf( | ||||
|     qtest = qtest_initf( | ||||
|         "%s -device \"{'driver': 'virtio-mouse-pci', 'id': 'dev0'}\"", | ||||
|         machine_addition); | ||||
|  | ||||
| @@ -112,6 +130,7 @@ static void test_pci_unplug_json_request(void) | ||||
|  | ||||
| static void test_q35_pci_unplug_json_request(void) | ||||
| { | ||||
|     QTestState *qtest; | ||||
|     const char *port = "-device \"{'driver': 'pcie-root-port', " | ||||
|                                   "'id': 'p1'}\""; | ||||
|  | ||||
| @@ -123,8 +142,12 @@ static void test_q35_pci_unplug_json_request(void) | ||||
|                                     "'bus': 'b1', " | ||||
|                                     "'id': 'dev0'}\""; | ||||
|  | ||||
|     QTestState *qtest = qtest_initf("-machine q35 %s %s %s", | ||||
|                                     port, bridge, device); | ||||
|     if (!qtest_has_device("virtio-mouse-pci")) { | ||||
|         g_test_skip("Device virtio-mouse-pci not available"); | ||||
|         return; | ||||
|     } | ||||
|  | ||||
|     qtest = qtest_initf("-machine q35 %s %s %s", port, bridge, device); | ||||
|  | ||||
|     process_device_remove(qtest, "dev0"); | ||||
|  | ||||
|   | ||||
| @@ -16,6 +16,8 @@ | ||||
| #include "qapi/qmp/qdict.h" | ||||
| #include "qapi/qmp/qlist.h" | ||||
|  | ||||
| static const char *qvirtio_get_dev_type(void); | ||||
|  | ||||
| static bool look_for_drive0(QTestState *qts, const char *command, const char *key) | ||||
| { | ||||
|     QDict *response; | ||||
| @@ -40,6 +42,19 @@ static bool look_for_drive0(QTestState *qts, const char *command, const char *ke | ||||
|     return found; | ||||
| } | ||||
|  | ||||
| /* | ||||
|  * This covers the possible absence of a device due to QEMU build | ||||
|  * options. | ||||
|  */ | ||||
| static bool has_device_builtin(const char *dev) | ||||
| { | ||||
|     gchar *device = g_strdup_printf("%s-%s", dev, qvirtio_get_dev_type()); | ||||
|     bool rc = qtest_has_device(device); | ||||
|  | ||||
|     g_free(device); | ||||
|     return rc; | ||||
| } | ||||
|  | ||||
| static bool has_drive(QTestState *qts) | ||||
| { | ||||
|     return look_for_drive0(qts, "query-block", "device"); | ||||
| @@ -208,6 +223,11 @@ static void test_drive_del_device_del(void) | ||||
| { | ||||
|     QTestState *qts; | ||||
|  | ||||
|     if (!has_device_builtin("virtio-scsi")) { | ||||
|         g_test_skip("Device virtio-scsi is not available"); | ||||
|         return; | ||||
|     } | ||||
|  | ||||
|     /* Start with a drive used by a device that unplugs instantaneously */ | ||||
|     qts = qtest_initf("-drive if=none,id=drive0,file=null-co://," | ||||
|                       "file.read-zeroes=on,format=raw" | ||||
| @@ -232,6 +252,11 @@ static void test_cli_device_del(void) | ||||
|     const char *arch = qtest_get_arch(); | ||||
|     const char *machine_addition = ""; | ||||
|  | ||||
|     if (!has_device_builtin("virtio-blk")) { | ||||
|         g_test_skip("Device virtio-blk is not available"); | ||||
|         return; | ||||
|     } | ||||
|  | ||||
|     if (strcmp(arch, "i386") == 0 || strcmp(arch, "x86_64") == 0) { | ||||
|         machine_addition = "-machine pc"; | ||||
|     } | ||||
| @@ -256,6 +281,11 @@ static void test_cli_device_del_q35(void) | ||||
| { | ||||
|     QTestState *qts; | ||||
|  | ||||
|     if (!has_device_builtin("virtio-blk")) { | ||||
|         g_test_skip("Device virtio-blk is not available"); | ||||
|         return; | ||||
|     } | ||||
|  | ||||
|     /* | ||||
|      * -drive/-device and device_del.  Start with a drive used by a | ||||
|      * device that unplugs after reset. | ||||
| @@ -277,6 +307,11 @@ static void test_empty_device_del(void) | ||||
| { | ||||
|     QTestState *qts; | ||||
|  | ||||
|     if (!has_device_builtin("virtio-scsi")) { | ||||
|         g_test_skip("Device virtio-scsi is not available"); | ||||
|         return; | ||||
|     } | ||||
|  | ||||
|     /* device_del with no drive plugged.  */ | ||||
|     qts = qtest_initf("-device virtio-scsi-%s -device scsi-cd,id=dev0", | ||||
|                       qvirtio_get_dev_type()); | ||||
| @@ -291,6 +326,11 @@ static void test_device_add_and_del(void) | ||||
|     const char *arch = qtest_get_arch(); | ||||
|     const char *machine_addition = ""; | ||||
|  | ||||
|     if (!has_device_builtin("virtio-blk")) { | ||||
|         g_test_skip("Device virtio-blk is not available"); | ||||
|         return; | ||||
|     } | ||||
|  | ||||
|     if (strcmp(arch, "i386") == 0 || strcmp(arch, "x86_64") == 0) { | ||||
|         machine_addition = "-machine pc"; | ||||
|     } | ||||
| @@ -330,6 +370,11 @@ static void test_device_add_and_del_q35(void) | ||||
| { | ||||
|     QTestState *qts; | ||||
|  | ||||
|     if (!has_device_builtin("virtio-blk")) { | ||||
|         g_test_skip("Device virtio-blk is not available"); | ||||
|         return; | ||||
|     } | ||||
|  | ||||
|     /* | ||||
|      * -drive/device_add and device_del.  Start with a drive used by a | ||||
|      * device that unplugs after reset. | ||||
| @@ -352,6 +397,11 @@ static void test_drive_add_device_add_and_del(void) | ||||
|     const char *arch = qtest_get_arch(); | ||||
|     const char *machine_addition = ""; | ||||
|  | ||||
|     if (!has_device_builtin("virtio-blk")) { | ||||
|         g_test_skip("Device virtio-blk is not available"); | ||||
|         return; | ||||
|     } | ||||
|  | ||||
|     if (strcmp(arch, "i386") == 0 || strcmp(arch, "x86_64") == 0) { | ||||
|         machine_addition = "-machine pc"; | ||||
|     } | ||||
| @@ -374,6 +424,11 @@ static void test_drive_add_device_add_and_del_q35(void) | ||||
| { | ||||
|     QTestState *qts; | ||||
|  | ||||
|     if (!has_device_builtin("virtio-blk")) { | ||||
|         g_test_skip("Device virtio-blk is not available"); | ||||
|         return; | ||||
|     } | ||||
|  | ||||
|     qts = qtest_init("-machine q35 -device pcie-root-port,id=p1 " | ||||
|                      "-device pcie-pci-bridge,bus=p1,id=b1"); | ||||
|  | ||||
| @@ -395,6 +450,11 @@ static void test_blockdev_add_device_add_and_del(void) | ||||
|     const char *arch = qtest_get_arch(); | ||||
|     const char *machine_addition = ""; | ||||
|  | ||||
|     if (!has_device_builtin("virtio-blk")) { | ||||
|         g_test_skip("Device virtio-blk is not available"); | ||||
|         return; | ||||
|     } | ||||
|  | ||||
|     if (strcmp(arch, "i386") == 0 || strcmp(arch, "x86_64") == 0) { | ||||
|         machine_addition = "-machine pc"; | ||||
|     } | ||||
| @@ -417,6 +477,11 @@ static void test_blockdev_add_device_add_and_del_q35(void) | ||||
| { | ||||
|     QTestState *qts; | ||||
|  | ||||
|     if (!has_device_builtin("virtio-blk")) { | ||||
|         g_test_skip("Device virtio-blk is not available"); | ||||
|         return; | ||||
|     } | ||||
|  | ||||
|     qts = qtest_init("-machine q35 -device pcie-root-port,id=p1 " | ||||
|                      "-device pcie-pci-bridge,bus=p1,id=b1"); | ||||
|  | ||||
|   | ||||
| @@ -112,6 +112,10 @@ static void test_lsi_do_dma_empty_queue(void) | ||||
|  | ||||
| int main(int argc, char **argv) | ||||
| { | ||||
|     if (!qtest_has_device("lsi53c895a")) { | ||||
|         return 0; | ||||
|     } | ||||
|  | ||||
|     g_test_init(&argc, &argv, NULL); | ||||
|  | ||||
|     qtest_add_func("fuzz/lsi53c895a/lsi_do_dma_empty_queue", | ||||
|   | ||||
| @@ -1090,30 +1090,42 @@ int main(int argc, char **argv) | ||||
|         qtest_add_func("hd-geo/override/ide", test_override_ide); | ||||
|         if (qtest_has_device("lsi53c895a")) { | ||||
|             qtest_add_func("hd-geo/override/scsi", test_override_scsi); | ||||
|             qtest_add_func("hd-geo/override/scsi_2_controllers", | ||||
|                            test_override_scsi_2_controllers); | ||||
|             if (qtest_has_device("virtio-scsi-pci")) { | ||||
|                 qtest_add_func("hd-geo/override/scsi_2_controllers", | ||||
|                                test_override_scsi_2_controllers); | ||||
|             } | ||||
|         } | ||||
|         qtest_add_func("hd-geo/override/virtio_blk", test_override_virtio_blk); | ||||
|         qtest_add_func("hd-geo/override/zero_chs", test_override_zero_chs); | ||||
|         qtest_add_func("hd-geo/override/scsi_hot_unplug", | ||||
|                        test_override_scsi_hot_unplug); | ||||
|         qtest_add_func("hd-geo/override/virtio_hot_unplug", | ||||
|                        test_override_virtio_hot_unplug); | ||||
|         if (qtest_has_device("virtio-scsi-pci")) { | ||||
|             qtest_add_func("hd-geo/override/scsi_hot_unplug", | ||||
|                            test_override_scsi_hot_unplug); | ||||
|         } | ||||
|         if (qtest_has_device("virtio-blk-pci")) { | ||||
|             qtest_add_func("hd-geo/override/virtio_hot_unplug", | ||||
|                            test_override_virtio_hot_unplug); | ||||
|             qtest_add_func("hd-geo/override/virtio_blk", | ||||
|                            test_override_virtio_blk); | ||||
|         } | ||||
|  | ||||
|         if (qtest_has_machine("q35")) { | ||||
|             qtest_add_func("hd-geo/override/sata", test_override_sata); | ||||
|             qtest_add_func("hd-geo/override/virtio_blk_q35", | ||||
|                            test_override_virtio_blk_q35); | ||||
|             qtest_add_func("hd-geo/override/zero_chs_q35", | ||||
|                            test_override_zero_chs_q35); | ||||
|             if (qtest_has_device("lsi53c895a")) { | ||||
|                 qtest_add_func("hd-geo/override/scsi_q35", | ||||
|                                test_override_scsi_q35); | ||||
|             } | ||||
|             qtest_add_func("hd-geo/override/scsi_hot_unplug_q35", | ||||
|                            test_override_scsi_hot_unplug_q35); | ||||
|             qtest_add_func("hd-geo/override/virtio_hot_unplug_q35", | ||||
|                            test_override_virtio_hot_unplug_q35); | ||||
|             if (qtest_has_device("virtio-scsi-pci")) { | ||||
|                 qtest_add_func("hd-geo/override/scsi_hot_unplug_q35", | ||||
|                                test_override_scsi_hot_unplug_q35); | ||||
|             } | ||||
|             if (qtest_has_device("virtio-blk-pci")) { | ||||
|                 qtest_add_func("hd-geo/override/virtio_hot_unplug_q35", | ||||
|                                test_override_virtio_hot_unplug_q35); | ||||
|                 qtest_add_func("hd-geo/override/virtio_blk_q35", | ||||
|                                test_override_virtio_blk_q35); | ||||
|             } | ||||
|  | ||||
|         } | ||||
|     } else { | ||||
|         g_test_message("QTEST_QEMU_IMG not set or qemu-img missing; " | ||||
|   | ||||
| @@ -73,11 +73,14 @@ qtests_i386 = \ | ||||
|   (config_all_devices.has_key('CONFIG_ESP_PCI') ? ['am53c974-test'] : []) +                 \ | ||||
|   (config_host.has_key('CONFIG_POSIX') and                                                  \ | ||||
|    config_all_devices.has_key('CONFIG_ACPI_ERST') ? ['erst-test'] : []) +                   \ | ||||
|   (config_all_devices.has_key('CONFIG_VIRTIO_NET') and                                      \ | ||||
|   (config_all_devices.has_key('CONFIG_PCIE_PORT') and                                       \ | ||||
|    config_all_devices.has_key('CONFIG_VIRTIO_NET') and                                      \ | ||||
|    config_all_devices.has_key('CONFIG_Q35') and                                             \ | ||||
|    config_all_devices.has_key('CONFIG_VIRTIO_PCI') and                                      \ | ||||
|    slirp.found() ? ['virtio-net-failover'] : []) +                                          \ | ||||
|   (unpack_edk2_blobs ? ['bios-tables-test'] : []) +                                         \ | ||||
|   (unpack_edk2_blobs and                                                                    \ | ||||
|    config_all_devices.has_key('CONFIG_HPET') and                                            \ | ||||
|    config_all_devices.has_key('CONFIG_PARALLEL') ? ['bios-tables-test'] : []) +             \ | ||||
|   qtests_pci +                                                                              \ | ||||
|   qtests_cxl +                                                                              \ | ||||
|   ['fdc-test', | ||||
| @@ -196,11 +199,11 @@ qtests_arm = \ | ||||
|   (config_all_devices.has_key('CONFIG_PFLASH_CFI02') ? ['pflash-cfi02-test'] : []) +         \ | ||||
|   (config_all_devices.has_key('CONFIG_ASPEED_SOC') ? qtests_aspeed : []) + \ | ||||
|   (config_all_devices.has_key('CONFIG_NPCM7XX') ? qtests_npcm7xx : []) + \ | ||||
|   (config_all_devices.has_key('CONFIG_GENERIC_LOADER') ? ['hexloader-test'] : []) + \ | ||||
|   ['arm-cpu-features', | ||||
|    'microbit-test', | ||||
|    'test-arm-mptimer', | ||||
|    'boot-serial-test', | ||||
|    'hexloader-test'] | ||||
|    'boot-serial-test'] | ||||
|  | ||||
| # TODO: once aarch64 TCG is fixed on ARM 32 bit host, make bios-tables-test unconditional | ||||
| qtests_aarch64 = \ | ||||
| @@ -254,10 +257,14 @@ qos_test_ss.add( | ||||
|   'virtio-net-test.c', | ||||
|   'virtio-rng-test.c', | ||||
|   'virtio-scsi-test.c', | ||||
|   'virtio-serial-test.c', | ||||
|   'virtio-iommu-test.c', | ||||
|   'vmxnet3-test.c', | ||||
| ) | ||||
|  | ||||
| if config_all_devices.has_key('CONFIG_VIRTIO_SERIAL') | ||||
|   qos_test_ss.add(files('virtio-serial-test.c')) | ||||
| endif | ||||
|  | ||||
| if config_host.has_key('CONFIG_POSIX') | ||||
|   qos_test_ss.add(files('e1000e-test.c')) | ||||
| endif | ||||
|   | ||||
| @@ -108,6 +108,10 @@ static void test_batch(const testdef_t *tests, bool ipv6) | ||||
|         const testdef_t *test = &tests[i]; | ||||
|         char *testname; | ||||
|  | ||||
|         if (!qtest_has_device(test->model)) { | ||||
|             continue; | ||||
|         } | ||||
|  | ||||
|         testname = g_strdup_printf("pxe/ipv4/%s/%s", | ||||
|                                    test->machine, test->model); | ||||
|         qtest_add_data_func(testname, test, test_pxe_ipv4); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user