Makefile.include 53.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)
73
check-unit-y += tests/test-bdrv-graph-mod$(EXESUF)
A
Alberto Garcia 已提交
74
check-unit-y += tests/test-blockjob$(EXESUF)
S
Stefan Hajnoczi 已提交
75
check-unit-y += tests/test-blockjob-txn$(EXESUF)
76
check-unit-y += tests/test-block-backend$(EXESUF)
77
check-unit-y += tests/test-block-iothread$(EXESUF)
78
check-unit-y += tests/test-image-locking$(EXESUF)
79 80
check-unit-y += tests/test-x86-cpuid$(EXESUF)
# all code tested by test-x86-cpuid is inside topology.h
81
ifeq ($(CONFIG_SOFTMMU),y)
O
Orit Wasserman 已提交
82
check-unit-y += tests/test-xbzrle$(EXESUF)
83 84
check-unit-$(CONFIG_POSIX) += tests/test-vmstate$(EXESUF)
endif
85
check-unit-y += tests/test-cutils$(EXESUF)
86
check-unit-y += tests/test-shift128$(EXESUF)
87
check-unit-y += tests/test-mul64$(EXESUF)
88 89
check-unit-y += tests/test-int128$(EXESUF)
# all code tested by test-int128 is inside int128.h
P
Paolo Bonzini 已提交
90
check-unit-y += tests/rcutorture$(EXESUF)
M
Mike Day 已提交
91
check-unit-y += tests/test-rcu-list$(EXESUF)
E
Emilio G. Cota 已提交
92
check-unit-y += tests/test-rcu-simpleq$(EXESUF)
E
Emilio G. Cota 已提交
93
check-unit-y += tests/test-rcu-tailq$(EXESUF)
E
Emilio G. Cota 已提交
94
check-unit-y += tests/test-qdist$(EXESUF)
E
Emilio G. Cota 已提交
95
check-unit-y += tests/test-qht$(EXESUF)
96
check-unit-y += tests/test-qht-par$(EXESUF)
97
check-unit-y += tests/test-bitops$(EXESUF)
A
Alex Bennée 已提交
98
check-unit-y += tests/test-bitcnt$(EXESUF)
99
check-unit-y += tests/test-qdev-global-props$(EXESUF)
I
Igor Mammedov 已提交
100
check-unit-y += tests/check-qom-interface$(EXESUF)
101
check-unit-y += tests/check-qom-proplist$(EXESUF)
L
Leandro Dorileo 已提交
102
check-unit-y += tests/test-qemu-opts$(EXESUF)
M
Markus Armbruster 已提交
103
check-unit-y += tests/test-keyval$(EXESUF)
104
check-unit-y += tests/test-write-threshold$(EXESUF)
105
check-unit-y += tests/test-crypto-hash$(EXESUF)
106
check-speed-y += tests/benchmark-crypto-hash$(EXESUF)
107
check-unit-y += tests/test-crypto-hmac$(EXESUF)
108
check-speed-y += tests/benchmark-crypto-hmac$(EXESUF)
109
check-unit-y += tests/test-crypto-cipher$(EXESUF)
110
check-speed-y += tests/benchmark-crypto-cipher$(EXESUF)
111
check-unit-y += tests/test-crypto-secret$(EXESUF)
112
check-unit-$(CONFIG_GNUTLS) += tests/test-crypto-tlscredsx509$(EXESUF)
113
check-unit-$(CONFIG_GNUTLS) += tests/test-crypto-tlssession$(EXESUF)
114
ifneq (,$(findstring qemu-ga,$(TOOLS)))
115
check-unit-$(call land,$(CONFIG_LINUX),$(CONFIG_VIRTIO_SERIAL)) += tests/test-qga$(EXESUF)
116
endif
117
check-unit-y += tests/test-timed-average$(EXESUF)
118
check-unit-$(CONFIG_INOTIFY1) += tests/test-util-filemonitor$(EXESUF)
119
check-unit-y += tests/test-util-sockets$(EXESUF)
120
check-unit-y += tests/test-authz-simple$(EXESUF)
121
check-unit-y += tests/test-authz-list$(EXESUF)
122
check-unit-y += tests/test-authz-listfile$(EXESUF)
123
check-unit-$(CONFIG_AUTH_PAM) += tests/test-authz-pam$(EXESUF)
124
check-unit-y += tests/test-io-task$(EXESUF)
125
check-unit-y += tests/test-io-channel-socket$(EXESUF)
D
Daniel P. Berrange 已提交
126
check-unit-y += tests/test-io-channel-file$(EXESUF)
D
Daniel P. Berrange 已提交
127
check-unit-$(CONFIG_GNUTLS) += tests/test-io-channel-tls$(EXESUF)
128
check-unit-y += tests/test-io-channel-command$(EXESUF)
129
check-unit-y += tests/test-io-channel-buffer$(EXESUF)
130
check-unit-y += tests/test-base64$(EXESUF)
131
check-unit-$(if $(CONFIG_NETTLE),y,$(CONFIG_GCRYPT)) += tests/test-crypto-pbkdf$(EXESUF)
132
check-unit-y += tests/test-crypto-ivgen$(EXESUF)
133
check-unit-y += tests/test-crypto-afsplit$(EXESUF)
134
check-unit-y += tests/test-crypto-xts$(EXESUF)
135
check-unit-y += tests/test-crypto-block$(EXESUF)
136
check-unit-y += tests/test-logging$(EXESUF)
137
check-unit-$(CONFIG_REPLICATION) += tests/test-replication$(EXESUF)
138
check-unit-y += tests/test-bufferiszero$(EXESUF)
F
Fam Zheng 已提交
139
check-unit-y += tests/test-uuid$(EXESUF)
P
Paolo Bonzini 已提交
140
check-unit-y += tests/ptimer-test$(EXESUF)
141
check-unit-y += tests/test-qapi-util$(EXESUF)
P
Paolo Bonzini 已提交
142 143 144

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

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

148
check-qtest-generic-y += tests/qmp-test$(EXESUF)
149 150
check-qtest-generic-y += tests/qmp-cmd-test$(EXESUF)

151
check-qtest-generic-y += tests/device-introspect-test$(EXESUF)
152
check-qtest-generic-y += tests/cdrom-test$(EXESUF)
M
Markus Armbruster 已提交
153

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

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

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

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

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

234
check-qtest-alpha-y += tests/boot-serial-test$(EXESUF)
235
check-qtest-alpha-$(CONFIG_VGA) += tests/display-vga-test$(EXESUF)
236

237
check-qtest-hppa-y += tests/boot-serial-test$(EXESUF)
238
check-qtest-hppa-$(CONFIG_VGA) += tests/display-vga-test$(EXESUF)
239

240 241
check-qtest-m68k-y = tests/boot-serial-test$(EXESUF)

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

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

check-qtest-mips64-$(CONFIG_ISA_TESTDEV) = tests/endianness-test$(EXESUF)
248
check-qtest-mips64-$(CONFIG_VGA) += tests/display-vga-test$(EXESUF)
249 250

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

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

255
check-qtest-ppc-$(CONFIG_ISA_TESTDEV) = tests/endianness-test$(EXESUF)
256 257 258
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)
259
check-qtest-ppc-y += tests/boot-serial-test$(EXESUF)
260
check-qtest-ppc-$(CONFIG_M48T59) += tests/m48t59-test$(EXESUF)
261

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

282 283 284 285
check-qtest-sh4-$(CONFIG_ISA_TESTDEV) = tests/endianness-test$(EXESUF)

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

286
check-qtest-sparc-y += tests/prom-env-test$(EXESUF)
287
check-qtest-sparc-y += tests/m48t59-test$(EXESUF)
288
check-qtest-sparc-y += tests/boot-serial-test$(EXESUF)
289

290
check-qtest-sparc64-$(CONFIG_ISA_TESTDEV) = tests/endianness-test$(EXESUF)
291
check-qtest-sparc64-y += tests/prom-env-test$(EXESUF)
292
check-qtest-sparc64-y += tests/boot-serial-test$(EXESUF)
293

294
check-qtest-arm-y += tests/tmp105-test$(EXESUF)
295
check-qtest-arm-y += tests/pca9552-test$(EXESUF)
T
Thomas Huth 已提交
296
check-qtest-arm-y += tests/ds1338-test$(EXESUF)
297
check-qtest-arm-y += tests/microbit-test$(EXESUF)
C
Cédric Le Goater 已提交
298
check-qtest-arm-y += tests/m25p80-test$(EXESUF)
299
check-qtest-arm-$(CONFIG_VIRTIO_BLK) += tests/virtio-blk-test$(EXESUF)
300
check-qtest-arm-y += tests/test-arm-mptimer$(EXESUF)
301
check-qtest-arm-y += tests/boot-serial-test$(EXESUF)
302
check-qtest-arm-$(CONFIG_SDHCI) += tests/sdhci-test$(EXESUF)
303
check-qtest-arm-y += tests/hexloader-test$(EXESUF)
304

305
check-qtest-aarch64-y = tests/numa-test$(EXESUF)
306
check-qtest-aarch64-$(CONFIG_SDHCI) += tests/sdhci-test$(EXESUF)
307
check-qtest-aarch64-y += tests/boot-serial-test$(EXESUF)
W
Wei Huang 已提交
308
check-qtest-aarch64-y += tests/migration-test$(EXESUF)
309

310
check-qtest-microblazeel-y += $(check-qtest-microblaze-y)
311

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

314
check-qtest-s390x-y = tests/boot-serial-test$(EXESUF)
315
check-qtest-s390x-$(CONFIG_SLIRP) += tests/pxe-test$(EXESUF)
316 317 318
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)
319
check-qtest-s390x-y += tests/drive_del-test$(EXESUF)
320
check-qtest-s390x-y += tests/device-plug-test$(EXESUF)
321
check-qtest-s390x-y += tests/virtio-ccw-test$(EXESUF)
322
check-qtest-s390x-y += tests/cpu-plug-test$(EXESUF)
323
check-qtest-s390x-y += tests/migration-test$(EXESUF)
324

325
check-qtest-generic-y += tests/machine-none-test$(EXESUF)
M
Markus Armbruster 已提交
326
check-qtest-generic-y += tests/qom-test$(EXESUF)
327
check-qtest-generic-y += tests/test-hmp$(EXESUF)
328

329
qapi-schema += alternate-any.json
E
Eric Blake 已提交
330 331 332 333
qapi-schema += alternate-array.json
qapi-schema += alternate-base.json
qapi-schema += alternate-clash.json
qapi-schema += alternate-conflict-dict.json
334 335
qapi-schema += alternate-conflict-enum-bool.json
qapi-schema += alternate-conflict-enum-int.json
E
Eric Blake 已提交
336
qapi-schema += alternate-conflict-string.json
337 338
qapi-schema += alternate-conflict-bool-string.json
qapi-schema += alternate-conflict-num-string.json
E
Eric Blake 已提交
339
qapi-schema += alternate-empty.json
340
qapi-schema += alternate-invalid-dict.json
E
Eric Blake 已提交
341 342 343 344 345 346
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
347 348 349 350
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 已提交
351 352 353
qapi-schema += args-int.json
qapi-schema += args-invalid.json
qapi-schema += args-member-array-bad.json
354
qapi-schema += args-member-case.json
E
Eric Blake 已提交
355
qapi-schema += args-member-unknown.json
356
qapi-schema += args-name-clash.json
E
Eric Blake 已提交
357 358 359 360 361
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
362 363 364 365
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 已提交
366 367 368
qapi-schema += bad-type-bool.json
qapi-schema += bad-type-dict.json
qapi-schema += bad-type-int.json
E
Eric Blake 已提交
369 370
qapi-schema += base-cycle-direct.json
qapi-schema += base-cycle-indirect.json
E
Eric Blake 已提交
371 372
qapi-schema += command-int.json
qapi-schema += comments.json
373
qapi-schema += doc-bad-alternate-member.json
374
qapi-schema += doc-bad-command-arg.json
375
qapi-schema += doc-bad-section.json
M
Marc-André Lureau 已提交
376
qapi-schema += doc-bad-symbol.json
377
qapi-schema += doc-bad-union-member.json
378 379
qapi-schema += doc-before-include.json
qapi-schema += doc-before-pragma.json
M
Marc-André Lureau 已提交
380 381 382 383 384 385
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
386
qapi-schema += doc-good.json
M
Marc-André Lureau 已提交
387 388 389 390 391 392 393 394 395
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
396
qapi-schema += doc-missing.json
397
qapi-schema += doc-no-symbol.json
E
Eric Blake 已提交
398 399 400 401
qapi-schema += double-data.json
qapi-schema += double-type.json
qapi-schema += duplicate-key.json
qapi-schema += empty.json
402
qapi-schema += enum-bad-member.json
E
Eric Blake 已提交
403 404 405
qapi-schema += enum-bad-name.json
qapi-schema += enum-bad-prefix.json
qapi-schema += enum-clash-member.json
406
qapi-schema += enum-dict-member-unknown.json
407
qapi-schema += enum-if-invalid.json
E
Eric Blake 已提交
408
qapi-schema += enum-int-member.json
409
qapi-schema += enum-member-case.json
E
Eric Blake 已提交
410 411 412 413 414
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
415
qapi-schema += event-boxed-empty.json
E
Eric Blake 已提交
416
qapi-schema += event-case.json
417
qapi-schema += event-member-invalid-dict.json
E
Eric Blake 已提交
418 419 420 421 422 423
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
424
qapi-schema += flat-union-clash-member.json
E
Eric Blake 已提交
425
qapi-schema += flat-union-empty.json
E
Eric Blake 已提交
426
qapi-schema += flat-union-inline.json
427
qapi-schema += flat-union-inline-invalid-dict.json
E
Eric Blake 已提交
428 429 430
qapi-schema += flat-union-int-branch.json
qapi-schema += flat-union-invalid-branch-key.json
qapi-schema += flat-union-invalid-discriminator.json
431
qapi-schema += flat-union-invalid-if-discriminator.json
E
Eric Blake 已提交
432 433 434 435 436 437 438
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
439
qapi-schema += include-extra-junk.json
E
Eric Blake 已提交
440 441 442 443 444 445 446 447 448 449 450 451 452 453 454
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-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
455
qapi-schema += nested-struct-data-invalid-dict.json
E
Eric Blake 已提交
456
qapi-schema += non-objects.json
P
Peter Xu 已提交
457
qapi-schema += oob-test.json
458
qapi-schema += allow-preconfig-test.json
459 460
qapi-schema += pragma-doc-required-crap.json
qapi-schema += pragma-extra-junk.json
461
qapi-schema += pragma-name-case-whitelist-crap.json
462
qapi-schema += pragma-non-dict.json
463
qapi-schema += pragma-returns-whitelist-crap.json
E
Eric Blake 已提交
464 465 466 467 468 469
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
470
qapi-schema += reserved-command-q.json
471
qapi-schema += reserved-enum-q.json
472 473
qapi-schema += reserved-member-has.json
qapi-schema += reserved-member-q.json
E
Eric Blake 已提交
474
qapi-schema += reserved-member-u.json
475
qapi-schema += reserved-member-underscore.json
476 477
qapi-schema += reserved-type-kind.json
qapi-schema += reserved-type-list.json
E
Eric Blake 已提交
478 479 480 481 482 483 484 485
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
486
qapi-schema += struct-member-invalid-dict.json
E
Eric Blake 已提交
487 488 489 490 491 492 493 494
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
495
qapi-schema += union-base-empty.json
E
Eric Blake 已提交
496
qapi-schema += union-base-no-discriminator.json
497
qapi-schema += union-branch-case.json
498
qapi-schema += union-branch-invalid-dict.json
499
qapi-schema += union-clash-branches.json
E
Eric Blake 已提交
500
qapi-schema += union-empty.json
E
Eric Blake 已提交
501 502 503 504 505
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 已提交
506 507


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

510 511 512 513 514 515 516 517 518 519 520 521
GENERATED_FILES += tests/test-qapi-types.h \
	tests/include/test-qapi-types-sub-module.h \
	tests/test-qapi-types-sub-sub-module.h \
	tests/test-qapi-visit.h \
	tests/include/test-qapi-visit-sub-module.h \
	tests/test-qapi-visit-sub-sub-module.h \
	tests/test-qapi-commands.h \
	tests/include/test-qapi-commands-sub-module.h \
	tests/test-qapi-commands-sub-sub-module.h \
	tests/test-qapi-events.h \
	tests/include/test-qapi-events-sub-module.h \
	tests/test-qapi-events-sub-sub-module.h \
522
	tests/test-qapi-introspect.h
P
Paolo Bonzini 已提交
523

524
test-obj-y = tests/check-qnum.o tests/check-qstring.o tests/check-qdict.o \
525
	tests/check-qlist.o tests/check-qnull.o tests/check-qobject.o \
526
	tests/check-qjson.o tests/check-qlit.o \
527
	tests/check-block-qtest.o \
P
Paolo Bonzini 已提交
528
	tests/test-coroutine.o tests/test-string-output-visitor.o \
529
	tests/test-string-input-visitor.o tests/test-qobject-output-visitor.o \
E
Eric Blake 已提交
530
	tests/test-clone-visitor.o \
531
	tests/test-qobject-input-visitor.o \
532
	tests/test-qmp-cmds.o tests/test-visitor-serialization.o \
533
	tests/test-x86-cpuid.o tests/test-mul64.o tests/test-int128.o \
P
Paolo Bonzini 已提交
534
	tests/test-opts-visitor.o tests/test-qmp-event.o \
E
Emilio G. Cota 已提交
535
	tests/rcutorture.o tests/test-rcu-list.o \
E
Emilio G. Cota 已提交
536
	tests/test-rcu-simpleq.o \
E
Emilio G. Cota 已提交
537
	tests/test-rcu-tailq.o \
538
	tests/test-qdist.o tests/test-shift128.o \
E
Emilio G. Cota 已提交
539
	tests/test-qht.o tests/qht-bench.o tests/test-qht-par.o \
E
Emilio G. Cota 已提交
540
	tests/atomic_add-bench.o tests/atomic64-bench.o
P
Paolo Bonzini 已提交
541 542

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

545 546

# Deps that are common to various different sets of tests below
P
Paolo Bonzini 已提交
547
test-util-obj-y = libqemuutil.a
548
test-qom-obj-y = $(qom-obj-y) $(test-util-obj-y)
549 550 551 552 553 554
test-qapi-obj-y = tests/test-qapi-types.o \
	tests/include/test-qapi-types-sub-module.o \
	tests/test-qapi-types-sub-sub-module.o \
	tests/test-qapi-visit.o \
	tests/include/test-qapi-visit-sub-module.o \
	tests/test-qapi-visit-sub-sub-module.o \
555
	tests/test-qapi-introspect.o \
556
	$(test-qom-obj-y)
557 558
benchmark-crypto-obj-y = $(authz-obj-y) $(crypto-obj-y) $(test-qom-obj-y)
test-crypto-obj-y = $(authz-obj-y) $(crypto-obj-y) $(test-qom-obj-y)
559
test-io-obj-y = $(io-obj-y) $(test-crypto-obj-y)
560
test-authz-obj-y = $(test-qom-obj-y) $(authz-obj-y)
561
test-block-obj-y = $(block-obj-y) $(test-io-obj-y) tests/iothread.o
562

563
tests/check-qnum$(EXESUF): tests/check-qnum.o $(test-util-obj-y)
564 565
tests/check-qstring$(EXESUF): tests/check-qstring.o $(test-util-obj-y)
tests/check-qdict$(EXESUF): tests/check-qdict.o $(test-util-obj-y)
566
tests/check-block-qdict$(EXESUF): tests/check-block-qdict.o $(test-util-obj-y)
567
tests/check-qlist$(EXESUF): tests/check-qlist.o $(test-util-obj-y)
E
Eric Blake 已提交
568
tests/check-qnull$(EXESUF): tests/check-qnull.o $(test-util-obj-y)
569
tests/check-qobject$(EXESUF): tests/check-qobject.o $(test-util-obj-y)
570
tests/check-qjson$(EXESUF): tests/check-qjson.o $(test-util-obj-y)
571
tests/check-qlit$(EXESUF): tests/check-qlit.o $(test-util-obj-y)
572 573
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)
574

575
tests/test-char$(EXESUF): tests/test-char.o $(test-util-obj-y) $(qtest-obj-y) $(test-io-obj-y) $(chardev-obj-y)
576 577
tests/test-coroutine$(EXESUF): tests/test-coroutine.o $(test-block-obj-y)
tests/test-aio$(EXESUF): tests/test-aio.o $(test-block-obj-y)
578
tests/test-aio-multithread$(EXESUF): tests/test-aio-multithread.o $(test-block-obj-y)
579
tests/test-throttle$(EXESUF): tests/test-throttle.o $(test-block-obj-y)
580
tests/test-bdrv-drain$(EXESUF): tests/test-bdrv-drain.o $(test-block-obj-y) $(test-util-obj-y)
581
tests/test-bdrv-graph-mod$(EXESUF): tests/test-bdrv-graph-mod.o $(test-block-obj-y) $(test-util-obj-y)
A
Alberto Garcia 已提交
582
tests/test-blockjob$(EXESUF): tests/test-blockjob.o $(test-block-obj-y) $(test-util-obj-y)
S
Stefan Hajnoczi 已提交
583
tests/test-blockjob-txn$(EXESUF): tests/test-blockjob-txn.o $(test-block-obj-y) $(test-util-obj-y)
584
tests/test-block-backend$(EXESUF): tests/test-block-backend.o $(test-block-obj-y) $(test-util-obj-y)
585
tests/test-block-iothread$(EXESUF): tests/test-block-iothread.o $(test-block-obj-y) $(test-util-obj-y)
586
tests/test-image-locking$(EXESUF): tests/test-image-locking.o $(test-block-obj-y) $(test-util-obj-y)
587 588
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)
589
tests/test-hbitmap$(EXESUF): tests/test-hbitmap.o $(test-util-obj-y) $(test-crypto-obj-y)
590
tests/test-x86-cpuid$(EXESUF): tests/test-x86-cpuid.o
591
tests/test-xbzrle$(EXESUF): tests/test-xbzrle.o migration/xbzrle.o migration/page_cache.o $(test-util-obj-y)
592
tests/test-cutils$(EXESUF): tests/test-cutils.o util/cutils.o $(test-util-obj-y)
593
tests/test-int128$(EXESUF): tests/test-int128.o
594 595
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 已提交
596
tests/test-rcu-simpleq$(EXESUF): tests/test-rcu-simpleq.o $(test-util-obj-y)
E
Emilio G. Cota 已提交
597
tests/test-rcu-tailq$(EXESUF): tests/test-rcu-tailq.o $(test-util-obj-y)
E
Emilio G. Cota 已提交
598
tests/test-qdist$(EXESUF): tests/test-qdist.o $(test-util-obj-y)
E
Emilio G. Cota 已提交
599
tests/test-qht$(EXESUF): tests/test-qht.o $(test-util-obj-y)
600
tests/test-qht-par$(EXESUF): tests/test-qht-par.o tests/qht-bench$(EXESUF) $(test-util-obj-y)
601
tests/qht-bench$(EXESUF): tests/qht-bench.o $(test-util-obj-y)
602
tests/test-bufferiszero$(EXESUF): tests/test-bufferiszero.o $(test-util-obj-y)
E
Emilio G. Cota 已提交
603
tests/atomic_add-bench$(EXESUF): tests/atomic_add-bench.o $(test-util-obj-y)
E
Emilio G. Cota 已提交
604
tests/atomic64-bench$(EXESUF): tests/atomic64-bench.o $(test-util-obj-y)
P
Paolo Bonzini 已提交
605

606 607 608
tests/fp/%:
	$(MAKE) -C $(dir $@) $(notdir $@)

609
tests/test-qdev-global-props$(EXESUF): tests/test-qdev-global-props.o \
610
	hw/core/qdev.o hw/core/qdev-properties.o hw/core/hotplug.o\
611
	hw/core/bus.o \
612
	hw/core/irq.o \
613
	hw/core/fw-path-provider.o \
614
	hw/core/reset.o \
615
	$(test-qapi-obj-y)
616
tests/test-vmstate$(EXESUF): tests/test-vmstate.o \
617
	migration/vmstate.o migration/vmstate-types.o migration/qemu-file.o \
618 619
        migration/qemu-file-channel.o migration/qjson.o \
	$(test-io-obj-y)
620
tests/test-timed-average$(EXESUF): tests/test-timed-average.o $(test-util-obj-y)
P
Paolo Bonzini 已提交
621
tests/test-base64$(EXESUF): tests/test-base64.o $(test-util-obj-y)
622
tests/ptimer-test$(EXESUF): tests/ptimer-test.o tests/ptimer-test-stubs.o hw/core/ptimer.o
P
Paolo Bonzini 已提交
623

624 625
tests/test-logging$(EXESUF): tests/test-logging.o $(test-util-obj-y)

626 627 628
tests/test-replication$(EXESUF): tests/test-replication.o $(test-util-obj-y) \
	$(test-block-obj-y)

629
tests/test-qapi-types.c tests/test-qapi-types.h \
630 631 632 633
tests/include/test-qapi-types-sub-module.c \
tests/include/test-qapi-types-sub-module.h \
tests/test-qapi-types-sub-sub-module.c \
tests/test-qapi-types-sub-sub-module.h \
634
tests/test-qapi-visit.c tests/test-qapi-visit.h \
635 636 637 638
tests/include/test-qapi-visit-sub-module.c \
tests/include/test-qapi-visit-sub-module.h \
tests/test-qapi-visit-sub-sub-module.c \
tests/test-qapi-visit-sub-sub-module.h \
639
tests/test-qapi-commands.h tests/test-qapi-commands.c \
640 641 642 643
tests/include/test-qapi-commands-sub-module.h \
tests/include/test-qapi-commands-sub-module.c \
tests/test-qapi-commands-sub-sub-module.h \
tests/test-qapi-commands-sub-sub-module.c \
644
tests/test-qapi-events.c tests/test-qapi-events.h \
645 646 647 648
tests/include/test-qapi-events-sub-module.c \
tests/include/test-qapi-events-sub-module.h \
tests/test-qapi-events-sub-sub-module.c \
tests/test-qapi-events-sub-sub-module.h \
649
tests/test-qapi-introspect.c tests/test-qapi-introspect.h: \
650
tests/test-qapi-gen-timestamp ;
651 652 653 654 655
tests/test-qapi-gen-timestamp: \
		$(SRC_PATH)/tests/qapi-schema/qapi-schema-test.json \
		$(SRC_PATH)/tests/qapi-schema/include/sub-module.json \
		$(SRC_PATH)/tests/qapi-schema/sub-sub-module.json \
		$(qapi-py)
M
Matthias Maier 已提交
656
	$(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-gen.py \
657 658 659 660 661
		-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 已提交
662
	$(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-gen.py \
663
		-o tests/qapi-schema -p "doc-good-" $<, \
664
		"GEN","$@")
665 666
	@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]
667

668 669
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)
670
tests/test-qmp-event$(EXESUF): tests/test-qmp-event.o $(test-qapi-obj-y) tests/test-qapi-events.o
671
tests/test-qobject-output-visitor$(EXESUF): tests/test-qobject-output-visitor.o $(test-qapi-obj-y)
E
Eric Blake 已提交
672
tests/test-clone-visitor$(EXESUF): tests/test-clone-visitor.o $(test-qapi-obj-y)
673
tests/test-qobject-input-visitor$(EXESUF): tests/test-qobject-input-visitor.o $(test-qapi-obj-y)
674
tests/test-qmp-cmds$(EXESUF): tests/test-qmp-cmds.o tests/test-qapi-commands.o $(test-qapi-obj-y)
675 676
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)
677

678
tests/test-shift128$(EXESUF): tests/test-shift128.o $(test-util-obj-y)
679 680
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 已提交
681
tests/test-bitcnt$(EXESUF): tests/test-bitcnt.o $(test-util-obj-y)
682
tests/test-crypto-hash$(EXESUF): tests/test-crypto-hash.o $(test-crypto-obj-y)
683
tests/benchmark-crypto-hash$(EXESUF): tests/benchmark-crypto-hash.o $(test-crypto-obj-y)
684
tests/test-crypto-hmac$(EXESUF): tests/test-crypto-hmac.o $(test-crypto-obj-y)
685
tests/benchmark-crypto-hmac$(EXESUF): tests/benchmark-crypto-hmac.o $(test-crypto-obj-y)
686
tests/test-crypto-cipher$(EXESUF): tests/test-crypto-cipher.o $(test-crypto-obj-y)
687
tests/benchmark-crypto-cipher$(EXESUF): tests/benchmark-crypto-cipher.o $(test-crypto-obj-y)
688
tests/test-crypto-secret$(EXESUF): tests/test-crypto-secret.o $(test-crypto-obj-y)
689
tests/test-crypto-xts$(EXESUF): tests/test-crypto-xts.o $(test-crypto-obj-y)
690 691 692 693 694 695

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)
696 697
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)
698 699

tests/test-crypto-tlssession.o-cflags := $(TASN1_CFLAGS)
700
tests/test-crypto-tlssession$(EXESUF): tests/test-crypto-tlssession.o \
701 702 703
	tests/crypto-tls-x509-helpers.o tests/pkix_asn1_tab.o \
	tests/crypto-tls-psk-helpers.o \
        $(test-crypto-obj-y)
704 705
tests/test-util-filemonitor$(EXESUF): tests/test-util-filemonitor.o \
	$(test-util-obj-y)
706 707
tests/test-util-sockets$(EXESUF): tests/test-util-sockets.o \
	tests/socket-helpers.o $(test-util-obj-y)
708
tests/test-authz-simple$(EXESUF): tests/test-authz-simple.o $(test-authz-obj-y)
709
tests/test-authz-list$(EXESUF): tests/test-authz-list.o $(test-authz-obj-y)
710
tests/test-authz-listfile$(EXESUF): tests/test-authz-listfile.o $(test-authz-obj-y)
711
tests/test-authz-pam$(EXESUF): tests/test-authz-pam.o $(test-authz-obj-y)
712
tests/test-io-task$(EXESUF): tests/test-io-task.o $(test-io-obj-y)
713
tests/test-io-channel-socket$(EXESUF): tests/test-io-channel-socket.o \
714
        tests/io-channel-helpers.o tests/socket-helpers.o $(test-io-obj-y)
715
tests/tpm-crb-swtpm-test$(EXESUF): tests/tpm-crb-swtpm-test.o tests/tpm-emu.o \
716
	tests/tpm-util.o tests/tpm-tests.o $(test-io-obj-y)
717
tests/tpm-crb-test$(EXESUF): tests/tpm-crb-test.o tests/tpm-emu.o $(test-io-obj-y)
718 719
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)
720
tests/tpm-tis-test$(EXESUF): tests/tpm-tis-test.o tests/tpm-emu.o $(test-io-obj-y)
D
Daniel P. Berrange 已提交
721 722
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 已提交
723 724 725
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)
726 727
tests/test-io-channel-command$(EXESUF): tests/test-io-channel-command.o \
        tests/io-channel-helpers.o $(test-io-obj-y)
728 729
tests/test-io-channel-buffer$(EXESUF): tests/test-io-channel-buffer.o \
        tests/io-channel-helpers.o $(test-io-obj-y)
730
tests/test-crypto-pbkdf$(EXESUF): tests/test-crypto-pbkdf.o $(test-crypto-obj-y)
731
tests/test-crypto-ivgen$(EXESUF): tests/test-crypto-ivgen.o $(test-crypto-obj-y)
732
tests/test-crypto-afsplit$(EXESUF): tests/test-crypto-afsplit.o $(test-crypto-obj-y)
733
tests/test-crypto-block$(EXESUF): tests/test-crypto-block.o $(test-crypto-obj-y)
734

735 736 737 738
libqgraph-obj-y = tests/libqos/qgraph.o

libqos-obj-y = $(libqgraph-obj-y) tests/libqos/pci.o tests/libqos/fw_cfg.o
libqos-obj-y += tests/libqos/malloc.o tests/libqos/malloc-generic.o
J
John Snow 已提交
739
libqos-obj-y += tests/libqos/i2c.o tests/libqos/libqos.o
740 741
libqos-spapr-obj-y = $(libqos-obj-y) tests/libqos/malloc-spapr.o
libqos-spapr-obj-y += tests/libqos/libqos-spapr.o
742
libqos-spapr-obj-y += tests/libqos/rtas.o
L
Laurent Vivier 已提交
743
libqos-spapr-obj-y += tests/libqos/pci-spapr.o
744
libqos-pc-obj-y = $(libqos-obj-y) tests/libqos/pci-pc.o
J
John Snow 已提交
745
libqos-pc-obj-y += tests/libqos/malloc-pc.o tests/libqos/libqos-pc.o
J
John Snow 已提交
746
libqos-pc-obj-y += tests/libqos/ahci.o
A
Andreas Färber 已提交
747
libqos-omap-obj-y = $(libqos-obj-y) tests/libqos/i2c-omap.o
748
libqos-imx-obj-y = $(libqos-obj-y) tests/libqos/i2c-imx.o
749
libqos-usb-obj-y = $(libqos-spapr-obj-y) $(libqos-pc-obj-y) tests/libqos/usb.o
750 751
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

752 753 754
# Devices
qos-test-obj-y = tests/qos-test.o $(libqgraph-obj-y)
qos-test-obj-y += $(libqos-pc-obj-y)
755
qos-test-obj-y += tests/libqos/sdhci.o
756

757 758 759
# Machines
qos-test-obj-y += tests/libqos/x86_64_pc-machine.o

760 761 762 763
check-unit-y += tests/test-qgraph$(EXESUF)
tests/test-qgraph$(EXESUF): tests/test-qgraph.o $(libqgraph-obj-y)

check-qtest-generic-y += tests/qos-test$(EXESUF)
764
tests/qos-test$(EXESUF): $(qos-test-obj-y)
765

766
tests/qmp-test$(EXESUF): tests/qmp-test.o
767
tests/qmp-cmd-test$(EXESUF): tests/qmp-cmd-test.o
768
tests/device-introspect-test$(EXESUF): tests/device-introspect-test.o
769 770
tests/rtc-test$(EXESUF): tests/rtc-test.o
tests/m48t59-test$(EXESUF): tests/m48t59-test.o
771
tests/hexloader-test$(EXESUF): tests/hexloader-test.o
772
tests/endianness-test$(EXESUF): tests/endianness-test.o
773
tests/spapr-phb-test$(EXESUF): tests/spapr-phb-test.o $(libqos-obj-y)
774
tests/prom-env-test$(EXESUF): tests/prom-env-test.o $(libqos-obj-y)
775
tests/rtas-test$(EXESUF): tests/rtas-test.o $(libqos-spapr-obj-y)
776
tests/fdc-test$(EXESUF): tests/fdc-test.o
K
Kevin Wolf 已提交
777
tests/ide-test$(EXESUF): tests/ide-test.o $(libqos-pc-obj-y)
J
John Snow 已提交
778
tests/ahci-test$(EXESUF): tests/ahci-test.o $(libqos-pc-obj-y)
C
Corey Minyard 已提交
779 780
tests/ipmi-kcs-test$(EXESUF): tests/ipmi-kcs-test.o
tests/ipmi-bt-test$(EXESUF): tests/ipmi-bt-test.o
781
tests/hd-geo-test$(EXESUF): tests/hd-geo-test.o
782
tests/boot-order-test$(EXESUF): tests/boot-order-test.o $(libqos-obj-y)
783
tests/boot-serial-test$(EXESUF): tests/boot-serial-test.o $(libqos-obj-y)
784
tests/bios-tables-test$(EXESUF): tests/bios-tables-test.o \
785
	tests/boot-sector.o tests/acpi-utils.o $(libqos-obj-y)
786
tests/pxe-test$(EXESUF): tests/pxe-test.o tests/boot-sector.o $(libqos-obj-y)
A
Andreas Färber 已提交
787
tests/tmp105-test$(EXESUF): tests/tmp105-test.o $(libqos-omap-obj-y)
788
tests/pca9552-test$(EXESUF): tests/pca9552-test.o $(libqos-omap-obj-y)
789
tests/ds1338-test$(EXESUF): tests/ds1338-test.o $(libqos-imx-obj-y)
790
tests/microbit-test$(EXESUF): tests/microbit-test.o
C
Cédric Le Goater 已提交
791
tests/m25p80-test$(EXESUF): tests/m25p80-test.o
792
tests/i440fx-test$(EXESUF): tests/i440fx-test.o $(libqos-pc-obj-y)
G
Gerd Hoffmann 已提交
793
tests/q35-test$(EXESUF): tests/q35-test.o $(libqos-pc-obj-y)
A
Anthony Liguori 已提交
794
tests/fw_cfg-test$(EXESUF): tests/fw_cfg-test.o $(libqos-pc-obj-y)
A
Andreas Färber 已提交
795
tests/e1000-test$(EXESUF): tests/e1000-test.o
796
tests/e1000e-test$(EXESUF): tests/e1000e-test.o $(libqos-pc-obj-y)
797
tests/rtl8139-test$(EXESUF): tests/rtl8139-test.o $(libqos-pc-obj-y)
A
Andreas Färber 已提交
798
tests/pcnet-test$(EXESUF): tests/pcnet-test.o
799
tests/pnv-xscom-test$(EXESUF): tests/pnv-xscom-test.o
A
Andreas Färber 已提交
800
tests/eepro100-test$(EXESUF): tests/eepro100-test.o
A
Andreas Färber 已提交
801
tests/vmxnet3-test$(EXESUF): tests/vmxnet3-test.o
A
Andreas Färber 已提交
802
tests/ne2000-test$(EXESUF): tests/ne2000-test.o
P
Paolo Bonzini 已提交
803
tests/wdt_ib700-test$(EXESUF): tests/wdt_ib700-test.o
804
tests/tco-test$(EXESUF): tests/tco-test.o $(libqos-pc-obj-y)
805
tests/virtio-balloon-test$(EXESUF): tests/virtio-balloon-test.o $(libqos-virtio-obj-y)
806
tests/virtio-blk-test$(EXESUF): tests/virtio-blk-test.o $(libqos-virtio-obj-y)
807
tests/virtio-ccw-test$(EXESUF): tests/virtio-ccw-test.o
808
tests/virtio-net-test$(EXESUF): tests/virtio-net-test.o $(libqos-pc-obj-y) $(libqos-virtio-obj-y)
809
tests/virtio-rng-test$(EXESUF): tests/virtio-rng-test.o $(libqos-pc-obj-y)
810
tests/virtio-scsi-test$(EXESUF): tests/virtio-scsi-test.o $(libqos-virtio-obj-y)
811
tests/virtio-9p-test$(EXESUF): tests/virtio-9p-test.o $(libqos-virtio-obj-y)
812 813
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 已提交
814
tests/tpci200-test$(EXESUF): tests/tpci200-test.o
G
Gerd Hoffmann 已提交
815
tests/display-vga-test$(EXESUF): tests/display-vga-test.o
A
Andreas Färber 已提交
816
tests/ipoctal232-test$(EXESUF): tests/ipoctal232-test.o
A
Andreas Färber 已提交
817
tests/qom-test$(EXESUF): tests/qom-test.o
818
tests/test-hmp$(EXESUF): tests/test-hmp.o
819
tests/machine-none-test$(EXESUF): tests/machine-none-test.o
820
tests/device-plug-test$(EXESUF): tests/device-plug-test.o
821
tests/drive_del-test$(EXESUF): tests/drive_del-test.o $(libqos-virtio-obj-y)
822
tests/nvme-test$(EXESUF): tests/nvme-test.o $(libqos-pc-obj-y)
A
Andreas Färber 已提交
823
tests/pvpanic-test$(EXESUF): tests/pvpanic-test.o
A
Andreas Färber 已提交
824
tests/i82801b11-test$(EXESUF): tests/i82801b11-test.o
A
Andreas Färber 已提交
825
tests/ac97-test$(EXESUF): tests/ac97-test.o
A
Andreas Färber 已提交
826
tests/es1370-test$(EXESUF): tests/es1370-test.o
A
Andreas Färber 已提交
827
tests/intel-hda-test$(EXESUF): tests/intel-hda-test.o
A
Andreas Färber 已提交
828
tests/ioh3420-test$(EXESUF): tests/ioh3420-test.o
829
tests/usb-hcd-ohci-test$(EXESUF): tests/usb-hcd-ohci-test.o $(libqos-usb-obj-y)
830
tests/usb-hcd-uhci-test$(EXESUF): tests/usb-hcd-uhci-test.o $(libqos-usb-obj-y)
831
tests/usb-hcd-ehci-test$(EXESUF): tests/usb-hcd-ehci-test.o $(libqos-usb-obj-y)
832
tests/usb-hcd-xhci-test$(EXESUF): tests/usb-hcd-xhci-test.o $(libqos-usb-obj-y)
833
tests/cpu-plug-test$(EXESUF): tests/cpu-plug-test.o
834
tests/migration-test$(EXESUF): tests/migration-test.o
835
tests/test-announce-self$(EXESUF): tests/test-announce-self.o
836
tests/vhost-user-test$(EXESUF): tests/vhost-user-test.o $(test-util-obj-y) \
M
Marc-André Lureau 已提交
837 838
	$(qtest-obj-y) $(test-io-obj-y) $(libqos-virtio-obj-y) $(libqos-pc-obj-y) \
	$(chardev-obj-y)
839
tests/qemu-iotests/socket_scm_helper$(EXESUF): tests/qemu-iotests/socket_scm_helper.o
840
tests/test-qemu-opts$(EXESUF): tests/test-qemu-opts.o $(test-util-obj-y)
841
tests/test-keyval$(EXESUF): tests/test-keyval.o $(test-util-obj-y) $(test-qapi-obj-y)
842
tests/test-write-threshold$(EXESUF): tests/test-write-threshold.o $(test-block-obj-y)
843
tests/test-netfilter$(EXESUF): tests/test-netfilter.o $(qtest-obj-y)
844
tests/test-filter-mirror$(EXESUF): tests/test-filter-mirror.o $(qtest-obj-y)
845
tests/test-filter-redirector$(EXESUF): tests/test-filter-redirector.o $(qtest-obj-y)
846
tests/test-x86-cpuid-compat$(EXESUF): tests/test-x86-cpuid-compat.o $(qtest-obj-y)
847
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 已提交
848
tests/megasas-test$(EXESUF): tests/megasas-test.o $(libqos-spapr-obj-y) $(libqos-pc-obj-y)
849
tests/vhost-user-bridge$(EXESUF): tests/vhost-user-bridge.o $(test-util-obj-y) libvhost-user.a
F
Fam Zheng 已提交
850
tests/test-uuid$(EXESUF): tests/test-uuid.o $(test-util-obj-y)
851
tests/test-arm-mptimer$(EXESUF): tests/test-arm-mptimer.o
852
tests/test-qapi-util$(EXESUF): tests/test-qapi-util.o $(test-util-obj-y)
853
tests/numa-test$(EXESUF): tests/numa-test.o
854
tests/vmgenid-test$(EXESUF): tests/vmgenid-test.o tests/boot-sector.o tests/acpi-utils.o
855
tests/sdhci-test$(EXESUF): tests/sdhci-test.o $(libqos-pc-obj-y)
856
tests/cdrom-test$(EXESUF): tests/cdrom-test.o tests/boot-sector.o $(libqos-obj-y)
B
Blue Swirl 已提交
857

858
tests/migration/stress$(EXESUF): tests/migration/stress.o
859
	$(call quiet-command, $(LINKPROG) -static -O3 $(PTHREAD_LIB) -o $@ $< ,"LINK","$(TARGET_DIR)$@")
860 861 862 863 864 865 866 867 868 869

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)

870 871
# QTest rules

872
TARGETS=$(patsubst %-softmmu,%, $(filter %-softmmu,$(TARGET_DIRS)))
873
ifeq ($(CONFIG_POSIX),y)
M
Markus Armbruster 已提交
874
QTEST_TARGETS = $(TARGETS)
875
check-qtest-y=$(foreach TARGET,$(TARGETS), $(check-qtest-$(TARGET)-y))
M
Markus Armbruster 已提交
876 877 878
check-qtest-y += $(check-qtest-generic-y)
else
QTEST_TARGETS =
879
endif
880

881
qtest-obj-y = tests/libqtest.o $(test-util-obj-y)
882 883
$(check-qtest-y): $(qtest-obj-y)

884 885
tests/test-qga$(EXESUF): qemu-ga$(EXESUF)
tests/test-qga$(EXESUF): tests/test-qga.o $(qtest-obj-y)
886

P
Paolo Bonzini 已提交
887
SPEED = quick
888

P
Paolo Bonzini 已提交
889
# gtester tests, possibly with verbose output
890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922
# 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
923

924
.PHONY: $(patsubst %, check-qtest-%, $(QTEST_TARGETS))
925
$(patsubst %, check-qtest-%, $(QTEST_TARGETS)): check-qtest-%: subdir-%-softmmu $(check-qtest-y)
926 927 928
	$(call do_test_human,$(check-qtest-$*-y) $(check-qtest-generic-y), \
	  QTEST_QEMU_BINARY=$*-softmmu/qemu-system-$* \
	  QTEST_QEMU_IMG=qemu-img$(EXESUF))
929

930 931
check-unit: $(check-unit-y)
	$(call do_test_human, $^)
932

933 934
check-speed: $(check-speed-y)
	$(call do_test_human, $^)
K
Kevin Wolf 已提交
935

936
# gtester tests with TAP output
937

938 939 940 941
$(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 已提交
942

943 944
check-report-unit.tap: $(check-unit-y)
	$(call do_test_tap,$^)
K
Kevin Wolf 已提交
945

946
# Reports and overall runs
K
Kevin Wolf 已提交
947

948 949
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 已提交
950

951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967
# 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
968 969
# "-l 2 -r all" can take more than a day for some operations and is best
# run manually
970
FP_TL=-l 1 -r all
971

972
# $1 = tests, $2 = description, $3 = test flags
973 974
test-softfloat = $(call quiet-command, \
			cd $(BUILD_DIR)/tests/fp && \
975
			./fp-test -s $(if $3,$3,$(FP_TL)) $1 > $2.out 2>&1 || \
976 977 978 979 980
			(cat $2.out && exit 1;), \
			"FLOAT TEST", $2)

# Conversion Routines:
# FIXME: i32_to_extF80 (broken), i64_to_extF80 (broken)
981
#        ui32_to_f128 (not implemented), extF80_roundToInt (broken)
982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009
#
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 \
1010
		f128_to_ui32 f128_to_ui32_r_minMag \
1011 1012
		f16_to_ui64 f16_to_ui64_r_minMag \
		f32_to_ui64 f32_to_ui64_r_minMag \
1013 1014
		f64_to_ui64 f64_to_ui64_r_minMag \
		f128_to_ui64 f128_to_ui64_r_minMag, \
1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055
		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, \
1056
		mulAdd,-l 1)
1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069

# 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)

1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081
# 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

1082 1083
# Per guest TCG tests

1084
LINUX_USER_TARGETS=$(filter %-linux-user,$(TARGET_DIRS))
1085 1086 1087 1088
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))

1089 1090
ifeq ($(HAVE_USER_DOCKER),y)
# Probe for the Docker Builds needed for each build
1091
$(foreach PROBE_TARGET,$(TARGET_DIRS), 				\
1092 1093 1094 1095 1096
	$(eval -include $(SRC_PATH)/tests/tcg/Makefile.probe) 	\
	$(if $(DOCKER_PREREQ), 					\
		$(eval build-tcg-tests-$(PROBE_TARGET): $(DOCKER_PREREQ))))
endif

1097
build-tcg-tests-%:
1098 1099 1100
	$(call quiet-command,$(MAKE) $(SUBDIR_MAKEFLAGS) -C $* V="$(V)" \
		SKIP_DOCKER_BUILD=1 TARGET_DIR="$*/" guest-tests, \
		"BUILD", "TCG tests for $*")
1101 1102

run-tcg-tests-%: % build-tcg-tests-%
1103 1104 1105
	$(call quiet-command,$(MAKE) $(SUBDIR_MAKEFLAGS) -C $* V="$(V)" \
		SKIP_DOCKER_BUILD=1 TARGET_DIR="$*/" run-guest-tests, \
		"RUN", "TCG tests for $*")
1106 1107 1108 1109 1110 1111 1112 1113

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
1114
check-tcg: check-softfloat $(RUN_TCG_TARGET_RULES)
1115 1116 1117

.PHONY: clean-tcg
clean-tcg: $(CLEAN_TCG_TARGET_RULES)
P
Paolo Bonzini 已提交
1118 1119 1120

# Other tests

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

P
Paolo Bonzini 已提交
1123
.PHONY: check-tests/qemu-iotests-quick.sh
1124
check-tests/qemu-iotests-quick.sh: tests/qemu-iotests-quick.sh qemu-img$(EXESUF) qemu-io$(EXESUF) $(QEMU_IOTESTS_HELPERS-y)
P
Paolo Bonzini 已提交
1125 1126
	$<

1127 1128
.PHONY: $(patsubst %, check-%, $(check-qapi-schema-y))
$(patsubst %, check-%, $(check-qapi-schema-y)): check-%.json: $(SRC_PATH)/%.json
1129
	$(call quiet-command, PYTHONPATH=$(SRC_PATH)/scripts \
M
Matthias Maier 已提交
1130
		$(PYTHON) $(SRC_PATH)/tests/qapi-schema/test-qapi.py \
1131
		$^ >$*.test.out 2>$*.test.err; \
1132
		echo $$? >$*.test.exit, \
1133
		"TEST","$*.out")
1134
	@# Sanitize error messages (make them independent of build directory)
1135 1136 1137
	@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
1138

1139 1140
.PHONY: check-tests/qapi-schema/doc-good.texi
check-tests/qapi-schema/doc-good.texi: tests/qapi-schema/doc-good.test.texi
1141
	@diff -u $(SRC_PATH)/tests/qapi-schema/doc-good.texi $<
1142

R
Richard Henderson 已提交
1143 1144 1145 1146 1147 1148 1149
.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 已提交
1150 1151
# Python venv for running tests

1152
.PHONY: check-venv check-acceptance
C
Cleber Rosa 已提交
1153 1154 1155

TESTS_VENV_DIR=$(BUILD_DIR)/tests/venv
TESTS_VENV_REQ=$(SRC_PATH)/tests/requirements.txt
1156 1157 1158 1159 1160
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 已提交
1161

1162
ifneq ($(findstring v2,"v$(PYTHON_VERSION)"),v2)
C
Cleber Rosa 已提交
1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175
$(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

1176 1177 1178 1179
$(TESTS_RESULTS_DIR):
	$(call quiet-command, mkdir -p $@, \
            MKDIR, $@)

C
Cleber Rosa 已提交
1180 1181
check-venv: $(TESTS_VENV_DIR)

1182 1183 1184 1185 1186 1187 1188
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 已提交
1189 1190
# Consolidated targets

W
Wenchao Xia 已提交
1191
.PHONY: check-qapi-schema check-qtest check-unit check check-clean
1192
check-qapi-schema: $(patsubst %,check-%, $(check-qapi-schema-y)) check-tests/qapi-schema/doc-good.texi
1193
check-qtest: $(patsubst %,check-qtest-%, $(QTEST_TARGETS))
P
Paolo Bonzini 已提交
1194
check-block: $(patsubst %,check-%, $(check-block-y))
1195
check: check-qapi-schema check-unit check-softfloat check-qtest check-decodetree
W
Wenchao Xia 已提交
1196
check-clean:
A
Andreas Färber 已提交
1197
	rm -rf $(check-unit-y) tests/*.o $(QEMU_IOTESTS_HELPERS-y)
1198
	rm -rf $(sort $(foreach target,$(SYSEMU_TARGET_LIST), $(check-qtest-$(target)-y)) $(check-qtest-generic-y))
1199
	rm -f tests/test-qapi-gen-timestamp
1200
	rm -rf $(TESTS_VENV_DIR) $(TESTS_RESULTS_DIR)
W
Wenchao Xia 已提交
1201 1202

clean: check-clean
1203

1204 1205 1206 1207
# Build the help program automatically

all: $(QEMU_IOTESTS_HELPERS-y)

1208
-include $(wildcard tests/*.d)
A
Anthony Liguori 已提交
1209
-include $(wildcard tests/libqos/*.d)
1210 1211

endif