# All QTests for now are POSIX-only, but the dependencies are # really in libqtest, not in the testcases themselves. check-qtest-generic-y += cdrom-test check-qtest-generic-y += device-introspect-test check-qtest-generic-y += machine-none-test check-qtest-generic-y += qmp-test check-qtest-generic-y += qmp-cmd-test check-qtest-generic-y += qom-test check-qtest-generic-$(CONFIG_MODULES) += modules-test check-qtest-generic-y += test-hmp check-qtest-pci-$(CONFIG_RTL8139_PCI) += rtl8139-test check-qtest-pci-$(CONFIG_VGA) += display-vga-test check-qtest-pci-$(CONFIG_HDA) += intel-hda-test check-qtest-pci-$(CONFIG_IVSHMEM_DEVICE) += ivshmem-test DBUS_DAEMON := $(shell which dbus-daemon 2>/dev/null) ifneq ($(GDBUS_CODEGEN),) ifneq ($(DBUS_DAEMON),) # Temporarily disabled due to Patchew failures: #check-qtest-pci-$(CONFIG_GIO) += dbus-vmstate-test endif endif check-qtest-i386-$(CONFIG_ISA_TESTDEV) = endianness-test check-qtest-i386-y += fdc-test check-qtest-i386-y += ide-test check-qtest-i386-$(CONFIG_TOOLS) += ahci-test check-qtest-i386-y += hd-geo-test check-qtest-i386-y += boot-order-test check-qtest-i386-y += bios-tables-test check-qtest-i386-$(CONFIG_SGA) += boot-serial-test check-qtest-i386-$(CONFIG_SLIRP) += pxe-test check-qtest-i386-y += rtc-test check-qtest-i386-$(CONFIG_ISA_IPMI_KCS) += ipmi-kcs-test ifdef CONFIG_LINUX check-qtest-i386-$(CONFIG_ISA_IPMI_BT) += ipmi-bt-test endif check-qtest-i386-y += i440fx-test check-qtest-i386-y += fw_cfg-test check-qtest-i386-y += device-plug-test check-qtest-i386-y += drive_del-test check-qtest-i386-$(CONFIG_WDT_IB700) += wdt_ib700-test check-qtest-i386-y += tco-test check-qtest-i386-y += $(check-qtest-pci-y) check-qtest-i386-$(CONFIG_PVPANIC) += pvpanic-test check-qtest-i386-$(CONFIG_I82801B11) += i82801b11-test check-qtest-i386-$(CONFIG_IOH3420) += ioh3420-test check-qtest-i386-$(CONFIG_USB_UHCI) += usb-hcd-uhci-test check-qtest-i386-$(call land,$(CONFIG_USB_EHCI),$(CONFIG_USB_UHCI)) += usb-hcd-ehci-test check-qtest-i386-$(CONFIG_USB_XHCI_NEC) += usb-hcd-xhci-test check-qtest-i386-y += cpu-plug-test check-qtest-i386-y += q35-test check-qtest-i386-y += vmgenid-test check-qtest-i386-$(CONFIG_TPM_CRB) += tpm-crb-swtpm-test check-qtest-i386-$(CONFIG_TPM_CRB) += tpm-crb-test check-qtest-i386-$(CONFIG_TPM_TIS_ISA) += tpm-tis-swtpm-test check-qtest-i386-$(CONFIG_TPM_TIS_ISA) += tpm-tis-test check-qtest-i386-$(CONFIG_SLIRP) += test-netfilter check-qtest-i386-$(CONFIG_POSIX) += test-filter-mirror check-qtest-i386-$(CONFIG_RTL8139_PCI) += test-filter-redirector check-qtest-i386-y += migration-test check-qtest-i386-y += test-x86-cpuid-compat check-qtest-i386-y += numa-test check-qtest-x86_64-y += $(check-qtest-i386-y) check-qtest-avr-y += boot-serial-test check-qtest-alpha-y += boot-serial-test check-qtest-alpha-$(CONFIG_VGA) += display-vga-test check-qtest-hppa-y += boot-serial-test check-qtest-hppa-$(CONFIG_VGA) += display-vga-test check-qtest-m68k-y = boot-serial-test check-qtest-microblaze-y += boot-serial-test check-qtest-mips-$(CONFIG_ISA_TESTDEV) = endianness-test check-qtest-mips-$(CONFIG_VGA) += display-vga-test check-qtest-mips64-$(CONFIG_ISA_TESTDEV) = endianness-test check-qtest-mips64-$(CONFIG_VGA) += display-vga-test check-qtest-mips64el-$(CONFIG_ISA_TESTDEV) = endianness-test check-qtest-mips64el-$(CONFIG_VGA) += display-vga-test check-qtest-moxie-y += boot-serial-test check-qtest-ppc-$(CONFIG_ISA_TESTDEV) = endianness-test check-qtest-ppc-y += boot-order-test check-qtest-ppc-y += prom-env-test check-qtest-ppc-y += drive_del-test check-qtest-ppc-y += boot-serial-test check-qtest-ppc-$(CONFIG_M48T59) += m48t59-test check-qtest-ppc64-y += $(check-qtest-ppc-y) check-qtest-ppc64-$(CONFIG_PSERIES) += device-plug-test check-qtest-ppc64-$(CONFIG_POWERNV) += pnv-xscom-test check-qtest-ppc64-y += migration-test check-qtest-ppc64-$(CONFIG_PSERIES) += rtas-test check-qtest-ppc64-$(CONFIG_SLIRP) += pxe-test check-qtest-ppc64-$(CONFIG_USB_UHCI) += usb-hcd-uhci-test check-qtest-ppc64-$(CONFIG_USB_XHCI_NEC) += usb-hcd-xhci-test check-qtest-ppc64-$(CONFIG_SLIRP) += test-netfilter check-qtest-ppc64-$(CONFIG_POSIX) += test-filter-mirror check-qtest-ppc64-$(CONFIG_RTL8139_PCI) += test-filter-redirector check-qtest-ppc64-$(CONFIG_VGA) += display-vga-test check-qtest-ppc64-y += numa-test check-qtest-ppc64-$(CONFIG_IVSHMEM_DEVICE) += ivshmem-test check-qtest-ppc64-y += cpu-plug-test check-qtest-sh4-$(CONFIG_ISA_TESTDEV) = endianness-test check-qtest-sh4eb-$(CONFIG_ISA_TESTDEV) = endianness-test check-qtest-sparc-y += prom-env-test check-qtest-sparc-y += m48t59-test check-qtest-sparc-y += boot-serial-test check-qtest-sparc64-$(CONFIG_ISA_TESTDEV) = endianness-test check-qtest-sparc64-y += prom-env-test check-qtest-sparc64-y += boot-serial-test check-qtest-arm-y += arm-cpu-features check-qtest-arm-y += microbit-test check-qtest-arm-y += m25p80-test check-qtest-arm-y += test-arm-mptimer check-qtest-arm-y += boot-serial-test check-qtest-arm-y += hexloader-test check-qtest-arm-$(CONFIG_PFLASH_CFI02) += pflash-cfi02-test check-qtest-aarch64-y += arm-cpu-features check-qtest-aarch64-$(CONFIG_TPM_TIS_SYSBUS) += tpm-tis-device-test check-qtest-aarch64-$(CONFIG_TPM_TIS_SYSBUS) += tpm-tis-device-swtpm-test check-qtest-aarch64-y += numa-test check-qtest-aarch64-y += boot-serial-test check-qtest-aarch64-y += migration-test # TODO: once aarch64 TCG is fixed on ARM 32 bit host, make test unconditional ifneq ($(ARCH),arm) check-qtest-aarch64-y += bios-tables-test endif check-qtest-microblazeel-y += $(check-qtest-microblaze-y) check-qtest-xtensaeb-y += $(check-qtest-xtensa-y) check-qtest-s390x-y = boot-serial-test check-qtest-s390x-$(CONFIG_SLIRP) += pxe-test check-qtest-s390x-$(CONFIG_SLIRP) += test-netfilter check-qtest-s390x-$(CONFIG_POSIX) += test-filter-mirror check-qtest-s390x-$(CONFIG_POSIX) += test-filter-redirector check-qtest-s390x-y += drive_del-test check-qtest-s390x-y += device-plug-test check-qtest-s390x-y += virtio-ccw-test check-qtest-s390x-y += cpu-plug-test check-qtest-s390x-y += migration-test # libqos / qgraph : libqgraph-obj-y = tests/qtest/libqos/qgraph.o libqos-core-obj-y = $(libqgraph-obj-y) tests/qtest/libqos/pci.o tests/qtest/libqos/fw_cfg.o libqos-core-obj-y += tests/qtest/libqos/malloc.o libqos-core-obj-y += tests/qtest/libqos/libqos.o libqos-spapr-obj-y = $(libqos-core-obj-y) tests/qtest/libqos/malloc-spapr.o libqos-spapr-obj-y += tests/qtest/libqos/libqos-spapr.o libqos-spapr-obj-y += tests/qtest/libqos/rtas.o libqos-spapr-obj-y += tests/qtest/libqos/pci-spapr.o libqos-pc-obj-y = $(libqos-core-obj-y) tests/qtest/libqos/pci-pc.o libqos-pc-obj-y += tests/qtest/libqos/malloc-pc.o tests/qtest/libqos/libqos-pc.o libqos-pc-obj-y += tests/qtest/libqos/ahci.o libqos-usb-obj-y = $(libqos-spapr-obj-y) $(libqos-pc-obj-y) tests/qtest/libqos/usb.o # qos devices: libqos-obj-y = $(libqgraph-obj-y) libqos-obj-y += $(libqos-pc-obj-y) $(libqos-spapr-obj-y) libqos-obj-y += tests/qtest/libqos/qos_external.o libqos-obj-y += tests/qtest/libqos/e1000e.o libqos-obj-y += tests/qtest/libqos/i2c.o libqos-obj-y += tests/qtest/libqos/i2c-imx.o libqos-obj-y += tests/qtest/libqos/i2c-omap.o libqos-obj-y += tests/qtest/libqos/sdhci.o libqos-obj-y += tests/qtest/libqos/tpci200.o libqos-obj-y += tests/qtest/libqos/virtio.o libqos-obj-$(CONFIG_VIRTFS) += tests/qtest/libqos/virtio-9p.o libqos-obj-y += tests/qtest/libqos/virtio-balloon.o libqos-obj-y += tests/qtest/libqos/virtio-blk.o libqos-obj-y += tests/qtest/libqos/virtio-mmio.o libqos-obj-y += tests/qtest/libqos/virtio-net.o libqos-obj-y += tests/qtest/libqos/virtio-pci.o libqos-obj-y += tests/qtest/libqos/virtio-pci-modern.o libqos-obj-y += tests/qtest/libqos/virtio-rng.o libqos-obj-y += tests/qtest/libqos/virtio-scsi.o libqos-obj-y += tests/qtest/libqos/virtio-serial.o # qos machines: libqos-obj-y += tests/qtest/libqos/aarch64-xlnx-zcu102-machine.o libqos-obj-y += tests/qtest/libqos/arm-imx25-pdk-machine.o libqos-obj-y += tests/qtest/libqos/arm-n800-machine.o libqos-obj-y += tests/qtest/libqos/arm-raspi2-machine.o libqos-obj-y += tests/qtest/libqos/arm-sabrelite-machine.o libqos-obj-y += tests/qtest/libqos/arm-smdkc210-machine.o libqos-obj-y += tests/qtest/libqos/arm-virt-machine.o libqos-obj-y += tests/qtest/libqos/arm-xilinx-zynq-a9-machine.o libqos-obj-y += tests/qtest/libqos/ppc64_pseries-machine.o libqos-obj-y += tests/qtest/libqos/x86_64_pc-machine.o # qos tests: qos-test-obj-y += tests/qtest/qos-test.o qos-test-obj-y += tests/qtest/ac97-test.o qos-test-obj-y += tests/qtest/ds1338-test.o qos-test-obj-y += tests/qtest/e1000-test.o qos-test-obj-y += tests/qtest/e1000e-test.o qos-test-obj-y += tests/qtest/eepro100-test.o qos-test-obj-y += tests/qtest/es1370-test.o qos-test-obj-y += tests/qtest/ipoctal232-test.o qos-test-obj-y += tests/qtest/megasas-test.o qos-test-obj-y += tests/qtest/ne2000-test.o qos-test-obj-y += tests/qtest/tulip-test.o qos-test-obj-y += tests/qtest/nvme-test.o qos-test-obj-y += tests/qtest/pca9552-test.o qos-test-obj-y += tests/qtest/pci-test.o qos-test-obj-y += tests/qtest/pcnet-test.o qos-test-obj-y += tests/qtest/sdhci-test.o qos-test-obj-y += tests/qtest/spapr-phb-test.o qos-test-obj-y += tests/qtest/tmp105-test.o qos-test-obj-y += tests/qtest/usb-hcd-ohci-test.o $(libqos-usb-obj-y) qos-test-obj-$(CONFIG_VHOST_NET_USER) += tests/qtest/vhost-user-test.o $(chardev-obj-y) $(test-io-obj-y) qos-test-obj-y += tests/qtest/virtio-test.o qos-test-obj-$(CONFIG_VIRTFS) += tests/qtest/virtio-9p-test.o qos-test-obj-y += tests/qtest/virtio-blk-test.o qos-test-obj-y += tests/qtest/virtio-net-test.o qos-test-obj-y += tests/qtest/virtio-rng-test.o qos-test-obj-y += tests/qtest/virtio-scsi-test.o qos-test-obj-y += tests/qtest/virtio-serial-test.o qos-test-obj-y += tests/qtest/vmxnet3-test.o check-unit-y += tests/test-qgraph$(EXESUF) tests/test-qgraph$(EXESUF): tests/test-qgraph.o $(libqgraph-obj-y) check-qtest-generic-y += qos-test tests/qtest/qos-test$(EXESUF): $(qos-test-obj-y) $(libqos-obj-y) # QTest dependencies: tests/qtest/qmp-test$(EXESUF): tests/qtest/qmp-test.o tests/qtest/qmp-cmd-test$(EXESUF): tests/qtest/qmp-cmd-test.o tests/qtest/device-introspect-test$(EXESUF): tests/qtest/device-introspect-test.o tests/qtest/rtc-test$(EXESUF): tests/qtest/rtc-test.o tests/qtest/m48t59-test$(EXESUF): tests/qtest/m48t59-test.o tests/qtest/hexloader-test$(EXESUF): tests/qtest/hexloader-test.o tests/qtest/pflash-cfi02$(EXESUF): tests/qtest/pflash-cfi02-test.o tests/qtest/endianness-test$(EXESUF): tests/qtest/endianness-test.o tests/qtest/prom-env-test$(EXESUF): tests/qtest/prom-env-test.o $(libqos-obj-y) tests/qtest/rtas-test$(EXESUF): tests/qtest/rtas-test.o $(libqos-spapr-obj-y) tests/qtest/fdc-test$(EXESUF): tests/qtest/fdc-test.o tests/qtest/ide-test$(EXESUF): tests/qtest/ide-test.o $(libqos-pc-obj-y) tests/qtest/ahci-test$(EXESUF): tests/qtest/ahci-test.o $(libqos-pc-obj-y) qemu-img$(EXESUF) tests/qtest/ipmi-kcs-test$(EXESUF): tests/qtest/ipmi-kcs-test.o tests/qtest/ipmi-bt-test$(EXESUF): tests/qtest/ipmi-bt-test.o tests/qtest/hd-geo-test$(EXESUF): tests/qtest/hd-geo-test.o $(libqos-obj-y) tests/qtest/boot-order-test$(EXESUF): tests/qtest/boot-order-test.o $(libqos-obj-y) tests/qtest/boot-serial-test$(EXESUF): tests/qtest/boot-serial-test.o $(libqos-obj-y) tests/qtest/bios-tables-test$(EXESUF): tests/qtest/bios-tables-test.o \ tests/qtest/tpm-emu.o $(test-io-obj-y) \ tests/qtest/boot-sector.o tests/qtest/acpi-utils.o $(libqos-obj-y) tests/qtest/pxe-test$(EXESUF): tests/qtest/pxe-test.o tests/qtest/boot-sector.o $(libqos-obj-y) tests/qtest/microbit-test$(EXESUF): tests/qtest/microbit-test.o tests/qtest/m25p80-test$(EXESUF): tests/qtest/m25p80-test.o tests/qtest/i440fx-test$(EXESUF): tests/qtest/i440fx-test.o $(libqos-pc-obj-y) tests/qtest/q35-test$(EXESUF): tests/qtest/q35-test.o $(libqos-pc-obj-y) tests/qtest/fw_cfg-test$(EXESUF): tests/qtest/fw_cfg-test.o $(libqos-pc-obj-y) tests/qtest/rtl8139-test$(EXESUF): tests/qtest/rtl8139-test.o $(libqos-pc-obj-y) tests/qtest/pnv-xscom-test$(EXESUF): tests/qtest/pnv-xscom-test.o tests/qtest/wdt_ib700-test$(EXESUF): tests/qtest/wdt_ib700-test.o tests/qtest/tco-test$(EXESUF): tests/qtest/tco-test.o $(libqos-pc-obj-y) tests/qtest/virtio-ccw-test$(EXESUF): tests/qtest/virtio-ccw-test.o tests/qtest/display-vga-test$(EXESUF): tests/qtest/display-vga-test.o tests/qtest/qom-test$(EXESUF): tests/qtest/qom-test.o tests/qtest/modules-test$(EXESUF): tests/qtest/modules-test.o tests/qtest/test-hmp$(EXESUF): tests/qtest/test-hmp.o tests/qtest/machine-none-test$(EXESUF): tests/qtest/machine-none-test.o tests/qtest/device-plug-test$(EXESUF): tests/qtest/device-plug-test.o tests/qtest/drive_del-test$(EXESUF): tests/qtest/drive_del-test.o tests/qtest/pvpanic-test$(EXESUF): tests/qtest/pvpanic-test.o tests/qtest/i82801b11-test$(EXESUF): tests/qtest/i82801b11-test.o tests/qtest/intel-hda-test$(EXESUF): tests/qtest/intel-hda-test.o tests/qtest/ioh3420-test$(EXESUF): tests/qtest/ioh3420-test.o tests/qtest/usb-hcd-uhci-test$(EXESUF): tests/qtest/usb-hcd-uhci-test.o $(libqos-usb-obj-y) tests/qtest/usb-hcd-ehci-test$(EXESUF): tests/qtest/usb-hcd-ehci-test.o $(libqos-usb-obj-y) tests/qtest/usb-hcd-xhci-test$(EXESUF): tests/qtest/usb-hcd-xhci-test.o $(libqos-usb-obj-y) tests/qtest/cpu-plug-test$(EXESUF): tests/qtest/cpu-plug-test.o tests/qtest/migration-test$(EXESUF): tests/qtest/migration-test.o tests/qtest/migration-helpers.o tests/qtest/test-netfilter$(EXESUF): tests/qtest/test-netfilter.o $(qtest-obj-y) tests/qtest/test-filter-mirror$(EXESUF): tests/qtest/test-filter-mirror.o $(qtest-obj-y) tests/qtest/test-filter-redirector$(EXESUF): tests/qtest/test-filter-redirector.o $(qtest-obj-y) tests/qtest/test-x86-cpuid-compat$(EXESUF): tests/qtest/test-x86-cpuid-compat.o $(qtest-obj-y) tests/qtest/ivshmem-test$(EXESUF): tests/qtest/ivshmem-test.o contrib/ivshmem-server/ivshmem-server.o $(libqos-pc-obj-y) $(libqos-spapr-obj-y) tests/qtest/dbus-vmstate-test$(EXESUF): tests/qtest/dbus-vmstate-test.o tests/qtest/migration-helpers.o tests/qtest/dbus-vmstate1.o $(libqos-pc-obj-y) $(libqos-spapr-obj-y) tests/qtest/test-arm-mptimer$(EXESUF): tests/qtest/test-arm-mptimer.o tests/qtest/numa-test$(EXESUF): tests/qtest/numa-test.o tests/qtest/vmgenid-test$(EXESUF): tests/qtest/vmgenid-test.o tests/qtest/boot-sector.o tests/qtest/acpi-utils.o tests/qtest/cdrom-test$(EXESUF): tests/qtest/cdrom-test.o tests/qtest/boot-sector.o $(libqos-obj-y) tests/qtest/arm-cpu-features$(EXESUF): tests/qtest/arm-cpu-features.o tests/qtest/tpm-crb-swtpm-test$(EXESUF): tests/qtest/tpm-crb-swtpm-test.o tests/qtest/tpm-emu.o \ tests/qtest/tpm-util.o tests/qtest/tpm-tests.o $(test-io-obj-y) tests/qtest/tpm-crb-test$(EXESUF): tests/qtest/tpm-crb-test.o tests/qtest/tpm-emu.o $(test-io-obj-y) tests/qtest/tpm-tis-swtpm-test$(EXESUF): tests/qtest/tpm-tis-swtpm-test.o tests/qtest/tpm-emu.o \ tests/qtest/tpm-util.o tests/qtest/tpm-tests.o $(test-io-obj-y) tests/qtest/tpm-tis-device-swtpm-test$(EXESUF): tests/qtest/tpm-tis-device-swtpm-test.o tests/qtest/tpm-emu.o \ tests/qtest/tpm-util.o tests/qtest/tpm-tests.o $(test-io-obj-y) tests/qtest/tpm-tis-test$(EXESUF): tests/qtest/tpm-tis-test.o tests/qtest/tpm-tis-util.o tests/qtest/tpm-emu.o $(test-io-obj-y) tests/qtest/tpm-tis-device-test$(EXESUF): tests/qtest/tpm-tis-device-test.o tests/qtest/tpm-tis-util.o tests/qtest/tpm-emu.o $(test-io-obj-y) # QTest rules TARGETS=$(patsubst %-softmmu,%, $(filter %-softmmu,$(TARGET_DIRS))) QTEST_TARGETS = # The qtests are not runnable (yet) under TSan due to a known issue. # https://github.com/google/sanitizers/issues/1116 ifndef CONFIG_TSAN ifeq ($(CONFIG_POSIX),y) QTEST_TARGETS = $(TARGETS) check-qtest-y=$(foreach TARGET,$(TARGETS), $(check-qtest-$(TARGET)-y:%=tests/qtest/%$(EXESUF))) check-qtest-y += $(check-qtest-generic-y:%=tests/qtest/%$(EXESUF)) endif endif qtest-obj-y = tests/qtest/libqtest.o $(test-util-obj-y) $(check-qtest-y): $(qtest-obj-y)