Makefile.include 50.4 KB
Newer Older
1 2 3 4 5

.PHONY: check-help
check-help:
	@echo "Regression testing targets:"
	@echo
6 7
	@echo " $(MAKE) check                Run unit, qapi-schema, qtest and decodetree"
	@echo
8 9 10 11 12 13
	@echo " $(MAKE) check-qtest-TARGET   Run qtest tests for given target"
	@echo " $(MAKE) check-qtest          Run qtest tests"
	@echo " $(MAKE) check-unit           Run qobject tests"
	@echo " $(MAKE) check-speed          Run qobject speed tests"
	@echo " $(MAKE) check-qapi-schema    Run QAPI schema tests"
	@echo " $(MAKE) check-block          Run block tests"
14
	@echo " $(MAKE) check-tcg            Run TCG tests"
15
	@echo " $(MAKE) check-softfloat      Run FPU emulation tests"
16
	@echo " $(MAKE) check-acceptance     Run all acceptance (functional) tests"
17
	@echo
18
	@echo " $(MAKE) check-report.html    Generates an HTML test report"
C
Cleber Rosa 已提交
19
	@echo " $(MAKE) check-venv           Creates a Python venv for tests"
20
	@echo " $(MAKE) check-clean          Clean the tests and related data"
21 22
	@echo
	@echo "Please note that HTML reports do not regenerate if the unit tests"
23
	@echo "have not changed."
24 25
	@echo
	@echo "The variable SPEED can be set to control the gtester speed setting."
26
	@echo "Default options are -k and (for $(MAKE) V=1) --verbose; they can be"
27 28 29
	@echo "changed with variable GTESTER_OPTIONS."

ifneq ($(wildcard config-host.mak),)
K
Kevin Wolf 已提交
30 31
export SRC_PATH

32 33 34 35 36 37 38 39 40
# TODO don't duplicate $(SRC_PATH)/Makefile's qapi-py here
qapi-py = $(SRC_PATH)/scripts/qapi/commands.py \
$(SRC_PATH)/scripts/qapi/events.py \
$(SRC_PATH)/scripts/qapi/introspect.py \
$(SRC_PATH)/scripts/qapi/types.py \
$(SRC_PATH)/scripts/qapi/visit.py \
$(SRC_PATH)/scripts/qapi/common.py \
$(SRC_PATH)/scripts/qapi/doc.py \
$(SRC_PATH)/scripts/qapi-gen.py
41

42 43 44 45
# Get the list of all supported sysemu targets
SYSEMU_TARGET_LIST := $(subst -softmmu.mak,,$(notdir \
   $(wildcard $(SRC_PATH)/default-configs/*-softmmu.mak)))

46
check-unit-y += tests/check-qdict$(EXESUF)
47
check-unit-y += tests/check-block-qdict$(EXESUF)
48
check-unit-y += tests/test-char$(EXESUF)
49
check-unit-y += tests/check-qnum$(EXESUF)
P
Paolo Bonzini 已提交
50 51
check-unit-y += tests/check-qstring$(EXESUF)
check-unit-y += tests/check-qlist$(EXESUF)
E
Eric Blake 已提交
52
check-unit-y += tests/check-qnull$(EXESUF)
53
check-unit-y += tests/check-qobject$(EXESUF)
P
Paolo Bonzini 已提交
54
check-unit-y += tests/check-qjson$(EXESUF)
55
check-unit-y += tests/check-qlit$(EXESUF)
56
check-unit-y += tests/test-qobject-output-visitor$(EXESUF)
E
Eric Blake 已提交
57
check-unit-y += tests/test-clone-visitor$(EXESUF)
58
check-unit-y += tests/test-qobject-input-visitor$(EXESUF)
59
check-unit-y += tests/test-qmp-cmds$(EXESUF)
P
Paolo Bonzini 已提交
60 61
check-unit-y += tests/test-string-input-visitor$(EXESUF)
check-unit-y += tests/test-string-output-visitor$(EXESUF)
62
check-unit-y += tests/test-qmp-event$(EXESUF)
63
check-unit-y += tests/test-opts-visitor$(EXESUF)
P
Paolo Bonzini 已提交
64
check-unit-y += tests/test-coroutine$(EXESUF)
65
check-unit-y += tests/test-visitor-serialization$(EXESUF)
M
Michael Tokarev 已提交
66
check-unit-y += tests/test-iov$(EXESUF)
P
Paolo Bonzini 已提交
67
check-unit-y += tests/test-aio$(EXESUF)
68
check-unit-y += tests/test-aio-multithread$(EXESUF)
B
Benoît Canet 已提交
69
check-unit-y += tests/test-throttle$(EXESUF)
P
Paolo Bonzini 已提交
70
check-unit-y += tests/test-thread-pool$(EXESUF)
71
check-unit-y += tests/test-hbitmap$(EXESUF)
72
check-unit-y += tests/test-bdrv-drain$(EXESUF)
A
Alberto Garcia 已提交
73
check-unit-y += tests/test-blockjob$(EXESUF)
S
Stefan Hajnoczi 已提交
74
check-unit-y += tests/test-blockjob-txn$(EXESUF)
75
check-unit-y += tests/test-block-backend$(EXESUF)
76
check-unit-y += tests/test-block-iothread$(EXESUF)
77
check-unit-y += tests/test-image-locking$(EXESUF)
78 79
check-unit-y += tests/test-x86-cpuid$(EXESUF)
# all code tested by test-x86-cpuid is inside topology.h
80
ifeq ($(CONFIG_SOFTMMU),y)
O
Orit Wasserman 已提交
81
check-unit-y += tests/test-xbzrle$(EXESUF)
82 83
check-unit-$(CONFIG_POSIX) += tests/test-vmstate$(EXESUF)
endif
84
check-unit-y += tests/test-cutils$(EXESUF)
85
check-unit-y += tests/test-shift128$(EXESUF)
86
check-unit-y += tests/test-mul64$(EXESUF)
87 88
check-unit-y += tests/test-int128$(EXESUF)
# all code tested by test-int128 is inside int128.h
P
Paolo Bonzini 已提交
89
check-unit-y += tests/rcutorture$(EXESUF)
M
Mike Day 已提交
90
check-unit-y += tests/test-rcu-list$(EXESUF)
E
Emilio G. Cota 已提交
91
check-unit-y += tests/test-rcu-simpleq$(EXESUF)
E
Emilio G. Cota 已提交
92
check-unit-y += tests/test-rcu-tailq$(EXESUF)
E
Emilio G. Cota 已提交
93
check-unit-y += tests/test-qdist$(EXESUF)
E
Emilio G. Cota 已提交
94
check-unit-y += tests/test-qht$(EXESUF)
95
check-unit-y += tests/test-qht-par$(EXESUF)
96
check-unit-y += tests/test-bitops$(EXESUF)
A
Alex Bennée 已提交
97
check-unit-y += tests/test-bitcnt$(EXESUF)
98
check-unit-y += tests/test-qdev-global-props$(EXESUF)
I
Igor Mammedov 已提交
99
check-unit-y += tests/check-qom-interface$(EXESUF)
100
check-unit-y += tests/check-qom-proplist$(EXESUF)
L
Leandro Dorileo 已提交
101
check-unit-y += tests/test-qemu-opts$(EXESUF)
M
Markus Armbruster 已提交
102
check-unit-y += tests/test-keyval$(EXESUF)
103
check-unit-y += tests/test-write-threshold$(EXESUF)
104
check-unit-y += tests/test-crypto-hash$(EXESUF)
105
check-speed-y += tests/benchmark-crypto-hash$(EXESUF)
106
check-unit-y += tests/test-crypto-hmac$(EXESUF)
107
check-speed-y += tests/benchmark-crypto-hmac$(EXESUF)
108
check-unit-y += tests/test-crypto-cipher$(EXESUF)
109
check-speed-y += tests/benchmark-crypto-cipher$(EXESUF)
110
check-unit-y += tests/test-crypto-secret$(EXESUF)
111
check-unit-$(CONFIG_GNUTLS) += tests/test-crypto-tlscredsx509$(EXESUF)
112
check-unit-$(CONFIG_GNUTLS) += tests/test-crypto-tlssession$(EXESUF)
113
ifneq (,$(findstring qemu-ga,$(TOOLS)))
114
check-unit-$(land,$(CONFIG_LINUX),$(CONFIG_VIRTIO_SERIAL)) += tests/test-qga$(EXESUF)
115
endif
116
check-unit-y += tests/test-timed-average$(EXESUF)
117
check-unit-y += tests/test-util-sockets$(EXESUF)
118
check-unit-y += tests/test-io-task$(EXESUF)
119
check-unit-y += tests/test-io-channel-socket$(EXESUF)
D
Daniel P. Berrange 已提交
120
check-unit-y += tests/test-io-channel-file$(EXESUF)
D
Daniel P. Berrange 已提交
121
check-unit-$(CONFIG_GNUTLS) += tests/test-io-channel-tls$(EXESUF)
122
check-unit-y += tests/test-io-channel-command$(EXESUF)
123
check-unit-y += tests/test-io-channel-buffer$(EXESUF)
124
check-unit-y += tests/test-base64$(EXESUF)
125
check-unit-$(if $(CONFIG_NETTLE),y,$(CONFIG_GCRYPT)) += tests/test-crypto-pbkdf$(EXESUF)
126
check-unit-y += tests/test-crypto-ivgen$(EXESUF)
127
check-unit-y += tests/test-crypto-afsplit$(EXESUF)
128
check-unit-y += tests/test-crypto-xts$(EXESUF)
129
check-unit-y += tests/test-crypto-block$(EXESUF)
130
check-unit-y += tests/test-logging$(EXESUF)
131
check-unit-$(CONFIG_REPLICATION) += tests/test-replication$(EXESUF)
132
check-unit-y += tests/test-bufferiszero$(EXESUF)
F
Fam Zheng 已提交
133
check-unit-y += tests/test-uuid$(EXESUF)
P
Paolo Bonzini 已提交
134
check-unit-y += tests/ptimer-test$(EXESUF)
135
check-unit-y += tests/test-qapi-util$(EXESUF)
P
Paolo Bonzini 已提交
136 137 138

check-block-$(CONFIG_POSIX) += tests/qemu-iotests-quick.sh

A
Anthony Liguori 已提交
139 140
# All QTests for now are POSIX-only, but the dependencies are
# really in libqtest, not in the testcases themselves.
A
Andreas Färber 已提交
141

142
check-qtest-generic-y += tests/qmp-test$(EXESUF)
143 144
check-qtest-generic-y += tests/qmp-cmd-test$(EXESUF)

145
check-qtest-generic-y += tests/device-introspect-test$(EXESUF)
146
check-qtest-generic-y += tests/cdrom-test$(EXESUF)
M
Markus Armbruster 已提交
147

A
Andreas Färber 已提交
148 149
check-qtest-ipack-y += tests/ipoctal232-test$(EXESUF)

150
check-qtest-virtioserial-$(CONFIG_VIRTIO_SERIAL) += tests/virtio-console-test$(EXESUF)
151

152
check-qtest-virtio-$(CONFIG_VIRTIO_NET) += tests/virtio-net-test$(EXESUF)
153
check-qtest-virtio-$(CONFIG_VIRTIO_BALLOON) += tests/virtio-balloon-test$(EXESUF)
154
check-qtest-virtio-$(CONFIG_VIRTIO_BLK) += tests/virtio-blk-test$(EXESUF)
155
check-qtest-virtio-$(CONFIG_VIRTIO_RNG) += tests/virtio-rng-test$(EXESUF)
156
check-qtest-virtio-$(CONFIG_VIRTIO_SCSI) += tests/virtio-scsi-test$(EXESUF)
A
Andreas Färber 已提交
157
ifeq ($(CONFIG_VIRTIO)$(CONFIG_VIRTFS)$(CONFIG_PCI),yyy)
158
check-qtest-virtio-$(CONFIG_VIRTIO_9P) += tests/virtio-9p-test$(EXESUF)
A
Andreas Färber 已提交
159
endif
160
check-qtest-virtio-$(CONFIG_VIRTIO_SERIAL) += tests/virtio-serial-test$(EXESUF)
161
check-qtest-virtio-y += $(check-qtest-virtioserial-y)
A
Andreas Färber 已提交
162

A
Andreas Färber 已提交
163
check-qtest-pci-y += tests/e1000-test$(EXESUF)
164
check-qtest-pci-y += tests/e1000e-test$(EXESUF)
165
check-qtest-pci-$(CONFIG_RTL8139_PCI) += tests/rtl8139-test$(EXESUF)
166
check-qtest-pci-$(CONFIG_PCNET_PCI) += tests/pcnet-test$(EXESUF)
167
check-qtest-pci-$(CONFIG_EEPRO100_PCI) += tests/eepro100-test$(EXESUF)
168
check-qtest-pci-$(CONFIG_NE2000_PCI) += tests/ne2000-test$(EXESUF)
169
check-qtest-pci-$(CONFIG_NVME_PCI) += tests/nvme-test$(EXESUF)
170
check-qtest-pci-$(CONFIG_AC97) += tests/ac97-test$(EXESUF)
171
check-qtest-pci-$(CONFIG_ES1370) += tests/es1370-test$(EXESUF)
172
check-qtest-pci-$(CONFIG_VIRTIO) += $(check-qtest-virtio-y)
173 174
check-qtest-pci-$(CONFIG_IPACK) += tests/tpci200-test$(EXESUF)
check-qtest-pci-$(CONFIG_IPACK) += $(check-qtest-ipack-y)
175
check-qtest-pci-$(CONFIG_VGA) += tests/display-vga-test$(EXESUF)
176
check-qtest-pci-$(CONFIG_HDA) += tests/intel-hda-test$(EXESUF)
177
check-qtest-pci-$(CONFIG_IVSHMEM_DEVICE) += tests/ivshmem-test$(EXESUF)
178
check-qtest-pci-$(CONFIG_MEGASAS_SCSI_PCI) += tests/megasas-test$(EXESUF)
A
Andreas Färber 已提交
179

180
check-qtest-i386-$(CONFIG_ISA_TESTDEV) = tests/endianness-test$(EXESUF)
181
check-qtest-i386-y += tests/fdc-test$(EXESUF)
K
Kevin Wolf 已提交
182
check-qtest-i386-y += tests/ide-test$(EXESUF)
183
check-qtest-i386-y += tests/ahci-test$(EXESUF)
184
check-qtest-i386-y += tests/hd-geo-test$(EXESUF)
185
check-qtest-i386-y += tests/boot-order-test$(EXESUF)
186
check-qtest-i386-y += tests/bios-tables-test$(EXESUF)
187
check-qtest-i386-$(CONFIG_SGA) += tests/boot-serial-test$(EXESUF)
188
check-qtest-i386-$(CONFIG_SLIRP) += tests/pxe-test$(EXESUF)
189
check-qtest-i386-y += tests/rtc-test$(EXESUF)
190
check-qtest-i386-$(CONFIG_ISA_IPMI_KCS) += tests/ipmi-kcs-test$(EXESUF)
P
Peter Maydell 已提交
191
# Disabled temporarily as it fails intermittently especially under NetBSD VM
192
# check-qtest-i386-$(CONFIG_ISA_IPMI_BT) += tests/ipmi-bt-test$(EXESUF)
193
check-qtest-i386-y += tests/i440fx-test$(EXESUF)
A
Anthony Liguori 已提交
194
check-qtest-i386-y += tests/fw_cfg-test$(EXESUF)
195
check-qtest-i386-y += tests/drive_del-test$(EXESUF)
196
check-qtest-i386-$(CONFIG_WDT_IB700) += tests/wdt_ib700-test$(EXESUF)
197
check-qtest-i386-y += tests/tco-test$(EXESUF)
A
Andreas Färber 已提交
198
check-qtest-i386-y += $(check-qtest-pci-y)
199
check-qtest-i386-$(CONFIG_VMXNET3_PCI) += tests/vmxnet3-test$(EXESUF)
200
check-qtest-i386-$(CONFIG_PVPANIC) += tests/pvpanic-test$(EXESUF)
201
check-qtest-i386-$(CONFIG_I82801B11) += tests/i82801b11-test$(EXESUF)
202
check-qtest-i386-$(CONFIG_IOH3420) += tests/ioh3420-test$(EXESUF)
203
check-qtest-i386-$(CONFIG_USB_OHCI) += tests/usb-hcd-ohci-test$(EXESUF)
204
check-qtest-i386-$(CONFIG_USB_UHCI) += tests/usb-hcd-uhci-test$(EXESUF)
205
ifeq ($(CONFIG_USB_ECHI)$(CONFIG_USB_UHCI),yy)
A
Andreas Färber 已提交
206
check-qtest-i386-y += tests/usb-hcd-ehci-test$(EXESUF)
207
endif
208
check-qtest-i386-$(CONFIG_USB_XHCI_NEC) += tests/usb-hcd-xhci-test$(EXESUF)
209
check-qtest-i386-y += tests/cpu-plug-test$(EXESUF)
G
Gerd Hoffmann 已提交
210
check-qtest-i386-y += tests/q35-test$(EXESUF)
211
check-qtest-i386-y += tests/vmgenid-test$(EXESUF)
212 213 214
check-qtest-i386-$(CONFIG_VHOST_USER_NET_TEST_i386) += tests/vhost-user-test$(EXESUF)
ifeq ($(CONFIG_VHOST_USER_NET_TEST_i386),)
check-qtest-x86_64-$(CONFIG_VHOST_USER_NET_TEST_x86_64) += tests/vhost-user-test$(EXESUF)
215
endif
216 217 218 219
check-qtest-i386-$(CONFIG_TPM_CRB) += tests/tpm-crb-swtpm-test$(EXESUF)
check-qtest-i386-$(CONFIG_TPM_CRB) += tests/tpm-crb-test$(EXESUF)
check-qtest-i386-$(CONFIG_TPM_TIS) += tests/tpm-tis-swtpm-test$(EXESUF)
check-qtest-i386-$(CONFIG_TPM_TIS) += tests/tpm-tis-test$(EXESUF)
220
check-qtest-i386-$(CONFIG_SLIRP) += tests/test-netfilter$(EXESUF)
221
check-qtest-i386-$(CONFIG_POSIX) += tests/test-filter-mirror$(EXESUF)
222
check-qtest-i386-$(CONFIG_RTL8139_PCI) += tests/test-filter-redirector$(EXESUF)
223
check-qtest-i386-y += tests/migration-test$(EXESUF)
224
check-qtest-i386-y += tests/test-x86-cpuid-compat$(EXESUF)
225
check-qtest-i386-y += tests/numa-test$(EXESUF)
M
Marc-André Lureau 已提交
226
check-qtest-x86_64-y += $(check-qtest-i386-y)
227
check-qtest-x86_64-$(CONFIG_SDHCI) += tests/sdhci-test$(EXESUF)
228

229
check-qtest-alpha-y += tests/boot-serial-test$(EXESUF)
230
check-qtest-alpha-$(CONFIG_VGA) += tests/display-vga-test$(EXESUF)
231

232
check-qtest-hppa-y += tests/boot-serial-test$(EXESUF)
233
check-qtest-hppa-$(CONFIG_VGA) += tests/display-vga-test$(EXESUF)
234

235 236
check-qtest-m68k-y = tests/boot-serial-test$(EXESUF)

237
check-qtest-microblaze-y += tests/boot-serial-test$(EXESUF)
238

239
check-qtest-mips-$(CONFIG_ISA_TESTDEV) = tests/endianness-test$(EXESUF)
240
check-qtest-mips-$(CONFIG_VGA) += tests/display-vga-test$(EXESUF)
241 242

check-qtest-mips64-$(CONFIG_ISA_TESTDEV) = tests/endianness-test$(EXESUF)
243
check-qtest-mips64-$(CONFIG_VGA) += tests/display-vga-test$(EXESUF)
244 245

check-qtest-mips64el-$(CONFIG_ISA_TESTDEV) = tests/endianness-test$(EXESUF)
246
check-qtest-mips64el-$(CONFIG_VGA) += tests/display-vga-test$(EXESUF)
247

248
check-qtest-moxie-y += tests/boot-serial-test$(EXESUF)
249

250
check-qtest-ppc-$(CONFIG_ISA_TESTDEV) = tests/endianness-test$(EXESUF)
251 252 253
check-qtest-ppc-y += tests/boot-order-test$(EXESUF)
check-qtest-ppc-y += tests/prom-env-test$(EXESUF)
check-qtest-ppc-y += tests/drive_del-test$(EXESUF)
254
check-qtest-ppc-y += tests/boot-serial-test$(EXESUF)
255
check-qtest-ppc-$(CONFIG_M48T59) += tests/m48t59-test$(EXESUF)
256

257
check-qtest-ppc64-y += $(check-qtest-ppc-y)
258 259
check-qtest-ppc64-$(CONFIG_PSERIES) += tests/spapr-phb-test$(EXESUF)
check-qtest-ppc64-$(CONFIG_POWERNV) += tests/pnv-xscom-test$(EXESUF)
260
check-qtest-ppc64-y += tests/migration-test$(EXESUF)
261
check-qtest-ppc64-$(CONFIG_PSERIES) += tests/rtas-test$(EXESUF)
262
check-qtest-ppc64-$(CONFIG_SLIRP) += tests/pxe-test$(EXESUF)
263
check-qtest-ppc64-$(CONFIG_USB_OHCI) += tests/usb-hcd-ohci-test$(EXESUF)
264
check-qtest-ppc64-$(CONFIG_USB_UHCI) += tests/usb-hcd-uhci-test$(EXESUF)
265
check-qtest-ppc64-$(CONFIG_USB_XHCI_NEC) += tests/usb-hcd-xhci-test$(EXESUF)
266
check-qtest-ppc64-$(CONFIG_VIRTIO) += $(check-qtest-virtio-y)
267
check-qtest-ppc64-$(CONFIG_SLIRP) += tests/test-netfilter$(EXESUF)
268
check-qtest-ppc64-$(CONFIG_POSIX) += tests/test-filter-mirror$(EXESUF)
269
check-qtest-ppc64-$(CONFIG_RTL8139_PCI) += tests/test-filter-redirector$(EXESUF)
270
check-qtest-ppc64-$(CONFIG_VGA) += tests/display-vga-test$(EXESUF)
271
check-qtest-ppc64-y += tests/numa-test$(EXESUF)
272
check-qtest-ppc64-$(CONFIG_IVSHMEM_DEVICE) += tests/ivshmem-test$(EXESUF)
273
check-qtest-ppc64-y += tests/cpu-plug-test$(EXESUF)
274

275 276 277 278
check-qtest-sh4-$(CONFIG_ISA_TESTDEV) = tests/endianness-test$(EXESUF)

check-qtest-sh4eb-$(CONFIG_ISA_TESTDEV) = tests/endianness-test$(EXESUF)

279
check-qtest-sparc-y += tests/prom-env-test$(EXESUF)
280
check-qtest-sparc-y += tests/m48t59-test$(EXESUF)
281
check-qtest-sparc-y += tests/boot-serial-test$(EXESUF)
282

283
check-qtest-sparc64-$(CONFIG_ISA_TESTDEV) = tests/endianness-test$(EXESUF)
284
check-qtest-sparc64-y += tests/prom-env-test$(EXESUF)
285
check-qtest-sparc64-y += tests/boot-serial-test$(EXESUF)
286

287
check-qtest-arm-y += tests/tmp105-test$(EXESUF)
288
check-qtest-arm-y += tests/pca9552-test$(EXESUF)
T
Thomas Huth 已提交
289
check-qtest-arm-y += tests/ds1338-test$(EXESUF)
290
check-qtest-arm-y += tests/microbit-test$(EXESUF)
C
Cédric Le Goater 已提交
291
check-qtest-arm-y += tests/m25p80-test$(EXESUF)
292
check-qtest-arm-$(CONFIG_VIRTIO_BLK) += tests/virtio-blk-test$(EXESUF)
293
check-qtest-arm-y += tests/test-arm-mptimer$(EXESUF)
294
check-qtest-arm-y += tests/boot-serial-test$(EXESUF)
295
check-qtest-arm-$(CONFIG_SDHCI) += tests/sdhci-test$(EXESUF)
296
check-qtest-arm-y += tests/hexloader-test$(EXESUF)
297

298
check-qtest-aarch64-y = tests/numa-test$(EXESUF)
299
check-qtest-aarch64-$(CONFIG_SDHCI) += tests/sdhci-test$(EXESUF)
300
check-qtest-aarch64-y += tests/boot-serial-test$(EXESUF)
W
Wei Huang 已提交
301
check-qtest-aarch64-y += tests/migration-test$(EXESUF)
302

303
check-qtest-microblazeel-y += $(check-qtest-microblaze-y)
304

305
check-qtest-xtensaeb-y += $(check-qtest-xtensa-y)
A
Anthony Liguori 已提交
306

307
check-qtest-s390x-y = tests/boot-serial-test$(EXESUF)
308
check-qtest-s390x-$(CONFIG_SLIRP) += tests/pxe-test$(EXESUF)
309 310 311
check-qtest-s390x-$(CONFIG_SLIRP) += tests/test-netfilter$(EXESUF)
check-qtest-s390x-$(CONFIG_POSIX) += tests/test-filter-mirror$(EXESUF)
check-qtest-s390x-$(CONFIG_POSIX) += tests/test-filter-redirector$(EXESUF)
312
check-qtest-s390x-y += tests/drive_del-test$(EXESUF)
313
check-qtest-s390x-y += tests/virtio-ccw-test$(EXESUF)
314
check-qtest-s390x-y += tests/cpu-plug-test$(EXESUF)
315
check-qtest-s390x-y += tests/migration-test$(EXESUF)
316

317
check-qtest-generic-y += tests/machine-none-test$(EXESUF)
M
Markus Armbruster 已提交
318
check-qtest-generic-y += tests/qom-test$(EXESUF)
319
check-qtest-generic-y += tests/test-hmp$(EXESUF)
320

321
qapi-schema += alternate-any.json
E
Eric Blake 已提交
322 323 324 325
qapi-schema += alternate-array.json
qapi-schema += alternate-base.json
qapi-schema += alternate-clash.json
qapi-schema += alternate-conflict-dict.json
326 327
qapi-schema += alternate-conflict-enum-bool.json
qapi-schema += alternate-conflict-enum-int.json
E
Eric Blake 已提交
328
qapi-schema += alternate-conflict-string.json
329 330
qapi-schema += alternate-conflict-bool-string.json
qapi-schema += alternate-conflict-num-string.json
E
Eric Blake 已提交
331
qapi-schema += alternate-empty.json
332
qapi-schema += alternate-invalid-dict.json
E
Eric Blake 已提交
333 334 335 336 337 338
qapi-schema += alternate-nested.json
qapi-schema += alternate-unknown.json
qapi-schema += args-alternate.json
qapi-schema += args-any.json
qapi-schema += args-array-empty.json
qapi-schema += args-array-unknown.json
339 340 341 342
qapi-schema += args-bad-boxed.json
qapi-schema += args-boxed-anon.json
qapi-schema += args-boxed-empty.json
qapi-schema += args-boxed-string.json
E
Eric Blake 已提交
343 344 345
qapi-schema += args-int.json
qapi-schema += args-invalid.json
qapi-schema += args-member-array-bad.json
346
qapi-schema += args-member-case.json
E
Eric Blake 已提交
347
qapi-schema += args-member-unknown.json
348
qapi-schema += args-name-clash.json
E
Eric Blake 已提交
349 350 351 352 353
qapi-schema += args-union.json
qapi-schema += args-unknown.json
qapi-schema += bad-base.json
qapi-schema += bad-data.json
qapi-schema += bad-ident.json
354 355 356 357
qapi-schema += bad-if.json
qapi-schema += bad-if-empty.json
qapi-schema += bad-if-empty-list.json
qapi-schema += bad-if-list.json
E
Eric Blake 已提交
358 359 360
qapi-schema += bad-type-bool.json
qapi-schema += bad-type-dict.json
qapi-schema += bad-type-int.json
E
Eric Blake 已提交
361 362
qapi-schema += base-cycle-direct.json
qapi-schema += base-cycle-indirect.json
E
Eric Blake 已提交
363 364
qapi-schema += command-int.json
qapi-schema += comments.json
365
qapi-schema += doc-bad-alternate-member.json
366
qapi-schema += doc-bad-command-arg.json
367
qapi-schema += doc-bad-section.json
M
Marc-André Lureau 已提交
368
qapi-schema += doc-bad-symbol.json
369
qapi-schema += doc-bad-union-member.json
370 371
qapi-schema += doc-before-include.json
qapi-schema += doc-before-pragma.json
M
Marc-André Lureau 已提交
372 373 374 375 376 377
qapi-schema += doc-duplicated-arg.json
qapi-schema += doc-duplicated-return.json
qapi-schema += doc-duplicated-since.json
qapi-schema += doc-empty-arg.json
qapi-schema += doc-empty-section.json
qapi-schema += doc-empty-symbol.json
378
qapi-schema += doc-good.json
M
Marc-André Lureau 已提交
379 380 381 382 383 384 385 386 387
qapi-schema += doc-interleaved-section.json
qapi-schema += doc-invalid-end.json
qapi-schema += doc-invalid-end2.json
qapi-schema += doc-invalid-return.json
qapi-schema += doc-invalid-section.json
qapi-schema += doc-invalid-start.json
qapi-schema += doc-missing-colon.json
qapi-schema += doc-missing-expr.json
qapi-schema += doc-missing-space.json
388
qapi-schema += doc-missing.json
389
qapi-schema += doc-no-symbol.json
E
Eric Blake 已提交
390 391 392 393
qapi-schema += double-data.json
qapi-schema += double-type.json
qapi-schema += duplicate-key.json
qapi-schema += empty.json
394
qapi-schema += enum-bad-member.json
E
Eric Blake 已提交
395 396 397
qapi-schema += enum-bad-name.json
qapi-schema += enum-bad-prefix.json
qapi-schema += enum-clash-member.json
398
qapi-schema += enum-dict-member-unknown.json
399
qapi-schema += enum-if-invalid.json
E
Eric Blake 已提交
400
qapi-schema += enum-int-member.json
401
qapi-schema += enum-member-case.json
E
Eric Blake 已提交
402 403 404 405 406
qapi-schema += enum-missing-data.json
qapi-schema += enum-wrong-data.json
qapi-schema += escape-outside-string.json
qapi-schema += escape-too-big.json
qapi-schema += escape-too-short.json
407
qapi-schema += event-boxed-empty.json
E
Eric Blake 已提交
408
qapi-schema += event-case.json
409
qapi-schema += event-member-invalid-dict.json
E
Eric Blake 已提交
410 411 412 413 414 415
qapi-schema += event-nest-struct.json
qapi-schema += flat-union-array-branch.json
qapi-schema += flat-union-bad-base.json
qapi-schema += flat-union-bad-discriminator.json
qapi-schema += flat-union-base-any.json
qapi-schema += flat-union-base-union.json
416
qapi-schema += flat-union-clash-member.json
E
Eric Blake 已提交
417
qapi-schema += flat-union-empty.json
E
Eric Blake 已提交
418
qapi-schema += flat-union-inline.json
419
qapi-schema += flat-union-inline-invalid-dict.json
E
Eric Blake 已提交
420 421 422
qapi-schema += flat-union-int-branch.json
qapi-schema += flat-union-invalid-branch-key.json
qapi-schema += flat-union-invalid-discriminator.json
423
qapi-schema += flat-union-invalid-if-discriminator.json
E
Eric Blake 已提交
424 425 426 427 428 429 430
qapi-schema += flat-union-no-base.json
qapi-schema += flat-union-optional-discriminator.json
qapi-schema += flat-union-string-discriminator.json
qapi-schema += funny-char.json
qapi-schema += ident-with-escape.json
qapi-schema += include-before-err.json
qapi-schema += include-cycle.json
431
qapi-schema += include-extra-junk.json
E
Eric Blake 已提交
432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447
qapi-schema += include-format-err.json
qapi-schema += include-nested-err.json
qapi-schema += include-no-file.json
qapi-schema += include-non-file.json
qapi-schema += include-relpath.json
qapi-schema += include-repetition.json
qapi-schema += include-self-cycle.json
qapi-schema += include-simple.json
qapi-schema += indented-expr.json
qapi-schema += leading-comma-list.json
qapi-schema += leading-comma-object.json
qapi-schema += missing-colon.json
qapi-schema += missing-comma-list.json
qapi-schema += missing-comma-object.json
qapi-schema += missing-type.json
qapi-schema += nested-struct-data.json
448
qapi-schema += nested-struct-data-invalid-dict.json
E
Eric Blake 已提交
449
qapi-schema += non-objects.json
P
Peter Xu 已提交
450
qapi-schema += oob-test.json
451
qapi-schema += allow-preconfig-test.json
452 453
qapi-schema += pragma-doc-required-crap.json
qapi-schema += pragma-extra-junk.json
454
qapi-schema += pragma-name-case-whitelist-crap.json
455
qapi-schema += pragma-non-dict.json
456
qapi-schema += pragma-returns-whitelist-crap.json
E
Eric Blake 已提交
457 458 459 460 461 462
qapi-schema += qapi-schema-test.json
qapi-schema += quoted-structural-chars.json
qapi-schema += redefined-builtin.json
qapi-schema += redefined-command.json
qapi-schema += redefined-event.json
qapi-schema += redefined-type.json
463
qapi-schema += reserved-command-q.json
464
qapi-schema += reserved-enum-q.json
465 466
qapi-schema += reserved-member-has.json
qapi-schema += reserved-member-q.json
E
Eric Blake 已提交
467
qapi-schema += reserved-member-u.json
468
qapi-schema += reserved-member-underscore.json
469 470
qapi-schema += reserved-type-kind.json
qapi-schema += reserved-type-list.json
E
Eric Blake 已提交
471 472 473 474 475 476 477 478
qapi-schema += returns-alternate.json
qapi-schema += returns-array-bad.json
qapi-schema += returns-dict.json
qapi-schema += returns-unknown.json
qapi-schema += returns-whitelist.json
qapi-schema += struct-base-clash-deep.json
qapi-schema += struct-base-clash.json
qapi-schema += struct-data-invalid.json
479
qapi-schema += struct-member-invalid-dict.json
E
Eric Blake 已提交
480 481 482 483 484 485 486 487
qapi-schema += struct-member-invalid.json
qapi-schema += trailing-comma-list.json
qapi-schema += trailing-comma-object.json
qapi-schema += type-bypass-bad-gen.json
qapi-schema += unclosed-list.json
qapi-schema += unclosed-object.json
qapi-schema += unclosed-string.json
qapi-schema += unicode-str.json
488
qapi-schema += union-base-empty.json
E
Eric Blake 已提交
489
qapi-schema += union-base-no-discriminator.json
490
qapi-schema += union-branch-case.json
491
qapi-schema += union-branch-invalid-dict.json
492
qapi-schema += union-clash-branches.json
E
Eric Blake 已提交
493
qapi-schema += union-empty.json
E
Eric Blake 已提交
494 495 496 497 498
qapi-schema += union-invalid-base.json
qapi-schema += union-optional-branch.json
qapi-schema += union-unknown.json
qapi-schema += unknown-escape.json
qapi-schema += unknown-expr-key.json
M
Marc-André Lureau 已提交
499 500


E
Eric Blake 已提交
501
check-qapi-schema-y := $(addprefix tests/qapi-schema/, $(qapi-schema))
502

503
GENERATED_FILES += tests/test-qapi-types.h tests/test-qapi-visit.h \
504 505
	tests/test-qapi-commands.h tests/test-qapi-events.h \
	tests/test-qapi-introspect.h
P
Paolo Bonzini 已提交
506

507
test-obj-y = tests/check-qnum.o tests/check-qstring.o tests/check-qdict.o \
508
	tests/check-qlist.o tests/check-qnull.o tests/check-qobject.o \
509
	tests/check-qjson.o tests/check-qlit.o \
510
	tests/check-block-qtest.o \
P
Paolo Bonzini 已提交
511
	tests/test-coroutine.o tests/test-string-output-visitor.o \
512
	tests/test-string-input-visitor.o tests/test-qobject-output-visitor.o \
E
Eric Blake 已提交
513
	tests/test-clone-visitor.o \
514
	tests/test-qobject-input-visitor.o \
515
	tests/test-qmp-cmds.o tests/test-visitor-serialization.o \
516
	tests/test-x86-cpuid.o tests/test-mul64.o tests/test-int128.o \
P
Paolo Bonzini 已提交
517
	tests/test-opts-visitor.o tests/test-qmp-event.o \
E
Emilio G. Cota 已提交
518
	tests/rcutorture.o tests/test-rcu-list.o \
E
Emilio G. Cota 已提交
519
	tests/test-rcu-simpleq.o \
E
Emilio G. Cota 已提交
520
	tests/test-rcu-tailq.o \
521
	tests/test-qdist.o tests/test-shift128.o \
E
Emilio G. Cota 已提交
522
	tests/test-qht.o tests/qht-bench.o tests/test-qht-par.o \
E
Emilio G. Cota 已提交
523
	tests/atomic_add-bench.o tests/atomic64-bench.o
P
Paolo Bonzini 已提交
524 525

$(test-obj-y): QEMU_INCLUDES += -Itests
526
QEMU_CFLAGS += -I$(SRC_PATH)/tests
P
Paolo Bonzini 已提交
527

528 529

# Deps that are common to various different sets of tests below
P
Paolo Bonzini 已提交
530
test-util-obj-y = libqemuutil.a
531
test-qom-obj-y = $(qom-obj-y) $(test-util-obj-y)
532
test-qapi-obj-y = tests/test-qapi-visit.o tests/test-qapi-types.o \
533
	tests/test-qapi-introspect.o \
534
	$(test-qom-obj-y)
535
benchmark-crypto-obj-y = $(crypto-obj-y) $(test-qom-obj-y)
536
test-crypto-obj-y = $(crypto-obj-y) $(test-qom-obj-y)
537
test-io-obj-y = $(io-obj-y) $(test-crypto-obj-y)
538
test-block-obj-y = $(block-obj-y) $(test-io-obj-y) tests/iothread.o
539

540
tests/check-qnum$(EXESUF): tests/check-qnum.o $(test-util-obj-y)
541 542
tests/check-qstring$(EXESUF): tests/check-qstring.o $(test-util-obj-y)
tests/check-qdict$(EXESUF): tests/check-qdict.o $(test-util-obj-y)
543
tests/check-block-qdict$(EXESUF): tests/check-block-qdict.o $(test-util-obj-y)
544
tests/check-qlist$(EXESUF): tests/check-qlist.o $(test-util-obj-y)
E
Eric Blake 已提交
545
tests/check-qnull$(EXESUF): tests/check-qnull.o $(test-util-obj-y)
546
tests/check-qobject$(EXESUF): tests/check-qobject.o $(test-util-obj-y)
547
tests/check-qjson$(EXESUF): tests/check-qjson.o $(test-util-obj-y)
548
tests/check-qlit$(EXESUF): tests/check-qlit.o $(test-util-obj-y)
549 550
tests/check-qom-interface$(EXESUF): tests/check-qom-interface.o $(test-qom-obj-y)
tests/check-qom-proplist$(EXESUF): tests/check-qom-proplist.o $(test-qom-obj-y)
551

552
tests/test-char$(EXESUF): tests/test-char.o $(test-util-obj-y) $(qtest-obj-y) $(test-io-obj-y) $(chardev-obj-y)
553 554
tests/test-coroutine$(EXESUF): tests/test-coroutine.o $(test-block-obj-y)
tests/test-aio$(EXESUF): tests/test-aio.o $(test-block-obj-y)
555
tests/test-aio-multithread$(EXESUF): tests/test-aio-multithread.o $(test-block-obj-y)
556
tests/test-throttle$(EXESUF): tests/test-throttle.o $(test-block-obj-y)
557
tests/test-bdrv-drain$(EXESUF): tests/test-bdrv-drain.o $(test-block-obj-y) $(test-util-obj-y)
A
Alberto Garcia 已提交
558
tests/test-blockjob$(EXESUF): tests/test-blockjob.o $(test-block-obj-y) $(test-util-obj-y)
S
Stefan Hajnoczi 已提交
559
tests/test-blockjob-txn$(EXESUF): tests/test-blockjob-txn.o $(test-block-obj-y) $(test-util-obj-y)
560
tests/test-block-backend$(EXESUF): tests/test-block-backend.o $(test-block-obj-y) $(test-util-obj-y)
561
tests/test-block-iothread$(EXESUF): tests/test-block-iothread.o $(test-block-obj-y) $(test-util-obj-y)
562
tests/test-image-locking$(EXESUF): tests/test-image-locking.o $(test-block-obj-y) $(test-util-obj-y)
563 564
tests/test-thread-pool$(EXESUF): tests/test-thread-pool.o $(test-block-obj-y)
tests/test-iov$(EXESUF): tests/test-iov.o $(test-util-obj-y)
565
tests/test-hbitmap$(EXESUF): tests/test-hbitmap.o $(test-util-obj-y) $(test-crypto-obj-y)
566
tests/test-x86-cpuid$(EXESUF): tests/test-x86-cpuid.o
567
tests/test-xbzrle$(EXESUF): tests/test-xbzrle.o migration/xbzrle.o migration/page_cache.o $(test-util-obj-y)
568
tests/test-cutils$(EXESUF): tests/test-cutils.o util/cutils.o $(test-util-obj-y)
569
tests/test-int128$(EXESUF): tests/test-int128.o
570 571
tests/rcutorture$(EXESUF): tests/rcutorture.o $(test-util-obj-y)
tests/test-rcu-list$(EXESUF): tests/test-rcu-list.o $(test-util-obj-y)
E
Emilio G. Cota 已提交
572
tests/test-rcu-simpleq$(EXESUF): tests/test-rcu-simpleq.o $(test-util-obj-y)
E
Emilio G. Cota 已提交
573
tests/test-rcu-tailq$(EXESUF): tests/test-rcu-tailq.o $(test-util-obj-y)
E
Emilio G. Cota 已提交
574
tests/test-qdist$(EXESUF): tests/test-qdist.o $(test-util-obj-y)
E
Emilio G. Cota 已提交
575
tests/test-qht$(EXESUF): tests/test-qht.o $(test-util-obj-y)
576
tests/test-qht-par$(EXESUF): tests/test-qht-par.o tests/qht-bench$(EXESUF) $(test-util-obj-y)
577
tests/qht-bench$(EXESUF): tests/qht-bench.o $(test-util-obj-y)
578
tests/test-bufferiszero$(EXESUF): tests/test-bufferiszero.o $(test-util-obj-y)
E
Emilio G. Cota 已提交
579
tests/atomic_add-bench$(EXESUF): tests/atomic_add-bench.o $(test-util-obj-y)
E
Emilio G. Cota 已提交
580
tests/atomic64-bench$(EXESUF): tests/atomic64-bench.o $(test-util-obj-y)
P
Paolo Bonzini 已提交
581

582 583 584
tests/fp/%:
	$(MAKE) -C $(dir $@) $(notdir $@)

585
tests/test-qdev-global-props$(EXESUF): tests/test-qdev-global-props.o \
586
	hw/core/qdev.o hw/core/qdev-properties.o hw/core/hotplug.o\
587
	hw/core/bus.o \
588
	hw/core/irq.o \
589
	hw/core/fw-path-provider.o \
590
	hw/core/reset.o \
591
	$(test-qapi-obj-y)
592
tests/test-vmstate$(EXESUF): tests/test-vmstate.o \
593
	migration/vmstate.o migration/vmstate-types.o migration/qemu-file.o \
594 595
        migration/qemu-file-channel.o migration/qjson.o \
	$(test-io-obj-y)
596
tests/test-timed-average$(EXESUF): tests/test-timed-average.o $(test-util-obj-y)
P
Paolo Bonzini 已提交
597
tests/test-base64$(EXESUF): tests/test-base64.o $(test-util-obj-y)
598
tests/ptimer-test$(EXESUF): tests/ptimer-test.o tests/ptimer-test-stubs.o hw/core/ptimer.o
P
Paolo Bonzini 已提交
599

600 601
tests/test-logging$(EXESUF): tests/test-logging.o $(test-util-obj-y)

602 603 604
tests/test-replication$(EXESUF): tests/test-replication.o $(test-util-obj-y) \
	$(test-block-obj-y)

605 606
tests/test-qapi-types.c tests/test-qapi-types.h \
tests/test-qapi-visit.c tests/test-qapi-visit.h \
607 608 609
tests/test-qapi-commands.h tests/test-qapi-commands.c \
tests/test-qapi-events.c tests/test-qapi-events.h \
tests/test-qapi-introspect.c tests/test-qapi-introspect.h: \
610 611
tests/test-qapi-gen-timestamp ;
tests/test-qapi-gen-timestamp: $(SRC_PATH)/tests/qapi-schema/qapi-schema-test.json $(qapi-py)
M
Matthias Maier 已提交
612
	$(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-gen.py \
613 614 615 616 617
		-o tests -p "test-" $<, \
		"GEN","$(@:%-timestamp=%)")
	@>$@

tests/qapi-schema/doc-good.test.texi: $(SRC_PATH)/tests/qapi-schema/doc-good.json $(qapi-py)
M
Matthias Maier 已提交
618
	$(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-gen.py \
619
		-o tests/qapi-schema -p "doc-good-" $<, \
620
		"GEN","$@")
621 622
	@mv tests/qapi-schema/doc-good-qapi-doc.texi $@
	@rm -f tests/qapi-schema/doc-good-qapi-*.[ch] tests/qapi-schema/doc-good-qmp-*.[ch]
623

624 625
tests/test-string-output-visitor$(EXESUF): tests/test-string-output-visitor.o $(test-qapi-obj-y)
tests/test-string-input-visitor$(EXESUF): tests/test-string-input-visitor.o $(test-qapi-obj-y)
626
tests/test-qmp-event$(EXESUF): tests/test-qmp-event.o $(test-qapi-obj-y) tests/test-qapi-events.o
627
tests/test-qobject-output-visitor$(EXESUF): tests/test-qobject-output-visitor.o $(test-qapi-obj-y)
E
Eric Blake 已提交
628
tests/test-clone-visitor$(EXESUF): tests/test-clone-visitor.o $(test-qapi-obj-y)
629
tests/test-qobject-input-visitor$(EXESUF): tests/test-qobject-input-visitor.o $(test-qapi-obj-y)
630
tests/test-qmp-cmds$(EXESUF): tests/test-qmp-cmds.o tests/test-qapi-commands.o $(test-qapi-obj-y)
631 632
tests/test-visitor-serialization$(EXESUF): tests/test-visitor-serialization.o $(test-qapi-obj-y)
tests/test-opts-visitor$(EXESUF): tests/test-opts-visitor.o $(test-qapi-obj-y)
633

634
tests/test-shift128$(EXESUF): tests/test-shift128.o $(test-util-obj-y)
635 636
tests/test-mul64$(EXESUF): tests/test-mul64.o $(test-util-obj-y)
tests/test-bitops$(EXESUF): tests/test-bitops.o $(test-util-obj-y)
A
Alex Bennée 已提交
637
tests/test-bitcnt$(EXESUF): tests/test-bitcnt.o $(test-util-obj-y)
638
tests/test-crypto-hash$(EXESUF): tests/test-crypto-hash.o $(test-crypto-obj-y)
639
tests/benchmark-crypto-hash$(EXESUF): tests/benchmark-crypto-hash.o $(test-crypto-obj-y)
640
tests/test-crypto-hmac$(EXESUF): tests/test-crypto-hmac.o $(test-crypto-obj-y)
641
tests/benchmark-crypto-hmac$(EXESUF): tests/benchmark-crypto-hmac.o $(test-crypto-obj-y)
642
tests/test-crypto-cipher$(EXESUF): tests/test-crypto-cipher.o $(test-crypto-obj-y)
643
tests/benchmark-crypto-cipher$(EXESUF): tests/benchmark-crypto-cipher.o $(test-crypto-obj-y)
644
tests/test-crypto-secret$(EXESUF): tests/test-crypto-secret.o $(test-crypto-obj-y)
645
tests/test-crypto-xts$(EXESUF): tests/test-crypto-xts.o $(test-crypto-obj-y)
646 647 648 649 650 651

tests/crypto-tls-x509-helpers.o-cflags := $(TASN1_CFLAGS)
tests/crypto-tls-x509-helpers.o-libs := $(TASN1_LIBS)
tests/pkix_asn1_tab.o-cflags := $(TASN1_CFLAGS)

tests/test-crypto-tlscredsx509.o-cflags := $(TASN1_CFLAGS)
652 653
tests/test-crypto-tlscredsx509$(EXESUF): tests/test-crypto-tlscredsx509.o \
	tests/crypto-tls-x509-helpers.o tests/pkix_asn1_tab.o $(test-crypto-obj-y)
654 655

tests/test-crypto-tlssession.o-cflags := $(TASN1_CFLAGS)
656
tests/test-crypto-tlssession$(EXESUF): tests/test-crypto-tlssession.o \
657 658 659
	tests/crypto-tls-x509-helpers.o tests/pkix_asn1_tab.o \
	tests/crypto-tls-psk-helpers.o \
        $(test-crypto-obj-y)
660 661
tests/test-util-sockets$(EXESUF): tests/test-util-sockets.o \
	tests/socket-helpers.o $(test-util-obj-y)
662
tests/test-io-task$(EXESUF): tests/test-io-task.o $(test-io-obj-y)
663
tests/test-io-channel-socket$(EXESUF): tests/test-io-channel-socket.o \
664
        tests/io-channel-helpers.o tests/socket-helpers.o $(test-io-obj-y)
665
tests/tpm-crb-swtpm-test$(EXESUF): tests/tpm-crb-swtpm-test.o tests/tpm-emu.o \
666
	tests/tpm-util.o tests/tpm-tests.o $(test-io-obj-y)
667
tests/tpm-crb-test$(EXESUF): tests/tpm-crb-test.o tests/tpm-emu.o $(test-io-obj-y)
668 669
tests/tpm-tis-swtpm-test$(EXESUF): tests/tpm-tis-swtpm-test.o tests/tpm-emu.o \
	tests/tpm-util.o tests/tpm-tests.o $(test-io-obj-y)
670
tests/tpm-tis-test$(EXESUF): tests/tpm-tis-test.o tests/tpm-emu.o $(test-io-obj-y)
D
Daniel P. Berrange 已提交
671 672
tests/test-io-channel-file$(EXESUF): tests/test-io-channel-file.o \
        tests/io-channel-helpers.o $(test-io-obj-y)
D
Daniel P. Berrange 已提交
673 674 675
tests/test-io-channel-tls$(EXESUF): tests/test-io-channel-tls.o \
	tests/crypto-tls-x509-helpers.o tests/pkix_asn1_tab.o \
	tests/io-channel-helpers.o $(test-io-obj-y)
676 677
tests/test-io-channel-command$(EXESUF): tests/test-io-channel-command.o \
        tests/io-channel-helpers.o $(test-io-obj-y)
678 679
tests/test-io-channel-buffer$(EXESUF): tests/test-io-channel-buffer.o \
        tests/io-channel-helpers.o $(test-io-obj-y)
680
tests/test-crypto-pbkdf$(EXESUF): tests/test-crypto-pbkdf.o $(test-crypto-obj-y)
681
tests/test-crypto-ivgen$(EXESUF): tests/test-crypto-ivgen.o $(test-crypto-obj-y)
682
tests/test-crypto-afsplit$(EXESUF): tests/test-crypto-afsplit.o $(test-crypto-obj-y)
683
tests/test-crypto-block$(EXESUF): tests/test-crypto-block.o $(test-crypto-obj-y)
684

685
libqos-obj-y = tests/libqos/pci.o tests/libqos/fw_cfg.o tests/libqos/malloc.o
J
John Snow 已提交
686
libqos-obj-y += tests/libqos/i2c.o tests/libqos/libqos.o
687 688
libqos-spapr-obj-y = $(libqos-obj-y) tests/libqos/malloc-spapr.o
libqos-spapr-obj-y += tests/libqos/libqos-spapr.o
689
libqos-spapr-obj-y += tests/libqos/rtas.o
L
Laurent Vivier 已提交
690
libqos-spapr-obj-y += tests/libqos/pci-spapr.o
691
libqos-pc-obj-y = $(libqos-obj-y) tests/libqos/pci-pc.o
J
John Snow 已提交
692
libqos-pc-obj-y += tests/libqos/malloc-pc.o tests/libqos/libqos-pc.o
J
John Snow 已提交
693
libqos-pc-obj-y += tests/libqos/ahci.o
A
Andreas Färber 已提交
694
libqos-omap-obj-y = $(libqos-obj-y) tests/libqos/i2c-omap.o
695
libqos-imx-obj-y = $(libqos-obj-y) tests/libqos/i2c-imx.o
696
libqos-usb-obj-y = $(libqos-spapr-obj-y) $(libqos-pc-obj-y) tests/libqos/usb.o
697
libqos-virtio-obj-y = $(libqos-spapr-obj-y) $(libqos-pc-obj-y) tests/libqos/virtio.o tests/libqos/virtio-pci.o tests/libqos/virtio-mmio.o tests/libqos/malloc-generic.o
698

699
tests/qmp-test$(EXESUF): tests/qmp-test.o
700
tests/qmp-cmd-test$(EXESUF): tests/qmp-cmd-test.o
701
tests/device-introspect-test$(EXESUF): tests/device-introspect-test.o
702 703
tests/rtc-test$(EXESUF): tests/rtc-test.o
tests/m48t59-test$(EXESUF): tests/m48t59-test.o
704
tests/hexloader-test$(EXESUF): tests/hexloader-test.o
705
tests/endianness-test$(EXESUF): tests/endianness-test.o
706
tests/spapr-phb-test$(EXESUF): tests/spapr-phb-test.o $(libqos-obj-y)
707
tests/prom-env-test$(EXESUF): tests/prom-env-test.o $(libqos-obj-y)
708
tests/rtas-test$(EXESUF): tests/rtas-test.o $(libqos-spapr-obj-y)
709
tests/fdc-test$(EXESUF): tests/fdc-test.o
K
Kevin Wolf 已提交
710
tests/ide-test$(EXESUF): tests/ide-test.o $(libqos-pc-obj-y)
J
John Snow 已提交
711
tests/ahci-test$(EXESUF): tests/ahci-test.o $(libqos-pc-obj-y)
C
Corey Minyard 已提交
712 713
tests/ipmi-kcs-test$(EXESUF): tests/ipmi-kcs-test.o
tests/ipmi-bt-test$(EXESUF): tests/ipmi-bt-test.o
714
tests/hd-geo-test$(EXESUF): tests/hd-geo-test.o
715
tests/boot-order-test$(EXESUF): tests/boot-order-test.o $(libqos-obj-y)
716
tests/boot-serial-test$(EXESUF): tests/boot-serial-test.o $(libqos-obj-y)
717
tests/bios-tables-test$(EXESUF): tests/bios-tables-test.o \
718
	tests/boot-sector.o tests/acpi-utils.o $(libqos-obj-y)
719
tests/pxe-test$(EXESUF): tests/pxe-test.o tests/boot-sector.o $(libqos-obj-y)
A
Andreas Färber 已提交
720
tests/tmp105-test$(EXESUF): tests/tmp105-test.o $(libqos-omap-obj-y)
721
tests/pca9552-test$(EXESUF): tests/pca9552-test.o $(libqos-omap-obj-y)
722
tests/ds1338-test$(EXESUF): tests/ds1338-test.o $(libqos-imx-obj-y)
723
tests/microbit-test$(EXESUF): tests/microbit-test.o
C
Cédric Le Goater 已提交
724
tests/m25p80-test$(EXESUF): tests/m25p80-test.o
725
tests/i440fx-test$(EXESUF): tests/i440fx-test.o $(libqos-pc-obj-y)
G
Gerd Hoffmann 已提交
726
tests/q35-test$(EXESUF): tests/q35-test.o $(libqos-pc-obj-y)
A
Anthony Liguori 已提交
727
tests/fw_cfg-test$(EXESUF): tests/fw_cfg-test.o $(libqos-pc-obj-y)
A
Andreas Färber 已提交
728
tests/e1000-test$(EXESUF): tests/e1000-test.o
729
tests/e1000e-test$(EXESUF): tests/e1000e-test.o $(libqos-pc-obj-y)
730
tests/rtl8139-test$(EXESUF): tests/rtl8139-test.o $(libqos-pc-obj-y)
A
Andreas Färber 已提交
731
tests/pcnet-test$(EXESUF): tests/pcnet-test.o
732
tests/pnv-xscom-test$(EXESUF): tests/pnv-xscom-test.o
A
Andreas Färber 已提交
733
tests/eepro100-test$(EXESUF): tests/eepro100-test.o
A
Andreas Färber 已提交
734
tests/vmxnet3-test$(EXESUF): tests/vmxnet3-test.o
A
Andreas Färber 已提交
735
tests/ne2000-test$(EXESUF): tests/ne2000-test.o
P
Paolo Bonzini 已提交
736
tests/wdt_ib700-test$(EXESUF): tests/wdt_ib700-test.o
737
tests/tco-test$(EXESUF): tests/tco-test.o $(libqos-pc-obj-y)
738
tests/virtio-balloon-test$(EXESUF): tests/virtio-balloon-test.o $(libqos-virtio-obj-y)
739
tests/virtio-blk-test$(EXESUF): tests/virtio-blk-test.o $(libqos-virtio-obj-y)
740
tests/virtio-ccw-test$(EXESUF): tests/virtio-ccw-test.o
741
tests/virtio-net-test$(EXESUF): tests/virtio-net-test.o $(libqos-pc-obj-y) $(libqos-virtio-obj-y)
742
tests/virtio-rng-test$(EXESUF): tests/virtio-rng-test.o $(libqos-pc-obj-y)
743
tests/virtio-scsi-test$(EXESUF): tests/virtio-scsi-test.o $(libqos-virtio-obj-y)
744
tests/virtio-9p-test$(EXESUF): tests/virtio-9p-test.o $(libqos-virtio-obj-y)
745 746
tests/virtio-serial-test$(EXESUF): tests/virtio-serial-test.o $(libqos-virtio-obj-y)
tests/virtio-console-test$(EXESUF): tests/virtio-console-test.o $(libqos-virtio-obj-y)
A
Andreas Färber 已提交
747
tests/tpci200-test$(EXESUF): tests/tpci200-test.o
G
Gerd Hoffmann 已提交
748
tests/display-vga-test$(EXESUF): tests/display-vga-test.o
A
Andreas Färber 已提交
749
tests/ipoctal232-test$(EXESUF): tests/ipoctal232-test.o
A
Andreas Färber 已提交
750
tests/qom-test$(EXESUF): tests/qom-test.o
751
tests/test-hmp$(EXESUF): tests/test-hmp.o
752
tests/machine-none-test$(EXESUF): tests/machine-none-test.o
753
tests/drive_del-test$(EXESUF): tests/drive_del-test.o $(libqos-virtio-obj-y)
754
tests/nvme-test$(EXESUF): tests/nvme-test.o $(libqos-pc-obj-y)
A
Andreas Färber 已提交
755
tests/pvpanic-test$(EXESUF): tests/pvpanic-test.o
A
Andreas Färber 已提交
756
tests/i82801b11-test$(EXESUF): tests/i82801b11-test.o
A
Andreas Färber 已提交
757
tests/ac97-test$(EXESUF): tests/ac97-test.o
A
Andreas Färber 已提交
758
tests/es1370-test$(EXESUF): tests/es1370-test.o
A
Andreas Färber 已提交
759
tests/intel-hda-test$(EXESUF): tests/intel-hda-test.o
A
Andreas Färber 已提交
760
tests/ioh3420-test$(EXESUF): tests/ioh3420-test.o
761
tests/usb-hcd-ohci-test$(EXESUF): tests/usb-hcd-ohci-test.o $(libqos-usb-obj-y)
762
tests/usb-hcd-uhci-test$(EXESUF): tests/usb-hcd-uhci-test.o $(libqos-usb-obj-y)
763
tests/usb-hcd-ehci-test$(EXESUF): tests/usb-hcd-ehci-test.o $(libqos-usb-obj-y)
764
tests/usb-hcd-xhci-test$(EXESUF): tests/usb-hcd-xhci-test.o $(libqos-usb-obj-y)
765
tests/cpu-plug-test$(EXESUF): tests/cpu-plug-test.o
766
tests/migration-test$(EXESUF): tests/migration-test.o
767
tests/vhost-user-test$(EXESUF): tests/vhost-user-test.o $(test-util-obj-y) \
M
Marc-André Lureau 已提交
768 769
	$(qtest-obj-y) $(test-io-obj-y) $(libqos-virtio-obj-y) $(libqos-pc-obj-y) \
	$(chardev-obj-y)
770
tests/qemu-iotests/socket_scm_helper$(EXESUF): tests/qemu-iotests/socket_scm_helper.o
771
tests/test-qemu-opts$(EXESUF): tests/test-qemu-opts.o $(test-util-obj-y)
772
tests/test-keyval$(EXESUF): tests/test-keyval.o $(test-util-obj-y) $(test-qapi-obj-y)
773
tests/test-write-threshold$(EXESUF): tests/test-write-threshold.o $(test-block-obj-y)
774
tests/test-netfilter$(EXESUF): tests/test-netfilter.o $(qtest-obj-y)
775
tests/test-filter-mirror$(EXESUF): tests/test-filter-mirror.o $(qtest-obj-y)
776
tests/test-filter-redirector$(EXESUF): tests/test-filter-redirector.o $(qtest-obj-y)
777
tests/test-x86-cpuid-compat$(EXESUF): tests/test-x86-cpuid-compat.o $(qtest-obj-y)
778
tests/ivshmem-test$(EXESUF): tests/ivshmem-test.o contrib/ivshmem-server/ivshmem-server.o $(libqos-pc-obj-y) $(libqos-spapr-obj-y)
P
Paolo Bonzini 已提交
779
tests/megasas-test$(EXESUF): tests/megasas-test.o $(libqos-spapr-obj-y) $(libqos-pc-obj-y)
780
tests/vhost-user-bridge$(EXESUF): tests/vhost-user-bridge.o $(test-util-obj-y) libvhost-user.a
F
Fam Zheng 已提交
781
tests/test-uuid$(EXESUF): tests/test-uuid.o $(test-util-obj-y)
782
tests/test-arm-mptimer$(EXESUF): tests/test-arm-mptimer.o
783
tests/test-qapi-util$(EXESUF): tests/test-qapi-util.o $(test-util-obj-y)
784
tests/numa-test$(EXESUF): tests/numa-test.o
785
tests/vmgenid-test$(EXESUF): tests/vmgenid-test.o tests/boot-sector.o tests/acpi-utils.o
786
tests/sdhci-test$(EXESUF): tests/sdhci-test.o $(libqos-pc-obj-y)
787
tests/cdrom-test$(EXESUF): tests/cdrom-test.o tests/boot-sector.o $(libqos-obj-y)
B
Blue Swirl 已提交
788

789
tests/migration/stress$(EXESUF): tests/migration/stress.o
790
	$(call quiet-command, $(LINKPROG) -static -O3 $(PTHREAD_LIB) -o $@ $< ,"LINK","$(TARGET_DIR)$@")
791 792 793 794 795 796 797 798 799 800

INITRD_WORK_DIR=tests/migration/initrd

tests/migration/initrd-stress.img: tests/migration/stress$(EXESUF)
	mkdir -p $(INITRD_WORK_DIR)
	cp $< $(INITRD_WORK_DIR)/init
	(cd $(INITRD_WORK_DIR) && (find | cpio --quiet -o -H newc | gzip -9)) > $@
	rm $(INITRD_WORK_DIR)/init
	rmdir $(INITRD_WORK_DIR)

801 802
# QTest rules

803
TARGETS=$(patsubst %-softmmu,%, $(filter %-softmmu,$(TARGET_DIRS)))
804
ifeq ($(CONFIG_POSIX),y)
M
Markus Armbruster 已提交
805
QTEST_TARGETS = $(TARGETS)
806
check-qtest-y=$(foreach TARGET,$(TARGETS), $(check-qtest-$(TARGET)-y))
M
Markus Armbruster 已提交
807 808 809
check-qtest-y += $(check-qtest-generic-y)
else
QTEST_TARGETS =
810
endif
811

812
qtest-obj-y = tests/libqtest.o $(test-util-obj-y)
813 814
$(check-qtest-y): $(qtest-obj-y)

815 816
tests/test-qga$(EXESUF): qemu-ga$(EXESUF)
tests/test-qga$(EXESUF): tests/test-qga.o $(qtest-obj-y)
817

P
Paolo Bonzini 已提交
818
SPEED = quick
819

P
Paolo Bonzini 已提交
820
# gtester tests, possibly with verbose output
821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853
# do_test_tap runs all tests, even if some of them fail, while do_test_human
# stops at the first failure unless -k is given on the command line

define do_test_human_k
        $(quiet-@)rc=0; $(foreach COMMAND, $1, \
          $(call quiet-command-run, \
            export MALLOC_PERTURB_=$${MALLOC_PERTURB_:-$$(( $${RANDOM:-0} % 255 + 1))} $2; \
              $(COMMAND) -m=$(SPEED) -k --tap < /dev/null \
              | ./scripts/tap-driver.pl --test-name="$(notdir $(COMMAND))" $(if $(V),, --show-failures-only) \
              || rc=$$?;, "TEST", "$@: $(COMMAND)")) exit $$rc
endef
define do_test_human_no_k
        $(foreach COMMAND, $1, \
          $(call quiet-command, \
            MALLOC_PERTURB_=$${MALLOC_PERTURB_:-$$(( $${RANDOM:-0} % 255 + 1))} $2 \
              $(COMMAND) -m=$(SPEED) -k --tap < /dev/null \
              | ./scripts/tap-driver.pl --test-name="$(notdir $(COMMAND))" $(if $(V),, --show-failures-only), \
              "TEST", "$@: $(COMMAND)")
)
endef
do_test_human = \
        $(if $(findstring k, $(MAKEFLAGS)), $(do_test_human_k), $(do_test_human_no_k))

define do_test_tap
	$(call quiet-command, \
          { export MALLOC_PERTURB_=$${MALLOC_PERTURB_:-$$(( $${RANDOM:-0} % 255 + 1))} $2; \
            $(foreach COMMAND, $1, \
	      $(COMMAND) -m=$(SPEED) -k --tap < /dev/null \
	      | sed "s/^[a-z][a-z]* [0-9]* /&$(notdir $(COMMAND)) /" || true; ) } \
	      | ./scripts/tap-merge.pl | tee "$@" \
	      | ./scripts/tap-driver.pl $(if $(V),, --show-failures-only), \
	  "TAP","$@")
endef
854

855
.PHONY: $(patsubst %, check-qtest-%, $(QTEST_TARGETS))
856
$(patsubst %, check-qtest-%, $(QTEST_TARGETS)): check-qtest-%: subdir-%-softmmu $(check-qtest-y)
857 858 859
	$(call do_test_human,$(check-qtest-$*-y) $(check-qtest-generic-y), \
	  QTEST_QEMU_BINARY=$*-softmmu/qemu-system-$* \
	  QTEST_QEMU_IMG=qemu-img$(EXESUF))
860

861 862
check-unit: $(check-unit-y)
	$(call do_test_human, $^)
863

864 865
check-speed: $(check-speed-y)
	$(call do_test_human, $^)
K
Kevin Wolf 已提交
866

867
# gtester tests with TAP output
868

869 870 871 872
$(patsubst %, check-report-qtest-%.tap, $(QTEST_TARGETS)): check-report-qtest-%.tap: $(check-qtest-y)
	$(call do_test_tap, $(check-qtest-$*-y) $(check-qtest-generic-y), \
	  QTEST_QEMU_BINARY=$*-softmmu/qemu-system-$* \
	  QTEST_QEMU_IMG=qemu-img$(EXESUF))
K
Kevin Wolf 已提交
873

874 875
check-report-unit.tap: $(check-unit-y)
	$(call do_test_tap,$^)
K
Kevin Wolf 已提交
876

877
# Reports and overall runs
K
Kevin Wolf 已提交
878

879 880
check-report.tap: $(patsubst %,check-report-qtest-%.tap, $(QTEST_TARGETS)) check-report-unit.tap
	$(call quiet-command,./scripts/tap-merge.py $^ > $@,"GEN","$@")
P
Paolo Bonzini 已提交
881

882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898
# FPU Emulation tests (aka softfloat)
#
# As we still have some places that need fixing the rules are a little
# more complex than they need to be and have to override some of the
# generic Makefile expansions. Once we are cleanly passing all
# the tests we can simplify the make syntax.

FP_TEST_BIN=$(BUILD_DIR)/tests/fp/fp-test

# the build dir is created by configure
.PHONY: $(FP_TEST_BIN)
$(FP_TEST_BIN):
	$(call quiet-command, \
	 	$(MAKE) $(SUBDIR_MAKEFLAGS) -C $(dir $@) V="$(V)" $(notdir $@), \
	         "BUILD", "$(notdir $@)")

# The full test suite can take a bit of time, default to a quick run
899 900
# "-l 2 -r all" can take more than a day for some operations and is best
# run manually
901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999
FP_TL=-l 1

# $1 = tests, $2 = description
test-softfloat = $(call quiet-command, \
			cd $(BUILD_DIR)/tests/fp && \
			./fp-test -s $(FP_TL) $1 > $2.out 2>&1 || \
			(cat $2.out && exit 1;), \
			"FLOAT TEST", $2)

# Conversion Routines:
# FIXME: i32_to_extF80 (broken), i64_to_extF80 (broken)
#        ui32_to_f128 (not implemented), f128_to_ui32 (not implemented)
#        extF80_roundToInt (broken)
#
check-softfloat-conv: $(FP_TEST_BIN)
	$(call test-softfloat, \
		i32_to_f16 i64_to_f16 \
		i32_to_f32 i64_to_f32 \
		i32_to_f64 i64_to_f64 \
		i32_to_f128 i64_to_f128, int-to-float)
	$(call test-softfloat, \
		ui32_to_f16 ui64_to_f16 \
		ui32_to_f32 ui64_to_f32 \
		ui32_to_f64 ui64_to_f64 \
		ui64_to_f128, uint-to-float)
	$(call test-softfloat, \
		f16_to_i32 f16_to_i32_r_minMag \
		f32_to_i32 f32_to_i32_r_minMag \
		f64_to_i32 f64_to_i32_r_minMag \
		extF80_to_i32 extF80_to_i32_r_minMag \
		f128_to_i32 f128_to_i32_r_minMag \
		f16_to_i64 f16_to_i64_r_minMag \
		f32_to_i64 f32_to_i64_r_minMag \
		f64_to_i64 f64_to_i64_r_minMag \
		extF80_to_i64 extF80_to_i64_r_minMag \
		f128_to_i64 f128_to_i64_r_minMag, \
		float-to-int)
	$(call test-softfloat, \
		f16_to_ui32 f16_to_ui32_r_minMag \
		f32_to_ui32 f32_to_ui32_r_minMag \
		f64_to_ui32 f64_to_ui32_r_minMag \
		f16_to_ui64 f16_to_ui64_r_minMag \
		f32_to_ui64 f32_to_ui64_r_minMag \
		f64_to_ui64 f64_to_ui64_r_minMag, \
		float-to-uint)
	$(call test-softfloat, \
		f16_roundToInt f32_roundToInt \
		f64_roundToInt f128_roundToInt, \
		round-to-integer)

# Generic rule for all float operations
#
# Some patterns are overidden due to broken or missing tests.
# Hopefully these can be removed over time.

check-softfloat-%: $(FP_TEST_BIN)
	$(call test-softfloat, f16_$* f32_$* f64_$* extF80_$* f128_$*, $*)

# Float Compare routines
SF_COMPARE_OPS=eq eq_signaling le le_quiet lt_quiet
SF_COMPARE_RULES=$(patsubst %,check-softfloat-%, $(SF_COMPARE_OPS))

# FIXME: extF80_le_quiet (broken)
check-softfloat-le_quiet: $(FP_TEST_BIN)
	$(call test-softfloat, 				\
		f16_le_quiet f32_le_quiet f64_le_quiet  \
		f128_le_quiet, 				\
		le_quiet)

# FIXME: extF80_lt_quiet (broken)
check-softfloat-lt_quiet: $(FP_TEST_BIN)
	$(call test-softfloat, 				\
		f16_lt_quiet f32_lt_quiet f64_lt_quiet  \
		f128_lt_quiet, 				\
		lt_quiet)

.PHONY: check-softfloat-compare
check-softfloat-compare: $(SF_COMPARE_RULES)

# Math Operations

# FIXME: extF80_mulAdd (missing)
check-softfloat-mulAdd: $(FP_TEST_BIN)
	$(call test-softfloat, \
		f16_mulAdd f32_mulAdd f64_mulAdd f128_mulAdd, \
		mulAdd)

# FIXME: extF80_rem (broken)
check-softfloat-rem: $(FP_TEST_BIN)
	$(call test-softfloat, \
		f16_rem f32_rem f64_rem f128_rem, \
		rem)

SF_MATH_OPS=add sub mul mulAdd div rem sqrt
SF_MATH_RULES=$(patsubst %,check-softfloat-%, $(SF_MATH_OPS))

.PHONY: check-softfloat-ops
check-softfloat-ops: $(SF_MATH_RULES)

1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011
# Finally a generic rule to test all of softfoat. If TCG isnt't
# enabled we define a null operation which skips the tests.

.PHONY: check-softfloat
ifeq ($(CONFIG_TCG),y)
check-softfloat: check-softfloat-conv check-softfloat-compare check-softfloat-ops
else
check-softfloat:
	$(call quiet-command, /bin/true, "FLOAT TEST", \
		"SKIPPED for non-TCG builds")
endif

1012 1013
# Per guest TCG tests

1014
LINUX_USER_TARGETS=$(filter %-linux-user,$(TARGET_DIRS))
1015 1016 1017 1018
BUILD_TCG_TARGET_RULES=$(patsubst %,build-tcg-tests-%, $(LINUX_USER_TARGETS))
CLEAN_TCG_TARGET_RULES=$(patsubst %,clean-tcg-tests-%, $(LINUX_USER_TARGETS))
RUN_TCG_TARGET_RULES=$(patsubst %,run-tcg-tests-%, $(LINUX_USER_TARGETS))

1019 1020
ifeq ($(HAVE_USER_DOCKER),y)
# Probe for the Docker Builds needed for each build
1021
$(foreach PROBE_TARGET,$(TARGET_DIRS), 				\
1022 1023 1024 1025 1026
	$(eval -include $(SRC_PATH)/tests/tcg/Makefile.probe) 	\
	$(if $(DOCKER_PREREQ), 					\
		$(eval build-tcg-tests-$(PROBE_TARGET): $(DOCKER_PREREQ))))
endif

1027
build-tcg-tests-%:
1028 1029 1030
	$(call quiet-command,$(MAKE) $(SUBDIR_MAKEFLAGS) -C $* V="$(V)" \
		SKIP_DOCKER_BUILD=1 TARGET_DIR="$*/" guest-tests, \
		"BUILD", "TCG tests for $*")
1031 1032

run-tcg-tests-%: % build-tcg-tests-%
1033 1034 1035
	$(call quiet-command,$(MAKE) $(SUBDIR_MAKEFLAGS) -C $* V="$(V)" \
		SKIP_DOCKER_BUILD=1 TARGET_DIR="$*/" run-guest-tests, \
		"RUN", "TCG tests for $*")
1036 1037 1038 1039 1040 1041 1042 1043

clean-tcg-tests-%:
	$(call quiet-command,$(MAKE) $(SUBDIR_MAKEFLAGS) -C $* V="$(V)" TARGET_DIR="$*/" clean-guest-tests,)

.PHONY: build-tcg
build-tcg: $(BUILD_TCG_TARGET_RULES)

.PHONY: check-tcg
1044
check-tcg: check-softfloat $(RUN_TCG_TARGET_RULES)
1045 1046 1047

.PHONY: clean-tcg
clean-tcg: $(CLEAN_TCG_TARGET_RULES)
P
Paolo Bonzini 已提交
1048 1049 1050

# Other tests

1051
QEMU_IOTESTS_HELPERS-$(call land,$(CONFIG_SOFTMMU),$(CONFIG_LINUX)) = tests/qemu-iotests/socket_scm_helper$(EXESUF)
1052

P
Paolo Bonzini 已提交
1053
.PHONY: check-tests/qemu-iotests-quick.sh
1054
check-tests/qemu-iotests-quick.sh: tests/qemu-iotests-quick.sh qemu-img$(EXESUF) qemu-io$(EXESUF) $(QEMU_IOTESTS_HELPERS-y)
P
Paolo Bonzini 已提交
1055 1056
	$<

1057 1058
.PHONY: $(patsubst %, check-%, $(check-qapi-schema-y))
$(patsubst %, check-%, $(check-qapi-schema-y)): check-%.json: $(SRC_PATH)/%.json
1059
	$(call quiet-command, PYTHONPATH=$(SRC_PATH)/scripts \
M
Matthias Maier 已提交
1060
		$(PYTHON) $(SRC_PATH)/tests/qapi-schema/test-qapi.py \
1061
		$^ >$*.test.out 2>$*.test.err; \
1062
		echo $$? >$*.test.exit, \
1063
		"TEST","$*.out")
1064
	@# Sanitize error messages (make them independent of build directory)
1065 1066 1067
	@perl -p -e 's|\Q$(SRC_PATH)\E/||g' $*.test.err | diff -u $(SRC_PATH)/$*.err -
	@diff -u $(SRC_PATH)/$*.out $*.test.out
	@diff -u $(SRC_PATH)/$*.exit $*.test.exit
1068

1069 1070
.PHONY: check-tests/qapi-schema/doc-good.texi
check-tests/qapi-schema/doc-good.texi: tests/qapi-schema/doc-good.test.texi
1071
	@diff -u $(SRC_PATH)/tests/qapi-schema/doc-good.texi $<
1072

R
Richard Henderson 已提交
1073 1074 1075 1076 1077 1078 1079
.PHONY: check-decodetree
check-decodetree:
	$(call quiet-command, \
	  cd $(SRC_PATH)/tests/decode && \
          ./check.sh "$(PYTHON)" "$(SRC_PATH)/scripts/decodetree.py", \
          TEST, decodetree.py)

C
Cleber Rosa 已提交
1080 1081
# Python venv for running tests

1082
.PHONY: check-venv check-acceptance
C
Cleber Rosa 已提交
1083 1084 1085

TESTS_VENV_DIR=$(BUILD_DIR)/tests/venv
TESTS_VENV_REQ=$(SRC_PATH)/tests/requirements.txt
1086 1087 1088 1089 1090
TESTS_RESULTS_DIR=$(BUILD_DIR)/tests/results
# Controls the output generated by Avocado when running tests.
# Any number of command separated loggers are accepted.  For more
# information please refer to "avocado --help".
AVOCADO_SHOW=none
C
Cleber Rosa 已提交
1091

1092
ifneq ($(findstring v2,"v$(PYTHON_VERSION)"),v2)
C
Cleber Rosa 已提交
1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105
$(TESTS_VENV_DIR): $(TESTS_VENV_REQ)
	$(call quiet-command, \
            $(PYTHON) -m venv --system-site-packages $@, \
            VENV, $@)
	$(call quiet-command, \
            $(TESTS_VENV_DIR)/bin/python -m pip -q install -r $(TESTS_VENV_REQ), \
            PIP, $(TESTS_VENV_REQ))
	$(call quiet-command, touch $@)
else
$(TESTS_VENV_DIR):
	$(error "venv directory for tests requires Python 3")
endif

1106 1107 1108 1109
$(TESTS_RESULTS_DIR):
	$(call quiet-command, mkdir -p $@, \
            MKDIR, $@)

C
Cleber Rosa 已提交
1110 1111
check-venv: $(TESTS_VENV_DIR)

1112 1113 1114 1115 1116 1117 1118
check-acceptance: check-venv $(TESTS_RESULTS_DIR)
	$(call quiet-command, \
            $(TESTS_VENV_DIR)/bin/python -m avocado \
            --show=$(AVOCADO_SHOW) run --job-results-dir=$(TESTS_RESULTS_DIR) \
            --failfast=on $(SRC_PATH)/tests/acceptance, \
            "AVOCADO", "tests/acceptance")

P
Paolo Bonzini 已提交
1119 1120
# Consolidated targets

W
Wenchao Xia 已提交
1121
.PHONY: check-qapi-schema check-qtest check-unit check check-clean
1122
check-qapi-schema: $(patsubst %,check-%, $(check-qapi-schema-y)) check-tests/qapi-schema/doc-good.texi
1123
check-qtest: $(patsubst %,check-qtest-%, $(QTEST_TARGETS))
P
Paolo Bonzini 已提交
1124
check-block: $(patsubst %,check-%, $(check-block-y))
1125
check: check-qapi-schema check-unit check-softfloat check-qtest check-decodetree
W
Wenchao Xia 已提交
1126
check-clean:
A
Andreas Färber 已提交
1127
	rm -rf $(check-unit-y) tests/*.o $(QEMU_IOTESTS_HELPERS-y)
1128
	rm -rf $(sort $(foreach target,$(SYSEMU_TARGET_LIST), $(check-qtest-$(target)-y)) $(check-qtest-generic-y))
1129
	rm -f tests/test-qapi-gen-timestamp
1130
	rm -rf $(TESTS_VENV_DIR) $(TESTS_RESULTS_DIR)
W
Wenchao Xia 已提交
1131 1132

clean: check-clean
1133

1134 1135 1136 1137
# Build the help program automatically

all: $(QEMU_IOTESTS_HELPERS-y)

1138
-include $(wildcard tests/*.d)
A
Anthony Liguori 已提交
1139
-include $(wildcard tests/libqos/*.d)
1140 1141

endif