qemu with hax to log dma reads & writes
jcs.org/2018/11/12/vfio
1# All QTests for now are POSIX-only, but the dependencies are
2# really in libqtest, not in the testcases themselves.
3
4check-qtest-generic-y += cdrom-test
5check-qtest-generic-y += device-introspect-test
6check-qtest-generic-y += machine-none-test
7check-qtest-generic-y += qmp-test
8check-qtest-generic-y += qmp-cmd-test
9check-qtest-generic-y += qom-test
10check-qtest-generic-$(CONFIG_MODULES) += modules-test
11check-qtest-generic-y += test-hmp
12
13check-qtest-pci-$(CONFIG_RTL8139_PCI) += rtl8139-test
14check-qtest-pci-$(CONFIG_VGA) += display-vga-test
15check-qtest-pci-$(CONFIG_HDA) += intel-hda-test
16check-qtest-pci-$(CONFIG_IVSHMEM_DEVICE) += ivshmem-test
17
18DBUS_DAEMON := $(shell which dbus-daemon 2>/dev/null)
19ifneq ($(GDBUS_CODEGEN),)
20ifneq ($(DBUS_DAEMON),)
21# Temporarily disabled due to Patchew failures:
22#check-qtest-pci-$(CONFIG_GIO) += dbus-vmstate-test
23endif
24endif
25
26check-qtest-i386-$(CONFIG_ISA_TESTDEV) = endianness-test
27check-qtest-i386-y += fdc-test
28check-qtest-i386-y += ide-test
29check-qtest-i386-$(CONFIG_TOOLS) += ahci-test
30check-qtest-i386-y += hd-geo-test
31check-qtest-i386-y += boot-order-test
32check-qtest-i386-y += bios-tables-test
33check-qtest-i386-$(CONFIG_SGA) += boot-serial-test
34check-qtest-i386-$(CONFIG_SLIRP) += pxe-test
35check-qtest-i386-y += rtc-test
36check-qtest-i386-$(CONFIG_ISA_IPMI_KCS) += ipmi-kcs-test
37ifdef CONFIG_LINUX
38check-qtest-i386-$(CONFIG_ISA_IPMI_BT) += ipmi-bt-test
39endif
40check-qtest-i386-y += i440fx-test
41check-qtest-i386-y += fw_cfg-test
42check-qtest-i386-y += device-plug-test
43check-qtest-i386-y += drive_del-test
44check-qtest-i386-$(CONFIG_WDT_IB700) += wdt_ib700-test
45check-qtest-i386-y += tco-test
46check-qtest-i386-y += $(check-qtest-pci-y)
47check-qtest-i386-$(CONFIG_PVPANIC) += pvpanic-test
48check-qtest-i386-$(CONFIG_I82801B11) += i82801b11-test
49check-qtest-i386-$(CONFIG_IOH3420) += ioh3420-test
50check-qtest-i386-$(CONFIG_USB_UHCI) += usb-hcd-uhci-test
51check-qtest-i386-$(call land,$(CONFIG_USB_EHCI),$(CONFIG_USB_UHCI)) += usb-hcd-ehci-test
52check-qtest-i386-$(CONFIG_USB_XHCI_NEC) += usb-hcd-xhci-test
53check-qtest-i386-y += cpu-plug-test
54check-qtest-i386-y += q35-test
55check-qtest-i386-y += vmgenid-test
56check-qtest-i386-$(CONFIG_TPM_CRB) += tpm-crb-swtpm-test
57check-qtest-i386-$(CONFIG_TPM_CRB) += tpm-crb-test
58check-qtest-i386-$(CONFIG_TPM_TIS_ISA) += tpm-tis-swtpm-test
59check-qtest-i386-$(CONFIG_TPM_TIS_ISA) += tpm-tis-test
60check-qtest-i386-$(CONFIG_SLIRP) += test-netfilter
61check-qtest-i386-$(CONFIG_POSIX) += test-filter-mirror
62check-qtest-i386-$(CONFIG_RTL8139_PCI) += test-filter-redirector
63check-qtest-i386-y += migration-test
64check-qtest-i386-y += test-x86-cpuid-compat
65check-qtest-i386-y += numa-test
66
67check-qtest-x86_64-y += $(check-qtest-i386-y)
68
69check-qtest-alpha-y += boot-serial-test
70check-qtest-alpha-$(CONFIG_VGA) += display-vga-test
71
72check-qtest-hppa-y += boot-serial-test
73check-qtest-hppa-$(CONFIG_VGA) += display-vga-test
74
75check-qtest-m68k-y = boot-serial-test
76
77check-qtest-microblaze-y += boot-serial-test
78
79check-qtest-mips-$(CONFIG_ISA_TESTDEV) = endianness-test
80check-qtest-mips-$(CONFIG_VGA) += display-vga-test
81
82check-qtest-mips64-$(CONFIG_ISA_TESTDEV) = endianness-test
83check-qtest-mips64-$(CONFIG_VGA) += display-vga-test
84
85check-qtest-mips64el-$(CONFIG_ISA_TESTDEV) = endianness-test
86check-qtest-mips64el-$(CONFIG_VGA) += display-vga-test
87
88check-qtest-moxie-y += boot-serial-test
89
90check-qtest-ppc-$(CONFIG_ISA_TESTDEV) = endianness-test
91check-qtest-ppc-y += boot-order-test
92check-qtest-ppc-y += prom-env-test
93check-qtest-ppc-y += drive_del-test
94check-qtest-ppc-y += boot-serial-test
95check-qtest-ppc-$(CONFIG_M48T59) += m48t59-test
96
97check-qtest-ppc64-y += $(check-qtest-ppc-y)
98check-qtest-ppc64-$(CONFIG_PSERIES) += device-plug-test
99check-qtest-ppc64-$(CONFIG_POWERNV) += pnv-xscom-test
100check-qtest-ppc64-y += migration-test
101check-qtest-ppc64-$(CONFIG_PSERIES) += rtas-test
102check-qtest-ppc64-$(CONFIG_SLIRP) += pxe-test
103check-qtest-ppc64-$(CONFIG_USB_UHCI) += usb-hcd-uhci-test
104check-qtest-ppc64-$(CONFIG_USB_XHCI_NEC) += usb-hcd-xhci-test
105check-qtest-ppc64-$(CONFIG_SLIRP) += test-netfilter
106check-qtest-ppc64-$(CONFIG_POSIX) += test-filter-mirror
107check-qtest-ppc64-$(CONFIG_RTL8139_PCI) += test-filter-redirector
108check-qtest-ppc64-$(CONFIG_VGA) += display-vga-test
109check-qtest-ppc64-y += numa-test
110check-qtest-ppc64-$(CONFIG_IVSHMEM_DEVICE) += ivshmem-test
111check-qtest-ppc64-y += cpu-plug-test
112
113check-qtest-sh4-$(CONFIG_ISA_TESTDEV) = endianness-test
114
115check-qtest-sh4eb-$(CONFIG_ISA_TESTDEV) = endianness-test
116
117check-qtest-sparc-y += prom-env-test
118check-qtest-sparc-y += m48t59-test
119check-qtest-sparc-y += boot-serial-test
120
121check-qtest-sparc64-$(CONFIG_ISA_TESTDEV) = endianness-test
122check-qtest-sparc64-y += prom-env-test
123check-qtest-sparc64-y += boot-serial-test
124
125check-qtest-arm-y += arm-cpu-features
126check-qtest-arm-y += microbit-test
127check-qtest-arm-y += m25p80-test
128check-qtest-arm-y += test-arm-mptimer
129check-qtest-arm-y += boot-serial-test
130check-qtest-arm-y += hexloader-test
131check-qtest-arm-$(CONFIG_PFLASH_CFI02) += pflash-cfi02-test
132
133check-qtest-aarch64-y += arm-cpu-features
134check-qtest-aarch64-$(CONFIG_TPM_TIS_SYSBUS) += tpm-tis-device-test
135check-qtest-aarch64-$(CONFIG_TPM_TIS_SYSBUS) += tpm-tis-device-swtpm-test
136check-qtest-aarch64-y += numa-test
137check-qtest-aarch64-y += boot-serial-test
138check-qtest-aarch64-y += migration-test
139
140# TODO: once aarch64 TCG is fixed on ARM 32 bit host, make test unconditional
141ifneq ($(ARCH),arm)
142check-qtest-aarch64-y += bios-tables-test
143endif
144
145check-qtest-microblazeel-y += $(check-qtest-microblaze-y)
146
147check-qtest-xtensaeb-y += $(check-qtest-xtensa-y)
148
149check-qtest-s390x-y = boot-serial-test
150check-qtest-s390x-$(CONFIG_SLIRP) += pxe-test
151check-qtest-s390x-$(CONFIG_SLIRP) += test-netfilter
152check-qtest-s390x-$(CONFIG_POSIX) += test-filter-mirror
153check-qtest-s390x-$(CONFIG_POSIX) += test-filter-redirector
154check-qtest-s390x-y += drive_del-test
155check-qtest-s390x-y += device-plug-test
156check-qtest-s390x-y += virtio-ccw-test
157check-qtest-s390x-y += cpu-plug-test
158check-qtest-s390x-y += migration-test
159
160# libqos / qgraph :
161libqgraph-obj-y = tests/qtest/libqos/qgraph.o
162
163libqos-core-obj-y = $(libqgraph-obj-y) tests/qtest/libqos/pci.o tests/qtest/libqos/fw_cfg.o
164libqos-core-obj-y += tests/qtest/libqos/malloc.o
165libqos-core-obj-y += tests/qtest/libqos/libqos.o
166libqos-spapr-obj-y = $(libqos-core-obj-y) tests/qtest/libqos/malloc-spapr.o
167libqos-spapr-obj-y += tests/qtest/libqos/libqos-spapr.o
168libqos-spapr-obj-y += tests/qtest/libqos/rtas.o
169libqos-spapr-obj-y += tests/qtest/libqos/pci-spapr.o
170libqos-pc-obj-y = $(libqos-core-obj-y) tests/qtest/libqos/pci-pc.o
171libqos-pc-obj-y += tests/qtest/libqos/malloc-pc.o tests/qtest/libqos/libqos-pc.o
172libqos-pc-obj-y += tests/qtest/libqos/ahci.o
173libqos-usb-obj-y = $(libqos-spapr-obj-y) $(libqos-pc-obj-y) tests/qtest/libqos/usb.o
174
175# qos devices:
176libqos-obj-y = $(libqgraph-obj-y)
177libqos-obj-y += $(libqos-pc-obj-y) $(libqos-spapr-obj-y)
178libqos-obj-y += tests/qtest/libqos/qos_external.o
179libqos-obj-y += tests/qtest/libqos/e1000e.o
180libqos-obj-y += tests/qtest/libqos/i2c.o
181libqos-obj-y += tests/qtest/libqos/i2c-imx.o
182libqos-obj-y += tests/qtest/libqos/i2c-omap.o
183libqos-obj-y += tests/qtest/libqos/sdhci.o
184libqos-obj-y += tests/qtest/libqos/tpci200.o
185libqos-obj-y += tests/qtest/libqos/virtio.o
186libqos-obj-$(CONFIG_VIRTFS) += tests/qtest/libqos/virtio-9p.o
187libqos-obj-y += tests/qtest/libqos/virtio-balloon.o
188libqos-obj-y += tests/qtest/libqos/virtio-blk.o
189libqos-obj-y += tests/qtest/libqos/virtio-mmio.o
190libqos-obj-y += tests/qtest/libqos/virtio-net.o
191libqos-obj-y += tests/qtest/libqos/virtio-pci.o
192libqos-obj-y += tests/qtest/libqos/virtio-pci-modern.o
193libqos-obj-y += tests/qtest/libqos/virtio-rng.o
194libqos-obj-y += tests/qtest/libqos/virtio-scsi.o
195libqos-obj-y += tests/qtest/libqos/virtio-serial.o
196
197# qos machines:
198libqos-obj-y += tests/qtest/libqos/aarch64-xlnx-zcu102-machine.o
199libqos-obj-y += tests/qtest/libqos/arm-imx25-pdk-machine.o
200libqos-obj-y += tests/qtest/libqos/arm-n800-machine.o
201libqos-obj-y += tests/qtest/libqos/arm-raspi2-machine.o
202libqos-obj-y += tests/qtest/libqos/arm-sabrelite-machine.o
203libqos-obj-y += tests/qtest/libqos/arm-smdkc210-machine.o
204libqos-obj-y += tests/qtest/libqos/arm-virt-machine.o
205libqos-obj-y += tests/qtest/libqos/arm-xilinx-zynq-a9-machine.o
206libqos-obj-y += tests/qtest/libqos/ppc64_pseries-machine.o
207libqos-obj-y += tests/qtest/libqos/x86_64_pc-machine.o
208
209# qos tests:
210qos-test-obj-y += tests/qtest/qos-test.o
211qos-test-obj-y += tests/qtest/ac97-test.o
212qos-test-obj-y += tests/qtest/ds1338-test.o
213qos-test-obj-y += tests/qtest/e1000-test.o
214qos-test-obj-y += tests/qtest/e1000e-test.o
215qos-test-obj-y += tests/qtest/eepro100-test.o
216qos-test-obj-y += tests/qtest/es1370-test.o
217qos-test-obj-y += tests/qtest/ipoctal232-test.o
218qos-test-obj-y += tests/qtest/megasas-test.o
219qos-test-obj-y += tests/qtest/ne2000-test.o
220qos-test-obj-y += tests/qtest/tulip-test.o
221qos-test-obj-y += tests/qtest/nvme-test.o
222qos-test-obj-y += tests/qtest/pca9552-test.o
223qos-test-obj-y += tests/qtest/pci-test.o
224qos-test-obj-y += tests/qtest/pcnet-test.o
225qos-test-obj-y += tests/qtest/sdhci-test.o
226qos-test-obj-y += tests/qtest/spapr-phb-test.o
227qos-test-obj-y += tests/qtest/tmp105-test.o
228qos-test-obj-y += tests/qtest/usb-hcd-ohci-test.o $(libqos-usb-obj-y)
229qos-test-obj-$(CONFIG_VHOST_NET_USER) += tests/qtest/vhost-user-test.o $(chardev-obj-y) $(test-io-obj-y)
230qos-test-obj-y += tests/qtest/virtio-test.o
231qos-test-obj-$(CONFIG_VIRTFS) += tests/qtest/virtio-9p-test.o
232qos-test-obj-y += tests/qtest/virtio-blk-test.o
233qos-test-obj-y += tests/qtest/virtio-net-test.o
234qos-test-obj-y += tests/qtest/virtio-rng-test.o
235qos-test-obj-y += tests/qtest/virtio-scsi-test.o
236qos-test-obj-y += tests/qtest/virtio-serial-test.o
237qos-test-obj-y += tests/qtest/vmxnet3-test.o
238
239check-unit-y += tests/test-qgraph$(EXESUF)
240tests/test-qgraph$(EXESUF): tests/test-qgraph.o $(libqgraph-obj-y)
241
242check-qtest-generic-y += qos-test
243tests/qtest/qos-test$(EXESUF): $(qos-test-obj-y) $(libqos-obj-y)
244
245# QTest dependencies:
246tests/qtest/qmp-test$(EXESUF): tests/qtest/qmp-test.o
247tests/qtest/qmp-cmd-test$(EXESUF): tests/qtest/qmp-cmd-test.o
248tests/qtest/device-introspect-test$(EXESUF): tests/qtest/device-introspect-test.o
249tests/qtest/rtc-test$(EXESUF): tests/qtest/rtc-test.o
250tests/qtest/m48t59-test$(EXESUF): tests/qtest/m48t59-test.o
251tests/qtest/hexloader-test$(EXESUF): tests/qtest/hexloader-test.o
252tests/qtest/pflash-cfi02$(EXESUF): tests/qtest/pflash-cfi02-test.o
253tests/qtest/endianness-test$(EXESUF): tests/qtest/endianness-test.o
254tests/qtest/prom-env-test$(EXESUF): tests/qtest/prom-env-test.o $(libqos-obj-y)
255tests/qtest/rtas-test$(EXESUF): tests/qtest/rtas-test.o $(libqos-spapr-obj-y)
256tests/qtest/fdc-test$(EXESUF): tests/qtest/fdc-test.o
257tests/qtest/ide-test$(EXESUF): tests/qtest/ide-test.o $(libqos-pc-obj-y)
258tests/qtest/ahci-test$(EXESUF): tests/qtest/ahci-test.o $(libqos-pc-obj-y) qemu-img$(EXESUF)
259tests/qtest/ipmi-kcs-test$(EXESUF): tests/qtest/ipmi-kcs-test.o
260tests/qtest/ipmi-bt-test$(EXESUF): tests/qtest/ipmi-bt-test.o
261tests/qtest/hd-geo-test$(EXESUF): tests/qtest/hd-geo-test.o $(libqos-obj-y)
262tests/qtest/boot-order-test$(EXESUF): tests/qtest/boot-order-test.o $(libqos-obj-y)
263tests/qtest/boot-serial-test$(EXESUF): tests/qtest/boot-serial-test.o $(libqos-obj-y)
264tests/qtest/bios-tables-test$(EXESUF): tests/qtest/bios-tables-test.o \
265 tests/qtest/tpm-emu.o $(test-io-obj-y) \
266 tests/qtest/boot-sector.o tests/qtest/acpi-utils.o $(libqos-obj-y)
267tests/qtest/pxe-test$(EXESUF): tests/qtest/pxe-test.o tests/qtest/boot-sector.o $(libqos-obj-y)
268tests/qtest/microbit-test$(EXESUF): tests/qtest/microbit-test.o
269tests/qtest/m25p80-test$(EXESUF): tests/qtest/m25p80-test.o
270tests/qtest/i440fx-test$(EXESUF): tests/qtest/i440fx-test.o $(libqos-pc-obj-y)
271tests/qtest/q35-test$(EXESUF): tests/qtest/q35-test.o $(libqos-pc-obj-y)
272tests/qtest/fw_cfg-test$(EXESUF): tests/qtest/fw_cfg-test.o $(libqos-pc-obj-y)
273tests/qtest/rtl8139-test$(EXESUF): tests/qtest/rtl8139-test.o $(libqos-pc-obj-y)
274tests/qtest/pnv-xscom-test$(EXESUF): tests/qtest/pnv-xscom-test.o
275tests/qtest/wdt_ib700-test$(EXESUF): tests/qtest/wdt_ib700-test.o
276tests/qtest/tco-test$(EXESUF): tests/qtest/tco-test.o $(libqos-pc-obj-y)
277tests/qtest/virtio-ccw-test$(EXESUF): tests/qtest/virtio-ccw-test.o
278tests/qtest/display-vga-test$(EXESUF): tests/qtest/display-vga-test.o
279tests/qtest/qom-test$(EXESUF): tests/qtest/qom-test.o
280tests/qtest/test-hmp$(EXESUF): tests/qtest/test-hmp.o
281tests/qtest/machine-none-test$(EXESUF): tests/qtest/machine-none-test.o
282tests/qtest/device-plug-test$(EXESUF): tests/qtest/device-plug-test.o
283tests/qtest/drive_del-test$(EXESUF): tests/qtest/drive_del-test.o
284tests/qtest/pvpanic-test$(EXESUF): tests/qtest/pvpanic-test.o
285tests/qtest/i82801b11-test$(EXESUF): tests/qtest/i82801b11-test.o
286tests/qtest/intel-hda-test$(EXESUF): tests/qtest/intel-hda-test.o
287tests/qtest/ioh3420-test$(EXESUF): tests/qtest/ioh3420-test.o
288tests/qtest/usb-hcd-uhci-test$(EXESUF): tests/qtest/usb-hcd-uhci-test.o $(libqos-usb-obj-y)
289tests/qtest/usb-hcd-ehci-test$(EXESUF): tests/qtest/usb-hcd-ehci-test.o $(libqos-usb-obj-y)
290tests/qtest/usb-hcd-xhci-test$(EXESUF): tests/qtest/usb-hcd-xhci-test.o $(libqos-usb-obj-y)
291tests/qtest/cpu-plug-test$(EXESUF): tests/qtest/cpu-plug-test.o
292tests/qtest/migration-test$(EXESUF): tests/qtest/migration-test.o tests/qtest/migration-helpers.o
293tests/qtest/test-netfilter$(EXESUF): tests/qtest/test-netfilter.o $(qtest-obj-y)
294tests/qtest/test-filter-mirror$(EXESUF): tests/qtest/test-filter-mirror.o $(qtest-obj-y)
295tests/qtest/test-filter-redirector$(EXESUF): tests/qtest/test-filter-redirector.o $(qtest-obj-y)
296tests/qtest/test-x86-cpuid-compat$(EXESUF): tests/qtest/test-x86-cpuid-compat.o $(qtest-obj-y)
297tests/qtest/ivshmem-test$(EXESUF): tests/qtest/ivshmem-test.o contrib/ivshmem-server/ivshmem-server.o $(libqos-pc-obj-y) $(libqos-spapr-obj-y)
298tests/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)
299tests/qtest/test-arm-mptimer$(EXESUF): tests/qtest/test-arm-mptimer.o
300tests/qtest/numa-test$(EXESUF): tests/qtest/numa-test.o
301tests/qtest/vmgenid-test$(EXESUF): tests/qtest/vmgenid-test.o tests/qtest/boot-sector.o tests/qtest/acpi-utils.o
302tests/qtest/cdrom-test$(EXESUF): tests/qtest/cdrom-test.o tests/qtest/boot-sector.o $(libqos-obj-y)
303tests/qtest/arm-cpu-features$(EXESUF): tests/qtest/arm-cpu-features.o
304tests/qtest/tpm-crb-swtpm-test$(EXESUF): tests/qtest/tpm-crb-swtpm-test.o tests/qtest/tpm-emu.o \
305 tests/qtest/tpm-util.o tests/qtest/tpm-tests.o $(test-io-obj-y)
306tests/qtest/tpm-crb-test$(EXESUF): tests/qtest/tpm-crb-test.o tests/qtest/tpm-emu.o $(test-io-obj-y)
307tests/qtest/tpm-tis-swtpm-test$(EXESUF): tests/qtest/tpm-tis-swtpm-test.o tests/qtest/tpm-emu.o \
308 tests/qtest/tpm-util.o tests/qtest/tpm-tests.o $(test-io-obj-y)
309tests/qtest/tpm-tis-device-swtpm-test$(EXESUF): tests/qtest/tpm-tis-device-swtpm-test.o tests/qtest/tpm-emu.o \
310 tests/qtest/tpm-util.o tests/qtest/tpm-tests.o $(test-io-obj-y)
311tests/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)
312tests/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)
313
314# QTest rules
315
316TARGETS=$(patsubst %-softmmu,%, $(filter %-softmmu,$(TARGET_DIRS)))
317QTEST_TARGETS =
318# The qtests are not runnable (yet) under TSan due to a known issue.
319# https://github.com/google/sanitizers/issues/1116
320ifndef CONFIG_TSAN
321ifeq ($(CONFIG_POSIX),y)
322QTEST_TARGETS = $(TARGETS)
323check-qtest-y=$(foreach TARGET,$(TARGETS), $(check-qtest-$(TARGET)-y:%=tests/qtest/%$(EXESUF)))
324check-qtest-y += $(check-qtest-generic-y:%=tests/qtest/%$(EXESUF))
325endif
326endif
327
328qtest-obj-y = tests/qtest/libqtest.o $(test-util-obj-y)
329$(check-qtest-y): $(qtest-obj-y)