Makefile.include 53.5 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

303
check-qtest-aarch64-y = tests/numa-test$(EXESUF)
304
check-qtest-aarch64-y += tests/boot-serial-test$(EXESUF)
W
Wei Huang 已提交
305
check-qtest-aarch64-y += tests/migration-test$(EXESUF)
306

307
check-qtest-microblazeel-y += $(check-qtest-microblaze-y)
308

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

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

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

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


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

507 508 509 510 511 512 513 514 515 516 517 518
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 \
519
	tests/test-qapi-introspect.h
P
Paolo Bonzini 已提交
520

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

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

542 543

# Deps that are common to various different sets of tests below
P
Paolo Bonzini 已提交
544
test-util-obj-y = libqemuutil.a
545
test-qom-obj-y = $(qom-obj-y) $(test-util-obj-y)
546 547 548 549 550 551
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 \
552
	tests/test-qapi-introspect.o \
553
	$(test-qom-obj-y)
554 555
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)
556
test-io-obj-y = $(io-obj-y) $(test-crypto-obj-y)
557
test-authz-obj-y = $(test-qom-obj-y) $(authz-obj-y)
558
test-block-obj-y = $(block-obj-y) $(test-io-obj-y) tests/iothread.o
559

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

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

603 604 605
tests/fp/%:
	$(MAKE) -C $(dir $@) $(notdir $@)

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

621 622
tests/test-logging$(EXESUF): tests/test-logging.o $(test-util-obj-y)

623 624 625
tests/test-replication$(EXESUF): tests/test-replication.o $(test-util-obj-y) \
	$(test-block-obj-y)

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

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

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

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)
693 694
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)
695 696

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

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

749 750 751
# Devices
qos-test-obj-y = tests/qos-test.o $(libqgraph-obj-y)
qos-test-obj-y += $(libqos-pc-obj-y)
752
qos-test-obj-y += tests/libqos/sdhci.o
753

754
# Machines
755
qos-test-obj-y += tests/libqos/aarch64-xlnx-zcu102-machine.o
756
qos-test-obj-y += tests/libqos/arm-raspi2-machine.o
757
qos-test-obj-y += tests/libqos/arm-sabrelite-machine.o
758
qos-test-obj-y += tests/libqos/arm-smdkc210-machine.o
759
qos-test-obj-y += tests/libqos/arm-xilinx-zynq-a9-machine.o
760 761
qos-test-obj-y += tests/libqos/x86_64_pc-machine.o

762 763 764
# Tests
qos-test-obj-y += tests/sdhci-test.o

765 766 767 768
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)
769
tests/qos-test$(EXESUF): $(qos-test-obj-y)
770

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

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

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)

874 875
# QTest rules

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

885
qtest-obj-y = tests/libqtest.o $(test-util-obj-y)
886 887
$(check-qtest-y): $(qtest-obj-y)

888 889
tests/test-qga$(EXESUF): qemu-ga$(EXESUF)
tests/test-qga$(EXESUF): tests/test-qga.o $(qtest-obj-y)
890

P
Paolo Bonzini 已提交
891
SPEED = quick
892

P
Paolo Bonzini 已提交
893
# gtester tests, possibly with verbose output
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 923 924 925 926
# 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
927

928
.PHONY: $(patsubst %, check-qtest-%, $(QTEST_TARGETS))
929
$(patsubst %, check-qtest-%, $(QTEST_TARGETS)): check-qtest-%: subdir-%-softmmu $(check-qtest-y)
930 931 932
	$(call do_test_human,$(check-qtest-$*-y) $(check-qtest-generic-y), \
	  QTEST_QEMU_BINARY=$*-softmmu/qemu-system-$* \
	  QTEST_QEMU_IMG=qemu-img$(EXESUF))
933

934 935
check-unit: $(check-unit-y)
	$(call do_test_human, $^)
936

937 938
check-speed: $(check-speed-y)
	$(call do_test_human, $^)
K
Kevin Wolf 已提交
939

940
# gtester tests with TAP output
941

942 943 944 945
$(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 已提交
946

947 948
check-report-unit.tap: $(check-unit-y)
	$(call do_test_tap,$^)
K
Kevin Wolf 已提交
949

950
# Reports and overall runs
K
Kevin Wolf 已提交
951

952 953
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 已提交
954

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

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

# Conversion Routines:
# FIXME: i32_to_extF80 (broken), i64_to_extF80 (broken)
985
#        ui32_to_f128 (not implemented), extF80_roundToInt (broken)
986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013
#
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 \
1014
		f128_to_ui32 f128_to_ui32_r_minMag \
1015 1016
		f16_to_ui64 f16_to_ui64_r_minMag \
		f32_to_ui64 f32_to_ui64_r_minMag \
1017 1018
		f64_to_ui64 f64_to_ui64_r_minMag \
		f128_to_ui64 f128_to_ui64_r_minMag, \
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 1056 1057 1058 1059
		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, \
1060
		mulAdd,-l 1)
1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073

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

1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085
# 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

1086 1087
# Per guest TCG tests

1088
LINUX_USER_TARGETS=$(filter %-linux-user,$(TARGET_DIRS))
1089 1090 1091 1092
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))

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

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

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

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
1118
check-tcg: check-softfloat $(RUN_TCG_TARGET_RULES)
1119 1120 1121

.PHONY: clean-tcg
clean-tcg: $(CLEAN_TCG_TARGET_RULES)
P
Paolo Bonzini 已提交
1122 1123 1124

# Other tests

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

P
Paolo Bonzini 已提交
1127
.PHONY: check-tests/qemu-iotests-quick.sh
1128
check-tests/qemu-iotests-quick.sh: tests/qemu-iotests-quick.sh qemu-img$(EXESUF) qemu-io$(EXESUF) $(QEMU_IOTESTS_HELPERS-y)
P
Paolo Bonzini 已提交
1129 1130
	$<

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

1143 1144
.PHONY: check-tests/qapi-schema/doc-good.texi
check-tests/qapi-schema/doc-good.texi: tests/qapi-schema/doc-good.test.texi
1145
	@diff -u $(SRC_PATH)/tests/qapi-schema/doc-good.texi $<
1146

R
Richard Henderson 已提交
1147 1148 1149 1150 1151 1152 1153
.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 已提交
1154 1155
# Python venv for running tests

1156
.PHONY: check-venv check-acceptance
C
Cleber Rosa 已提交
1157 1158 1159

TESTS_VENV_DIR=$(BUILD_DIR)/tests/venv
TESTS_VENV_REQ=$(SRC_PATH)/tests/requirements.txt
1160 1161 1162 1163 1164
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 已提交
1165

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

1180 1181 1182 1183
$(TESTS_RESULTS_DIR):
	$(call quiet-command, mkdir -p $@, \
            MKDIR, $@)

C
Cleber Rosa 已提交
1184 1185
check-venv: $(TESTS_VENV_DIR)

1186 1187 1188 1189 1190 1191 1192
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 已提交
1193 1194
# Consolidated targets

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

clean: check-clean
1207

1208 1209 1210 1211
# Build the help program automatically

all: $(QEMU_IOTESTS_HELPERS-y)

1212
-include $(wildcard tests/*.d)
A
Anthony Liguori 已提交
1213
-include $(wildcard tests/libqos/*.d)
1214 1215

endif