Makefile.include 51.9 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
check-qtest-pci-y += tests/e1000-test$(EXESUF)
155
check-qtest-pci-$(CONFIG_RTL8139_PCI) += tests/rtl8139-test$(EXESUF)
156
check-qtest-pci-$(CONFIG_EEPRO100_PCI) += tests/eepro100-test$(EXESUF)
157
check-qtest-pci-$(CONFIG_ES1370) += tests/es1370-test$(EXESUF)
158
check-qtest-pci-$(CONFIG_VGA) += tests/display-vga-test$(EXESUF)
159
check-qtest-pci-$(CONFIG_HDA) += tests/intel-hda-test$(EXESUF)
160
check-qtest-pci-$(CONFIG_IVSHMEM_DEVICE) += tests/ivshmem-test$(EXESUF)
161
check-qtest-pci-$(CONFIG_MEGASAS_SCSI_PCI) += tests/megasas-test$(EXESUF)
A
Andreas Färber 已提交
162

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

209
check-qtest-alpha-y += tests/boot-serial-test$(EXESUF)
210
check-qtest-alpha-$(CONFIG_VGA) += tests/display-vga-test$(EXESUF)
211

212
check-qtest-hppa-y += tests/boot-serial-test$(EXESUF)
213
check-qtest-hppa-$(CONFIG_VGA) += tests/display-vga-test$(EXESUF)
214

215 216
check-qtest-m68k-y = tests/boot-serial-test$(EXESUF)

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

219
check-qtest-mips-$(CONFIG_ISA_TESTDEV) = tests/endianness-test$(EXESUF)
220
check-qtest-mips-$(CONFIG_VGA) += tests/display-vga-test$(EXESUF)
221 222

check-qtest-mips64-$(CONFIG_ISA_TESTDEV) = tests/endianness-test$(EXESUF)
223
check-qtest-mips64-$(CONFIG_VGA) += tests/display-vga-test$(EXESUF)
224 225

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

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

230
check-qtest-ppc-$(CONFIG_ISA_TESTDEV) = tests/endianness-test$(EXESUF)
231 232 233
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)
234
check-qtest-ppc-y += tests/boot-serial-test$(EXESUF)
235
check-qtest-ppc-$(CONFIG_M48T59) += tests/m48t59-test$(EXESUF)
236

237
check-qtest-ppc64-y += $(check-qtest-ppc-y)
238
check-qtest-ppc64-$(CONFIG_PSERIES) += tests/spapr-phb-test$(EXESUF)
239
check-qtest-ppc64-$(CONFIG_PSERIES) += tests/device-plug-test$(EXESUF)
240
check-qtest-ppc64-$(CONFIG_POWERNV) += tests/pnv-xscom-test$(EXESUF)
241
check-qtest-ppc64-y += tests/migration-test$(EXESUF)
242
check-qtest-ppc64-y += tests/test-announce-self$(EXESUF)
243
check-qtest-ppc64-$(CONFIG_PSERIES) += tests/rtas-test$(EXESUF)
244
check-qtest-ppc64-$(CONFIG_SLIRP) += tests/pxe-test$(EXESUF)
245
check-qtest-ppc64-$(CONFIG_USB_OHCI) += tests/usb-hcd-ohci-test$(EXESUF)
246
check-qtest-ppc64-$(CONFIG_USB_UHCI) += tests/usb-hcd-uhci-test$(EXESUF)
247
check-qtest-ppc64-$(CONFIG_USB_XHCI_NEC) += tests/usb-hcd-xhci-test$(EXESUF)
248
check-qtest-ppc64-$(CONFIG_SLIRP) += tests/test-netfilter$(EXESUF)
249
check-qtest-ppc64-$(CONFIG_POSIX) += tests/test-filter-mirror$(EXESUF)
250
check-qtest-ppc64-$(CONFIG_RTL8139_PCI) += tests/test-filter-redirector$(EXESUF)
251
check-qtest-ppc64-$(CONFIG_VGA) += tests/display-vga-test$(EXESUF)
252
check-qtest-ppc64-y += tests/numa-test$(EXESUF)
253
check-qtest-ppc64-$(CONFIG_IVSHMEM_DEVICE) += tests/ivshmem-test$(EXESUF)
254
check-qtest-ppc64-y += tests/cpu-plug-test$(EXESUF)
255

256 257 258 259
check-qtest-sh4-$(CONFIG_ISA_TESTDEV) = tests/endianness-test$(EXESUF)

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

260
check-qtest-sparc-y += tests/prom-env-test$(EXESUF)
261
check-qtest-sparc-y += tests/m48t59-test$(EXESUF)
262
check-qtest-sparc-y += tests/boot-serial-test$(EXESUF)
263

264
check-qtest-sparc64-$(CONFIG_ISA_TESTDEV) = tests/endianness-test$(EXESUF)
265
check-qtest-sparc64-y += tests/prom-env-test$(EXESUF)
266
check-qtest-sparc64-y += tests/boot-serial-test$(EXESUF)
267

268
check-qtest-arm-y += tests/tmp105-test$(EXESUF)
269
check-qtest-arm-y += tests/pca9552-test$(EXESUF)
T
Thomas Huth 已提交
270
check-qtest-arm-y += tests/ds1338-test$(EXESUF)
271
check-qtest-arm-y += tests/microbit-test$(EXESUF)
C
Cédric Le Goater 已提交
272
check-qtest-arm-y += tests/m25p80-test$(EXESUF)
273
check-qtest-arm-y += tests/test-arm-mptimer$(EXESUF)
274
check-qtest-arm-y += tests/boot-serial-test$(EXESUF)
275
check-qtest-arm-y += tests/hexloader-test$(EXESUF)
276

277
check-qtest-aarch64-y = tests/numa-test$(EXESUF)
278
check-qtest-aarch64-y += tests/boot-serial-test$(EXESUF)
W
Wei Huang 已提交
279
check-qtest-aarch64-y += tests/migration-test$(EXESUF)
280

281
check-qtest-microblazeel-y += $(check-qtest-microblaze-y)
282

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

285
check-qtest-s390x-y = tests/boot-serial-test$(EXESUF)
286
check-qtest-s390x-$(CONFIG_SLIRP) += tests/pxe-test$(EXESUF)
287 288 289
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)
290
check-qtest-s390x-y += tests/drive_del-test$(EXESUF)
291
check-qtest-s390x-y += tests/device-plug-test$(EXESUF)
292
check-qtest-s390x-y += tests/virtio-ccw-test$(EXESUF)
293
check-qtest-s390x-y += tests/cpu-plug-test$(EXESUF)
294
check-qtest-s390x-y += tests/migration-test$(EXESUF)
295

296
check-qtest-generic-y += tests/machine-none-test$(EXESUF)
M
Markus Armbruster 已提交
297
check-qtest-generic-y += tests/qom-test$(EXESUF)
298
check-qtest-generic-y += tests/test-hmp$(EXESUF)
299

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


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

481 482 483 484 485 486 487 488 489 490 491 492
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 \
493
	tests/test-qapi-introspect.h
P
Paolo Bonzini 已提交
494

495
test-obj-y = tests/check-qnum.o tests/check-qstring.o tests/check-qdict.o \
496
	tests/check-qlist.o tests/check-qnull.o tests/check-qobject.o \
497
	tests/check-qjson.o tests/check-qlit.o \
498
	tests/check-block-qtest.o \
P
Paolo Bonzini 已提交
499
	tests/test-coroutine.o tests/test-string-output-visitor.o \
500
	tests/test-string-input-visitor.o tests/test-qobject-output-visitor.o \
E
Eric Blake 已提交
501
	tests/test-clone-visitor.o \
502
	tests/test-qobject-input-visitor.o \
503
	tests/test-qmp-cmds.o tests/test-visitor-serialization.o \
504
	tests/test-x86-cpuid.o tests/test-mul64.o tests/test-int128.o \
P
Paolo Bonzini 已提交
505
	tests/test-opts-visitor.o tests/test-qmp-event.o \
E
Emilio G. Cota 已提交
506
	tests/rcutorture.o tests/test-rcu-list.o \
E
Emilio G. Cota 已提交
507
	tests/test-rcu-simpleq.o \
E
Emilio G. Cota 已提交
508
	tests/test-rcu-tailq.o \
509
	tests/test-qdist.o tests/test-shift128.o \
E
Emilio G. Cota 已提交
510
	tests/test-qht.o tests/qht-bench.o tests/test-qht-par.o \
E
Emilio G. Cota 已提交
511
	tests/atomic_add-bench.o tests/atomic64-bench.o
P
Paolo Bonzini 已提交
512 513

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

516 517

# Deps that are common to various different sets of tests below
P
Paolo Bonzini 已提交
518
test-util-obj-y = libqemuutil.a
519
test-qom-obj-y = $(qom-obj-y) $(test-util-obj-y)
520 521 522 523 524 525
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 \
526
	tests/test-qapi-introspect.o \
527
	$(test-qom-obj-y)
528 529
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)
530
test-io-obj-y = $(io-obj-y) $(test-crypto-obj-y)
531
test-authz-obj-y = $(test-qom-obj-y) $(authz-obj-y)
532
test-block-obj-y = $(block-obj-y) $(test-io-obj-y) tests/iothread.o
533

534
tests/check-qnum$(EXESUF): tests/check-qnum.o $(test-util-obj-y)
535 536
tests/check-qstring$(EXESUF): tests/check-qstring.o $(test-util-obj-y)
tests/check-qdict$(EXESUF): tests/check-qdict.o $(test-util-obj-y)
537
tests/check-block-qdict$(EXESUF): tests/check-block-qdict.o $(test-util-obj-y)
538
tests/check-qlist$(EXESUF): tests/check-qlist.o $(test-util-obj-y)
E
Eric Blake 已提交
539
tests/check-qnull$(EXESUF): tests/check-qnull.o $(test-util-obj-y)
540
tests/check-qobject$(EXESUF): tests/check-qobject.o $(test-util-obj-y)
541
tests/check-qjson$(EXESUF): tests/check-qjson.o $(test-util-obj-y)
542
tests/check-qlit$(EXESUF): tests/check-qlit.o $(test-util-obj-y)
543 544
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)
545

546
tests/test-char$(EXESUF): tests/test-char.o $(test-util-obj-y) $(qtest-obj-y) $(test-io-obj-y) $(chardev-obj-y)
547 548
tests/test-coroutine$(EXESUF): tests/test-coroutine.o $(test-block-obj-y)
tests/test-aio$(EXESUF): tests/test-aio.o $(test-block-obj-y)
549
tests/test-aio-multithread$(EXESUF): tests/test-aio-multithread.o $(test-block-obj-y)
550
tests/test-throttle$(EXESUF): tests/test-throttle.o $(test-block-obj-y)
551
tests/test-bdrv-drain$(EXESUF): tests/test-bdrv-drain.o $(test-block-obj-y) $(test-util-obj-y)
552
tests/test-bdrv-graph-mod$(EXESUF): tests/test-bdrv-graph-mod.o $(test-block-obj-y) $(test-util-obj-y)
A
Alberto Garcia 已提交
553
tests/test-blockjob$(EXESUF): tests/test-blockjob.o $(test-block-obj-y) $(test-util-obj-y)
S
Stefan Hajnoczi 已提交
554
tests/test-blockjob-txn$(EXESUF): tests/test-blockjob-txn.o $(test-block-obj-y) $(test-util-obj-y)
555
tests/test-block-backend$(EXESUF): tests/test-block-backend.o $(test-block-obj-y) $(test-util-obj-y)
556
tests/test-block-iothread$(EXESUF): tests/test-block-iothread.o $(test-block-obj-y) $(test-util-obj-y)
557
tests/test-image-locking$(EXESUF): tests/test-image-locking.o $(test-block-obj-y) $(test-util-obj-y)
558 559
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)
560
tests/test-hbitmap$(EXESUF): tests/test-hbitmap.o $(test-util-obj-y) $(test-crypto-obj-y)
561
tests/test-x86-cpuid$(EXESUF): tests/test-x86-cpuid.o
562
tests/test-xbzrle$(EXESUF): tests/test-xbzrle.o migration/xbzrle.o migration/page_cache.o $(test-util-obj-y)
563
tests/test-cutils$(EXESUF): tests/test-cutils.o util/cutils.o $(test-util-obj-y)
564
tests/test-int128$(EXESUF): tests/test-int128.o
565 566
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 已提交
567
tests/test-rcu-simpleq$(EXESUF): tests/test-rcu-simpleq.o $(test-util-obj-y)
E
Emilio G. Cota 已提交
568
tests/test-rcu-tailq$(EXESUF): tests/test-rcu-tailq.o $(test-util-obj-y)
E
Emilio G. Cota 已提交
569
tests/test-qdist$(EXESUF): tests/test-qdist.o $(test-util-obj-y)
E
Emilio G. Cota 已提交
570
tests/test-qht$(EXESUF): tests/test-qht.o $(test-util-obj-y)
571
tests/test-qht-par$(EXESUF): tests/test-qht-par.o tests/qht-bench$(EXESUF) $(test-util-obj-y)
572
tests/qht-bench$(EXESUF): tests/qht-bench.o $(test-util-obj-y)
573
tests/test-bufferiszero$(EXESUF): tests/test-bufferiszero.o $(test-util-obj-y)
E
Emilio G. Cota 已提交
574
tests/atomic_add-bench$(EXESUF): tests/atomic_add-bench.o $(test-util-obj-y)
E
Emilio G. Cota 已提交
575
tests/atomic64-bench$(EXESUF): tests/atomic64-bench.o $(test-util-obj-y)
P
Paolo Bonzini 已提交
576

577 578 579
tests/fp/%:
	$(MAKE) -C $(dir $@) $(notdir $@)

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

595 596
tests/test-logging$(EXESUF): tests/test-logging.o $(test-util-obj-y)

597 598 599
tests/test-replication$(EXESUF): tests/test-replication.o $(test-util-obj-y) \
	$(test-block-obj-y)

600
tests/test-qapi-types.c tests/test-qapi-types.h \
601 602 603 604
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 \
605
tests/test-qapi-visit.c tests/test-qapi-visit.h \
606 607 608 609
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 \
610
tests/test-qapi-commands.h tests/test-qapi-commands.c \
611 612 613 614
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 \
615
tests/test-qapi-events.c tests/test-qapi-events.h \
616 617 618 619
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 \
620
tests/test-qapi-introspect.c tests/test-qapi-introspect.h: \
621
tests/test-qapi-gen-timestamp ;
622 623 624 625 626
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 已提交
627
	$(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-gen.py \
628 629 630 631 632
		-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 已提交
633
	$(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-gen.py \
634
		-o tests/qapi-schema -p "doc-good-" $<, \
635
		"GEN","$@")
636 637
	@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]
638

639 640
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)
641
tests/test-qmp-event$(EXESUF): tests/test-qmp-event.o $(test-qapi-obj-y) tests/test-qapi-events.o
642
tests/test-qobject-output-visitor$(EXESUF): tests/test-qobject-output-visitor.o $(test-qapi-obj-y)
E
Eric Blake 已提交
643
tests/test-clone-visitor$(EXESUF): tests/test-clone-visitor.o $(test-qapi-obj-y)
644
tests/test-qobject-input-visitor$(EXESUF): tests/test-qobject-input-visitor.o $(test-qapi-obj-y)
645
tests/test-qmp-cmds$(EXESUF): tests/test-qmp-cmds.o tests/test-qapi-commands.o $(test-qapi-obj-y)
646 647
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)
648

649
tests/test-shift128$(EXESUF): tests/test-shift128.o $(test-util-obj-y)
650 651
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 已提交
652
tests/test-bitcnt$(EXESUF): tests/test-bitcnt.o $(test-util-obj-y)
653
tests/test-crypto-hash$(EXESUF): tests/test-crypto-hash.o $(test-crypto-obj-y)
654
tests/benchmark-crypto-hash$(EXESUF): tests/benchmark-crypto-hash.o $(test-crypto-obj-y)
655
tests/test-crypto-hmac$(EXESUF): tests/test-crypto-hmac.o $(test-crypto-obj-y)
656
tests/benchmark-crypto-hmac$(EXESUF): tests/benchmark-crypto-hmac.o $(test-crypto-obj-y)
657
tests/test-crypto-cipher$(EXESUF): tests/test-crypto-cipher.o $(test-crypto-obj-y)
658
tests/benchmark-crypto-cipher$(EXESUF): tests/benchmark-crypto-cipher.o $(test-crypto-obj-y)
659
tests/test-crypto-secret$(EXESUF): tests/test-crypto-secret.o $(test-crypto-obj-y)
660
tests/test-crypto-xts$(EXESUF): tests/test-crypto-xts.o $(test-crypto-obj-y)
661 662 663 664 665 666

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)
667 668
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)
669 670

tests/test-crypto-tlssession.o-cflags := $(TASN1_CFLAGS)
671
tests/test-crypto-tlssession$(EXESUF): tests/test-crypto-tlssession.o \
672 673 674
	tests/crypto-tls-x509-helpers.o tests/pkix_asn1_tab.o \
	tests/crypto-tls-psk-helpers.o \
        $(test-crypto-obj-y)
675 676
tests/test-util-filemonitor$(EXESUF): tests/test-util-filemonitor.o \
	$(test-util-obj-y)
677 678
tests/test-util-sockets$(EXESUF): tests/test-util-sockets.o \
	tests/socket-helpers.o $(test-util-obj-y)
679
tests/test-authz-simple$(EXESUF): tests/test-authz-simple.o $(test-authz-obj-y)
680
tests/test-authz-list$(EXESUF): tests/test-authz-list.o $(test-authz-obj-y)
681
tests/test-authz-listfile$(EXESUF): tests/test-authz-listfile.o $(test-authz-obj-y)
682
tests/test-authz-pam$(EXESUF): tests/test-authz-pam.o $(test-authz-obj-y)
683
tests/test-io-task$(EXESUF): tests/test-io-task.o $(test-io-obj-y)
684
tests/test-io-channel-socket$(EXESUF): tests/test-io-channel-socket.o \
685
        tests/io-channel-helpers.o tests/socket-helpers.o $(test-io-obj-y)
686
tests/tpm-crb-swtpm-test$(EXESUF): tests/tpm-crb-swtpm-test.o tests/tpm-emu.o \
687
	tests/tpm-util.o tests/tpm-tests.o $(test-io-obj-y)
688
tests/tpm-crb-test$(EXESUF): tests/tpm-crb-test.o tests/tpm-emu.o $(test-io-obj-y)
689 690
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)
691
tests/tpm-tis-test$(EXESUF): tests/tpm-tis-test.o tests/tpm-emu.o $(test-io-obj-y)
D
Daniel P. Berrange 已提交
692 693
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 已提交
694 695 696
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)
697 698
tests/test-io-channel-command$(EXESUF): tests/test-io-channel-command.o \
        tests/io-channel-helpers.o $(test-io-obj-y)
699 700
tests/test-io-channel-buffer$(EXESUF): tests/test-io-channel-buffer.o \
        tests/io-channel-helpers.o $(test-io-obj-y)
701
tests/test-crypto-pbkdf$(EXESUF): tests/test-crypto-pbkdf.o $(test-crypto-obj-y)
702
tests/test-crypto-ivgen$(EXESUF): tests/test-crypto-ivgen.o $(test-crypto-obj-y)
703
tests/test-crypto-afsplit$(EXESUF): tests/test-crypto-afsplit.o $(test-crypto-obj-y)
704
tests/test-crypto-block$(EXESUF): tests/test-crypto-block.o $(test-crypto-obj-y)
705

706 707 708
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 已提交
709
libqos-obj-y += tests/libqos/malloc.o
J
John Snow 已提交
710
libqos-obj-y += tests/libqos/i2c.o tests/libqos/libqos.o
711 712
libqos-spapr-obj-y = $(libqos-obj-y) tests/libqos/malloc-spapr.o
libqos-spapr-obj-y += tests/libqos/libqos-spapr.o
713
libqos-spapr-obj-y += tests/libqos/rtas.o
L
Laurent Vivier 已提交
714
libqos-spapr-obj-y += tests/libqos/pci-spapr.o
715
libqos-pc-obj-y = $(libqos-obj-y) tests/libqos/pci-pc.o
J
John Snow 已提交
716
libqos-pc-obj-y += tests/libqos/malloc-pc.o tests/libqos/libqos-pc.o
J
John Snow 已提交
717
libqos-pc-obj-y += tests/libqos/ahci.o
A
Andreas Färber 已提交
718
libqos-omap-obj-y = $(libqos-obj-y) tests/libqos/i2c-omap.o
719
libqos-imx-obj-y = $(libqos-obj-y) tests/libqos/i2c-imx.o
720
libqos-usb-obj-y = $(libqos-spapr-obj-y) $(libqos-pc-obj-y) tests/libqos/usb.o
721

722 723
# Devices
qos-test-obj-y = tests/qos-test.o $(libqgraph-obj-y)
724
qos-test-obj-y += $(libqos-pc-obj-y) $(libqos-spapr-obj-y)
725
qos-test-obj-y += tests/libqos/e1000e.o
726
qos-test-obj-y += tests/libqos/sdhci.o
727
qos-test-obj-y += tests/libqos/tpci200.o
728
qos-test-obj-y += tests/libqos/virtio.o
729
qos-test-obj-$(CONFIG_VIRTFS) += tests/libqos/virtio-9p.o
730
qos-test-obj-y += tests/libqos/virtio-balloon.o
731
qos-test-obj-y += tests/libqos/virtio-blk.o
732
qos-test-obj-y += tests/libqos/virtio-mmio.o
733
qos-test-obj-y += tests/libqos/virtio-net.o
734
qos-test-obj-y += tests/libqos/virtio-pci.o
735
qos-test-obj-y += tests/libqos/virtio-rng.o
736
qos-test-obj-y += tests/libqos/virtio-scsi.o
737
qos-test-obj-y += tests/libqos/virtio-serial.o
738

739
# Machines
740
qos-test-obj-y += tests/libqos/aarch64-xlnx-zcu102-machine.o
741
qos-test-obj-y += tests/libqos/arm-raspi2-machine.o
742
qos-test-obj-y += tests/libqos/arm-sabrelite-machine.o
743
qos-test-obj-y += tests/libqos/arm-smdkc210-machine.o
744
qos-test-obj-y += tests/libqos/arm-virt-machine.o
745
qos-test-obj-y += tests/libqos/arm-xilinx-zynq-a9-machine.o
746
qos-test-obj-y += tests/libqos/ppc64_pseries-machine.o
747 748
qos-test-obj-y += tests/libqos/x86_64_pc-machine.o

749
# Tests
750
qos-test-obj-y += tests/ac97-test.o
751
qos-test-obj-y += tests/e1000e-test.o
752
qos-test-obj-y += tests/ipoctal232-test.o
753
qos-test-obj-y += tests/ne2000-test.o
754
qos-test-obj-y += tests/nvme-test.o
755
qos-test-obj-y += tests/pci-test.o
756
qos-test-obj-y += tests/pcnet-test.o
757
qos-test-obj-y += tests/sdhci-test.o
P
Paolo Bonzini 已提交
758
qos-test-obj-$(CONFIG_VHOST_NET_USER) += tests/vhost-user-test.o $(chardev-obj-y) $(test-io-obj-y)
759
qos-test-obj-y += tests/virtio-test.o
760
qos-test-obj-$(CONFIG_VIRTFS) += tests/virtio-9p-test.o
P
Paolo Bonzini 已提交
761
qos-test-obj-y += tests/virtio-blk-test.o
762
qos-test-obj-y += tests/virtio-net-test.o
763
qos-test-obj-y += tests/virtio-rng-test.o
764
qos-test-obj-y += tests/virtio-scsi-test.o
765
qos-test-obj-y += tests/virtio-serial-test.o
766

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

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

846
tests/migration/stress$(EXESUF): tests/migration/stress.o
847
	$(call quiet-command, $(LINKPROG) -static -O3 $(PTHREAD_LIB) -o $@ $< ,"LINK","$(TARGET_DIR)$@")
848 849 850 851 852 853 854 855 856 857

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)

858 859
# QTest rules

860
TARGETS=$(patsubst %-softmmu,%, $(filter %-softmmu,$(TARGET_DIRS)))
861
ifeq ($(CONFIG_POSIX),y)
M
Markus Armbruster 已提交
862
QTEST_TARGETS = $(TARGETS)
863
check-qtest-y=$(foreach TARGET,$(TARGETS), $(check-qtest-$(TARGET)-y))
M
Markus Armbruster 已提交
864 865 866
check-qtest-y += $(check-qtest-generic-y)
else
QTEST_TARGETS =
867
endif
868

869
qtest-obj-y = tests/libqtest.o $(test-util-obj-y)
870 871
$(check-qtest-y): $(qtest-obj-y)

872 873
tests/test-qga$(EXESUF): qemu-ga$(EXESUF)
tests/test-qga$(EXESUF): tests/test-qga.o $(qtest-obj-y)
874

P
Paolo Bonzini 已提交
875
SPEED = quick
876

P
Paolo Bonzini 已提交
877
# gtester tests, possibly with verbose output
878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910
# 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
911

912
.PHONY: $(patsubst %, check-qtest-%, $(QTEST_TARGETS))
913
$(patsubst %, check-qtest-%, $(QTEST_TARGETS)): check-qtest-%: subdir-%-softmmu $(check-qtest-y)
914 915 916
	$(call do_test_human,$(check-qtest-$*-y) $(check-qtest-generic-y), \
	  QTEST_QEMU_BINARY=$*-softmmu/qemu-system-$* \
	  QTEST_QEMU_IMG=qemu-img$(EXESUF))
917

918 919
check-unit: $(check-unit-y)
	$(call do_test_human, $^)
920

921 922
check-speed: $(check-speed-y)
	$(call do_test_human, $^)
K
Kevin Wolf 已提交
923

924
# gtester tests with TAP output
925

926 927 928 929
$(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 已提交
930

931 932
check-report-unit.tap: $(check-unit-y)
	$(call do_test_tap,$^)
K
Kevin Wolf 已提交
933

934
# Reports and overall runs
K
Kevin Wolf 已提交
935

936 937
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 已提交
938

939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955
# 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
956 957
# "-l 2 -r all" can take more than a day for some operations and is best
# run manually
958
FP_TL=-l 1 -r all
959

960
# $1 = tests, $2 = description, $3 = test flags
961 962
test-softfloat = $(call quiet-command, \
			cd $(BUILD_DIR)/tests/fp && \
963
			./fp-test -s $(if $3,$3,$(FP_TL)) $1 > $2.out 2>&1 || \
964 965 966 967 968
			(cat $2.out && exit 1;), \
			"FLOAT TEST", $2)

# Conversion Routines:
# FIXME: i32_to_extF80 (broken), i64_to_extF80 (broken)
969
#        ui32_to_f128 (not implemented), extF80_roundToInt (broken)
970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997
#
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 \
998
		f128_to_ui32 f128_to_ui32_r_minMag \
999 1000
		f16_to_ui64 f16_to_ui64_r_minMag \
		f32_to_ui64 f32_to_ui64_r_minMag \
1001 1002
		f64_to_ui64 f64_to_ui64_r_minMag \
		f128_to_ui64 f128_to_ui64_r_minMag, \
1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 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
		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, \
1044
		mulAdd,-l 1)
1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057

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

1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069
# 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

1070 1071
# Per guest TCG tests

1072
LINUX_USER_TARGETS=$(filter %-linux-user,$(TARGET_DIRS))
1073 1074 1075 1076
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))

1077 1078
ifeq ($(HAVE_USER_DOCKER),y)
# Probe for the Docker Builds needed for each build
1079
$(foreach PROBE_TARGET,$(TARGET_DIRS), 				\
1080 1081 1082 1083 1084
	$(eval -include $(SRC_PATH)/tests/tcg/Makefile.probe) 	\
	$(if $(DOCKER_PREREQ), 					\
		$(eval build-tcg-tests-$(PROBE_TARGET): $(DOCKER_PREREQ))))
endif

1085
build-tcg-tests-%:
1086 1087 1088
	$(call quiet-command,$(MAKE) $(SUBDIR_MAKEFLAGS) -C $* V="$(V)" \
		SKIP_DOCKER_BUILD=1 TARGET_DIR="$*/" guest-tests, \
		"BUILD", "TCG tests for $*")
1089 1090

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

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
1102
check-tcg: check-softfloat $(RUN_TCG_TARGET_RULES)
1103 1104 1105

.PHONY: clean-tcg
clean-tcg: $(CLEAN_TCG_TARGET_RULES)
P
Paolo Bonzini 已提交
1106 1107 1108

# Other tests

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

P
Paolo Bonzini 已提交
1111
.PHONY: check-tests/qemu-iotests-quick.sh
1112
check-tests/qemu-iotests-quick.sh: tests/qemu-iotests-quick.sh qemu-img$(EXESUF) qemu-io$(EXESUF) $(QEMU_IOTESTS_HELPERS-y)
P
Paolo Bonzini 已提交
1113 1114
	$<

1115 1116
.PHONY: $(patsubst %, check-%, $(check-qapi-schema-y))
$(patsubst %, check-%, $(check-qapi-schema-y)): check-%.json: $(SRC_PATH)/%.json
1117
	$(call quiet-command, PYTHONPATH=$(SRC_PATH)/scripts \
M
Matthias Maier 已提交
1118
		$(PYTHON) $(SRC_PATH)/tests/qapi-schema/test-qapi.py \
1119
		$^ >$*.test.out 2>$*.test.err; \
1120
		echo $$? >$*.test.exit, \
1121
		"TEST","$*.out")
1122
	@# Sanitize error messages (make them independent of build directory)
1123 1124 1125
	@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
1126

1127 1128
.PHONY: check-tests/qapi-schema/doc-good.texi
check-tests/qapi-schema/doc-good.texi: tests/qapi-schema/doc-good.test.texi
1129
	@diff -u $(SRC_PATH)/tests/qapi-schema/doc-good.texi $<
1130

R
Richard Henderson 已提交
1131 1132 1133 1134 1135 1136 1137
.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 已提交
1138 1139
# Python venv for running tests

1140
.PHONY: check-venv check-acceptance
C
Cleber Rosa 已提交
1141 1142 1143

TESTS_VENV_DIR=$(BUILD_DIR)/tests/venv
TESTS_VENV_REQ=$(SRC_PATH)/tests/requirements.txt
1144 1145 1146 1147 1148
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 已提交
1149

1150
ifneq ($(findstring v2,"v$(PYTHON_VERSION)"),v2)
C
Cleber Rosa 已提交
1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163
$(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

1164 1165 1166 1167
$(TESTS_RESULTS_DIR):
	$(call quiet-command, mkdir -p $@, \
            MKDIR, $@)

C
Cleber Rosa 已提交
1168 1169
check-venv: $(TESTS_VENV_DIR)

1170 1171 1172 1173 1174 1175 1176
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 已提交
1177 1178
# Consolidated targets

W
Wenchao Xia 已提交
1179
.PHONY: check-qapi-schema check-qtest check-unit check check-clean
1180
check-qapi-schema: $(patsubst %,check-%, $(check-qapi-schema-y)) check-tests/qapi-schema/doc-good.texi
1181
check-qtest: $(patsubst %,check-qtest-%, $(QTEST_TARGETS))
P
Paolo Bonzini 已提交
1182
check-block: $(patsubst %,check-%, $(check-block-y))
1183
check: check-qapi-schema check-unit check-softfloat check-qtest check-decodetree
W
Wenchao Xia 已提交
1184
check-clean:
A
Andreas Färber 已提交
1185
	rm -rf $(check-unit-y) tests/*.o $(QEMU_IOTESTS_HELPERS-y)
1186
	rm -rf $(sort $(foreach target,$(SYSEMU_TARGET_LIST), $(check-qtest-$(target)-y)) $(check-qtest-generic-y))
1187
	rm -f tests/test-qapi-gen-timestamp
1188
	rm -rf $(TESTS_VENV_DIR) $(TESTS_RESULTS_DIR)
W
Wenchao Xia 已提交
1189 1190

clean: check-clean
1191

1192 1193 1194 1195
# Build the help program automatically

all: $(QEMU_IOTESTS_HELPERS-y)

1196
-include $(wildcard tests/*.d)
A
Anthony Liguori 已提交
1197
-include $(wildcard tests/libqos/*.d)
1198 1199

endif