Makefile.include 52.7 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-virtio-y += tests/virtio-scsi-test$(EXESUF)
A
Andreas Färber 已提交
157

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

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

220
check-qtest-alpha-y += tests/boot-serial-test$(EXESUF)
221
check-qtest-alpha-$(CONFIG_VGA) += tests/display-vga-test$(EXESUF)
222

223
check-qtest-hppa-y += tests/boot-serial-test$(EXESUF)
224
check-qtest-hppa-$(CONFIG_VGA) += tests/display-vga-test$(EXESUF)
225

226 227
check-qtest-m68k-y = tests/boot-serial-test$(EXESUF)

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

230
check-qtest-mips-$(CONFIG_ISA_TESTDEV) = tests/endianness-test$(EXESUF)
231
check-qtest-mips-$(CONFIG_VGA) += tests/display-vga-test$(EXESUF)
232 233

check-qtest-mips64-$(CONFIG_ISA_TESTDEV) = tests/endianness-test$(EXESUF)
234
check-qtest-mips64-$(CONFIG_VGA) += tests/display-vga-test$(EXESUF)
235 236

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

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

241
check-qtest-ppc-$(CONFIG_ISA_TESTDEV) = tests/endianness-test$(EXESUF)
242 243 244
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)
245
check-qtest-ppc-y += tests/boot-serial-test$(EXESUF)
246
check-qtest-ppc-$(CONFIG_M48T59) += tests/m48t59-test$(EXESUF)
247

248
check-qtest-ppc64-y += $(check-qtest-ppc-y)
249
check-qtest-ppc64-$(CONFIG_PSERIES) += tests/spapr-phb-test$(EXESUF)
250
check-qtest-ppc64-$(CONFIG_PSERIES) += tests/device-plug-test$(EXESUF)
251
check-qtest-ppc64-$(CONFIG_POWERNV) += tests/pnv-xscom-test$(EXESUF)
252
check-qtest-ppc64-y += tests/migration-test$(EXESUF)
253
check-qtest-ppc64-y += tests/test-announce-self$(EXESUF)
254
check-qtest-ppc64-$(CONFIG_PSERIES) += tests/rtas-test$(EXESUF)
255
check-qtest-ppc64-$(CONFIG_SLIRP) += tests/pxe-test$(EXESUF)
256
check-qtest-ppc64-$(CONFIG_USB_OHCI) += tests/usb-hcd-ohci-test$(EXESUF)
257
check-qtest-ppc64-$(CONFIG_USB_UHCI) += tests/usb-hcd-uhci-test$(EXESUF)
258
check-qtest-ppc64-$(CONFIG_USB_XHCI_NEC) += tests/usb-hcd-xhci-test$(EXESUF)
259
check-qtest-ppc64-$(CONFIG_VIRTIO) += $(check-qtest-virtio-y)
260
check-qtest-ppc64-$(CONFIG_SLIRP) += tests/test-netfilter$(EXESUF)
261
check-qtest-ppc64-$(CONFIG_POSIX) += tests/test-filter-mirror$(EXESUF)
262
check-qtest-ppc64-$(CONFIG_RTL8139_PCI) += tests/test-filter-redirector$(EXESUF)
263
check-qtest-ppc64-$(CONFIG_VGA) += tests/display-vga-test$(EXESUF)
264
check-qtest-ppc64-y += tests/numa-test$(EXESUF)
265
check-qtest-ppc64-$(CONFIG_IVSHMEM_DEVICE) += tests/ivshmem-test$(EXESUF)
266
check-qtest-ppc64-y += tests/cpu-plug-test$(EXESUF)
267

268 269 270 271
check-qtest-sh4-$(CONFIG_ISA_TESTDEV) = tests/endianness-test$(EXESUF)

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

272
check-qtest-sparc-y += tests/prom-env-test$(EXESUF)
273
check-qtest-sparc-y += tests/m48t59-test$(EXESUF)
274
check-qtest-sparc-y += tests/boot-serial-test$(EXESUF)
275

276
check-qtest-sparc64-$(CONFIG_ISA_TESTDEV) = tests/endianness-test$(EXESUF)
277
check-qtest-sparc64-y += tests/prom-env-test$(EXESUF)
278
check-qtest-sparc64-y += tests/boot-serial-test$(EXESUF)
279

280
check-qtest-arm-y += tests/tmp105-test$(EXESUF)
281
check-qtest-arm-y += tests/pca9552-test$(EXESUF)
T
Thomas Huth 已提交
282
check-qtest-arm-y += tests/ds1338-test$(EXESUF)
283
check-qtest-arm-y += tests/microbit-test$(EXESUF)
C
Cédric Le Goater 已提交
284
check-qtest-arm-y += tests/m25p80-test$(EXESUF)
285
check-qtest-arm-y += tests/test-arm-mptimer$(EXESUF)
286
check-qtest-arm-y += tests/boot-serial-test$(EXESUF)
287
check-qtest-arm-y += tests/hexloader-test$(EXESUF)
288

289
check-qtest-aarch64-y = tests/numa-test$(EXESUF)
290
check-qtest-aarch64-y += tests/boot-serial-test$(EXESUF)
W
Wei Huang 已提交
291
check-qtest-aarch64-y += tests/migration-test$(EXESUF)
292

293
check-qtest-microblazeel-y += $(check-qtest-microblaze-y)
294

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

297
check-qtest-s390x-y = tests/boot-serial-test$(EXESUF)
298
check-qtest-s390x-$(CONFIG_SLIRP) += tests/pxe-test$(EXESUF)
299 300 301
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)
302
check-qtest-s390x-y += tests/drive_del-test$(EXESUF)
303
check-qtest-s390x-y += tests/device-plug-test$(EXESUF)
304
check-qtest-s390x-y += tests/virtio-ccw-test$(EXESUF)
305
check-qtest-s390x-y += tests/cpu-plug-test$(EXESUF)
306
check-qtest-s390x-y += tests/migration-test$(EXESUF)
307

308
check-qtest-generic-y += tests/machine-none-test$(EXESUF)
M
Markus Armbruster 已提交
309
check-qtest-generic-y += tests/qom-test$(EXESUF)
310
check-qtest-generic-y += tests/test-hmp$(EXESUF)
311

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


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

493 494 495 496 497 498 499 500 501 502 503 504
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 \
505
	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 533 534 535 536 537
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 \
538
	tests/test-qapi-introspect.o \
539
	$(test-qom-obj-y)
540 541
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)
542
test-io-obj-y = $(io-obj-y) $(test-crypto-obj-y)
543
test-authz-obj-y = $(test-qom-obj-y) $(authz-obj-y)
544
test-block-obj-y = $(block-obj-y) $(test-io-obj-y) tests/iothread.o
545

546
tests/check-qnum$(EXESUF): tests/check-qnum.o $(test-util-obj-y)
547 548
tests/check-qstring$(EXESUF): tests/check-qstring.o $(test-util-obj-y)
tests/check-qdict$(EXESUF): tests/check-qdict.o $(test-util-obj-y)
549
tests/check-block-qdict$(EXESUF): tests/check-block-qdict.o $(test-util-obj-y)
550
tests/check-qlist$(EXESUF): tests/check-qlist.o $(test-util-obj-y)
E
Eric Blake 已提交
551
tests/check-qnull$(EXESUF): tests/check-qnull.o $(test-util-obj-y)
552
tests/check-qobject$(EXESUF): tests/check-qobject.o $(test-util-obj-y)
553
tests/check-qjson$(EXESUF): tests/check-qjson.o $(test-util-obj-y)
554
tests/check-qlit$(EXESUF): tests/check-qlit.o $(test-util-obj-y)
555 556
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)
557

558
tests/test-char$(EXESUF): tests/test-char.o $(test-util-obj-y) $(qtest-obj-y) $(test-io-obj-y) $(chardev-obj-y)
559 560
tests/test-coroutine$(EXESUF): tests/test-coroutine.o $(test-block-obj-y)
tests/test-aio$(EXESUF): tests/test-aio.o $(test-block-obj-y)
561
tests/test-aio-multithread$(EXESUF): tests/test-aio-multithread.o $(test-block-obj-y)
562
tests/test-throttle$(EXESUF): tests/test-throttle.o $(test-block-obj-y)
563
tests/test-bdrv-drain$(EXESUF): tests/test-bdrv-drain.o $(test-block-obj-y) $(test-util-obj-y)
564
tests/test-bdrv-graph-mod$(EXESUF): tests/test-bdrv-graph-mod.o $(test-block-obj-y) $(test-util-obj-y)
A
Alberto Garcia 已提交
565
tests/test-blockjob$(EXESUF): tests/test-blockjob.o $(test-block-obj-y) $(test-util-obj-y)
S
Stefan Hajnoczi 已提交
566
tests/test-blockjob-txn$(EXESUF): tests/test-blockjob-txn.o $(test-block-obj-y) $(test-util-obj-y)
567
tests/test-block-backend$(EXESUF): tests/test-block-backend.o $(test-block-obj-y) $(test-util-obj-y)
568
tests/test-block-iothread$(EXESUF): tests/test-block-iothread.o $(test-block-obj-y) $(test-util-obj-y)
569
tests/test-image-locking$(EXESUF): tests/test-image-locking.o $(test-block-obj-y) $(test-util-obj-y)
570 571
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)
572
tests/test-hbitmap$(EXESUF): tests/test-hbitmap.o $(test-util-obj-y) $(test-crypto-obj-y)
573
tests/test-x86-cpuid$(EXESUF): tests/test-x86-cpuid.o
574
tests/test-xbzrle$(EXESUF): tests/test-xbzrle.o migration/xbzrle.o migration/page_cache.o $(test-util-obj-y)
575
tests/test-cutils$(EXESUF): tests/test-cutils.o util/cutils.o $(test-util-obj-y)
576
tests/test-int128$(EXESUF): tests/test-int128.o
577 578
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 已提交
579
tests/test-rcu-simpleq$(EXESUF): tests/test-rcu-simpleq.o $(test-util-obj-y)
E
Emilio G. Cota 已提交
580
tests/test-rcu-tailq$(EXESUF): tests/test-rcu-tailq.o $(test-util-obj-y)
E
Emilio G. Cota 已提交
581
tests/test-qdist$(EXESUF): tests/test-qdist.o $(test-util-obj-y)
E
Emilio G. Cota 已提交
582
tests/test-qht$(EXESUF): tests/test-qht.o $(test-util-obj-y)
583
tests/test-qht-par$(EXESUF): tests/test-qht-par.o tests/qht-bench$(EXESUF) $(test-util-obj-y)
584
tests/qht-bench$(EXESUF): tests/qht-bench.o $(test-util-obj-y)
585
tests/test-bufferiszero$(EXESUF): tests/test-bufferiszero.o $(test-util-obj-y)
E
Emilio G. Cota 已提交
586
tests/atomic_add-bench$(EXESUF): tests/atomic_add-bench.o $(test-util-obj-y)
E
Emilio G. Cota 已提交
587
tests/atomic64-bench$(EXESUF): tests/atomic64-bench.o $(test-util-obj-y)
P
Paolo Bonzini 已提交
588

589 590 591
tests/fp/%:
	$(MAKE) -C $(dir $@) $(notdir $@)

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

607 608
tests/test-logging$(EXESUF): tests/test-logging.o $(test-util-obj-y)

609 610 611
tests/test-replication$(EXESUF): tests/test-replication.o $(test-util-obj-y) \
	$(test-block-obj-y)

612
tests/test-qapi-types.c tests/test-qapi-types.h \
613 614 615 616
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 \
617
tests/test-qapi-visit.c tests/test-qapi-visit.h \
618 619 620 621
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 \
622
tests/test-qapi-commands.h tests/test-qapi-commands.c \
623 624 625 626
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 \
627
tests/test-qapi-events.c tests/test-qapi-events.h \
628 629 630 631
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 \
632
tests/test-qapi-introspect.c tests/test-qapi-introspect.h: \
633
tests/test-qapi-gen-timestamp ;
634 635 636 637 638
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 已提交
639
	$(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-gen.py \
640 641 642 643 644
		-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 已提交
645
	$(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-gen.py \
646
		-o tests/qapi-schema -p "doc-good-" $<, \
647
		"GEN","$@")
648 649
	@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]
650

651 652
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)
653
tests/test-qmp-event$(EXESUF): tests/test-qmp-event.o $(test-qapi-obj-y) tests/test-qapi-events.o
654
tests/test-qobject-output-visitor$(EXESUF): tests/test-qobject-output-visitor.o $(test-qapi-obj-y)
E
Eric Blake 已提交
655
tests/test-clone-visitor$(EXESUF): tests/test-clone-visitor.o $(test-qapi-obj-y)
656
tests/test-qobject-input-visitor$(EXESUF): tests/test-qobject-input-visitor.o $(test-qapi-obj-y)
657
tests/test-qmp-cmds$(EXESUF): tests/test-qmp-cmds.o tests/test-qapi-commands.o $(test-qapi-obj-y)
658 659
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)
660

661
tests/test-shift128$(EXESUF): tests/test-shift128.o $(test-util-obj-y)
662 663
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 已提交
664
tests/test-bitcnt$(EXESUF): tests/test-bitcnt.o $(test-util-obj-y)
665
tests/test-crypto-hash$(EXESUF): tests/test-crypto-hash.o $(test-crypto-obj-y)
666
tests/benchmark-crypto-hash$(EXESUF): tests/benchmark-crypto-hash.o $(test-crypto-obj-y)
667
tests/test-crypto-hmac$(EXESUF): tests/test-crypto-hmac.o $(test-crypto-obj-y)
668
tests/benchmark-crypto-hmac$(EXESUF): tests/benchmark-crypto-hmac.o $(test-crypto-obj-y)
669
tests/test-crypto-cipher$(EXESUF): tests/test-crypto-cipher.o $(test-crypto-obj-y)
670
tests/benchmark-crypto-cipher$(EXESUF): tests/benchmark-crypto-cipher.o $(test-crypto-obj-y)
671
tests/test-crypto-secret$(EXESUF): tests/test-crypto-secret.o $(test-crypto-obj-y)
672
tests/test-crypto-xts$(EXESUF): tests/test-crypto-xts.o $(test-crypto-obj-y)
673 674 675 676 677 678

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)
679 680
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)
681 682

tests/test-crypto-tlssession.o-cflags := $(TASN1_CFLAGS)
683
tests/test-crypto-tlssession$(EXESUF): tests/test-crypto-tlssession.o \
684 685 686
	tests/crypto-tls-x509-helpers.o tests/pkix_asn1_tab.o \
	tests/crypto-tls-psk-helpers.o \
        $(test-crypto-obj-y)
687 688
tests/test-util-filemonitor$(EXESUF): tests/test-util-filemonitor.o \
	$(test-util-obj-y)
689 690
tests/test-util-sockets$(EXESUF): tests/test-util-sockets.o \
	tests/socket-helpers.o $(test-util-obj-y)
691
tests/test-authz-simple$(EXESUF): tests/test-authz-simple.o $(test-authz-obj-y)
692
tests/test-authz-list$(EXESUF): tests/test-authz-list.o $(test-authz-obj-y)
693
tests/test-authz-listfile$(EXESUF): tests/test-authz-listfile.o $(test-authz-obj-y)
694
tests/test-authz-pam$(EXESUF): tests/test-authz-pam.o $(test-authz-obj-y)
695
tests/test-io-task$(EXESUF): tests/test-io-task.o $(test-io-obj-y)
696
tests/test-io-channel-socket$(EXESUF): tests/test-io-channel-socket.o \
697
        tests/io-channel-helpers.o tests/socket-helpers.o $(test-io-obj-y)
698
tests/tpm-crb-swtpm-test$(EXESUF): tests/tpm-crb-swtpm-test.o tests/tpm-emu.o \
699
	tests/tpm-util.o tests/tpm-tests.o $(test-io-obj-y)
700
tests/tpm-crb-test$(EXESUF): tests/tpm-crb-test.o tests/tpm-emu.o $(test-io-obj-y)
701 702
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)
703
tests/tpm-tis-test$(EXESUF): tests/tpm-tis-test.o tests/tpm-emu.o $(test-io-obj-y)
D
Daniel P. Berrange 已提交
704 705
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 已提交
706 707 708
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)
709 710
tests/test-io-channel-command$(EXESUF): tests/test-io-channel-command.o \
        tests/io-channel-helpers.o $(test-io-obj-y)
711 712
tests/test-io-channel-buffer$(EXESUF): tests/test-io-channel-buffer.o \
        tests/io-channel-helpers.o $(test-io-obj-y)
713
tests/test-crypto-pbkdf$(EXESUF): tests/test-crypto-pbkdf.o $(test-crypto-obj-y)
714
tests/test-crypto-ivgen$(EXESUF): tests/test-crypto-ivgen.o $(test-crypto-obj-y)
715
tests/test-crypto-afsplit$(EXESUF): tests/test-crypto-afsplit.o $(test-crypto-obj-y)
716
tests/test-crypto-block$(EXESUF): tests/test-crypto-block.o $(test-crypto-obj-y)
717

718 719 720
libqgraph-obj-y = tests/libqos/qgraph.o

libqos-obj-y = $(libqgraph-obj-y) tests/libqos/pci.o tests/libqos/fw_cfg.o
P
Paolo Bonzini 已提交
721
libqos-obj-y += tests/libqos/malloc.o
J
John Snow 已提交
722
libqos-obj-y += tests/libqos/i2c.o tests/libqos/libqos.o
723 724
libqos-spapr-obj-y = $(libqos-obj-y) tests/libqos/malloc-spapr.o
libqos-spapr-obj-y += tests/libqos/libqos-spapr.o
725
libqos-spapr-obj-y += tests/libqos/rtas.o
L
Laurent Vivier 已提交
726
libqos-spapr-obj-y += tests/libqos/pci-spapr.o
727
libqos-pc-obj-y = $(libqos-obj-y) tests/libqos/pci-pc.o
J
John Snow 已提交
728
libqos-pc-obj-y += tests/libqos/malloc-pc.o tests/libqos/libqos-pc.o
J
John Snow 已提交
729
libqos-pc-obj-y += tests/libqos/ahci.o
A
Andreas Färber 已提交
730
libqos-omap-obj-y = $(libqos-obj-y) tests/libqos/i2c-omap.o
731
libqos-imx-obj-y = $(libqos-obj-y) tests/libqos/i2c-imx.o
732
libqos-usb-obj-y = $(libqos-spapr-obj-y) $(libqos-pc-obj-y) tests/libqos/usb.o
733 734
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

735 736
# Devices
qos-test-obj-y = tests/qos-test.o $(libqgraph-obj-y)
737
qos-test-obj-y += $(libqos-pc-obj-y) $(libqos-spapr-obj-y)
738
qos-test-obj-y += tests/libqos/e1000e.o
739
qos-test-obj-y += tests/libqos/sdhci.o
740
qos-test-obj-y += $(libqos-virtio-obj-y)
741
qos-test-obj-$(CONFIG_VIRTFS) += tests/libqos/virtio-9p.o
742
qos-test-obj-y += tests/libqos/virtio-balloon.o
743
qos-test-obj-y += tests/libqos/virtio-blk.o
744
qos-test-obj-y += tests/libqos/virtio-net.o
745
qos-test-obj-y += tests/libqos/virtio-rng.o
746
qos-test-obj-y += tests/libqos/virtio-serial.o
747

748
# Machines
749
qos-test-obj-y += tests/libqos/aarch64-xlnx-zcu102-machine.o
750
qos-test-obj-y += tests/libqos/arm-raspi2-machine.o
751
qos-test-obj-y += tests/libqos/arm-sabrelite-machine.o
752
qos-test-obj-y += tests/libqos/arm-smdkc210-machine.o
753
qos-test-obj-y += tests/libqos/arm-virt-machine.o
754
qos-test-obj-y += tests/libqos/arm-xilinx-zynq-a9-machine.o
755
qos-test-obj-y += tests/libqos/ppc64_pseries-machine.o
756 757
qos-test-obj-y += tests/libqos/x86_64_pc-machine.o

758
# Tests
759
qos-test-obj-y += tests/e1000e-test.o
760
qos-test-obj-y += tests/pci-test.o
761
qos-test-obj-y += tests/sdhci-test.o
P
Paolo Bonzini 已提交
762
qos-test-obj-$(CONFIG_VHOST_NET_USER) += tests/vhost-user-test.o $(chardev-obj-y) $(test-io-obj-y)
763
qos-test-obj-y += tests/virtio-test.o
764
qos-test-obj-$(CONFIG_VIRTFS) += tests/virtio-9p-test.o
P
Paolo Bonzini 已提交
765
qos-test-obj-y += tests/virtio-blk-test.o
766
qos-test-obj-y += tests/virtio-net-test.o
767
qos-test-obj-y += tests/virtio-rng-test.o
768
qos-test-obj-y += tests/virtio-serial-test.o
769

770 771 772 773
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)
774
tests/qos-test$(EXESUF): $(qos-test-obj-y)
775

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

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

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)

868 869
# QTest rules

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

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

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

P
Paolo Bonzini 已提交
885
SPEED = quick
886

P
Paolo Bonzini 已提交
887
# gtester tests, possibly with verbose output
888 889 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
# 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
921

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

928 929
check-unit: $(check-unit-y)
	$(call do_test_human, $^)
930

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

934
# gtester tests with TAP output
935

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

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

944
# Reports and overall runs
K
Kevin Wolf 已提交
945

946 947
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 已提交
948

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

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

# Conversion Routines:
# FIXME: i32_to_extF80 (broken), i64_to_extF80 (broken)
979
#        ui32_to_f128 (not implemented), extF80_roundToInt (broken)
980 981 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
#
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 \
1008
		f128_to_ui32 f128_to_ui32_r_minMag \
1009 1010
		f16_to_ui64 f16_to_ui64_r_minMag \
		f32_to_ui64 f32_to_ui64_r_minMag \
1011 1012
		f64_to_ui64 f64_to_ui64_r_minMag \
		f128_to_ui64 f128_to_ui64_r_minMag, \
1013 1014 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
		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, \
1054
		mulAdd,-l 1)
1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067

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

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

1080 1081
# Per guest TCG tests

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

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

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

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

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

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

# Other tests

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

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

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

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

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

1150
.PHONY: check-venv check-acceptance
C
Cleber Rosa 已提交
1151 1152 1153

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

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

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

C
Cleber Rosa 已提交
1178 1179
check-venv: $(TESTS_VENV_DIR)

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

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

clean: check-clean
1201

1202 1203 1204 1205
# Build the help program automatically

all: $(QEMU_IOTESTS_HELPERS-y)

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

endif