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

154
check-qtest-pci-$(CONFIG_RTL8139_PCI) += tests/rtl8139-test$(EXESUF)
155
check-qtest-pci-$(CONFIG_VGA) += tests/display-vga-test$(EXESUF)
156
check-qtest-pci-$(CONFIG_HDA) += tests/intel-hda-test$(EXESUF)
157
check-qtest-pci-$(CONFIG_IVSHMEM_DEVICE) += tests/ivshmem-test$(EXESUF)
A
Andreas Färber 已提交
158

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

202
check-qtest-alpha-y += tests/boot-serial-test$(EXESUF)
203
check-qtest-alpha-$(CONFIG_VGA) += tests/display-vga-test$(EXESUF)
204

205
check-qtest-hppa-y += tests/boot-serial-test$(EXESUF)
206
check-qtest-hppa-$(CONFIG_VGA) += tests/display-vga-test$(EXESUF)
207

208 209
check-qtest-m68k-y = tests/boot-serial-test$(EXESUF)

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

212
check-qtest-mips-$(CONFIG_ISA_TESTDEV) = tests/endianness-test$(EXESUF)
213
check-qtest-mips-$(CONFIG_VGA) += tests/display-vga-test$(EXESUF)
214 215

check-qtest-mips64-$(CONFIG_ISA_TESTDEV) = tests/endianness-test$(EXESUF)
216
check-qtest-mips64-$(CONFIG_VGA) += tests/display-vga-test$(EXESUF)
217 218

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

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

223
check-qtest-ppc-$(CONFIG_ISA_TESTDEV) = tests/endianness-test$(EXESUF)
224 225 226
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)
227
check-qtest-ppc-y += tests/boot-serial-test$(EXESUF)
228
check-qtest-ppc-$(CONFIG_M48T59) += tests/m48t59-test$(EXESUF)
229

230
check-qtest-ppc64-y += $(check-qtest-ppc-y)
231
check-qtest-ppc64-$(CONFIG_PSERIES) += tests/device-plug-test$(EXESUF)
232
check-qtest-ppc64-$(CONFIG_POWERNV) += tests/pnv-xscom-test$(EXESUF)
233
check-qtest-ppc64-y += tests/migration-test$(EXESUF)
234
check-qtest-ppc64-$(CONFIG_PSERIES) += tests/rtas-test$(EXESUF)
235
check-qtest-ppc64-$(CONFIG_SLIRP) += tests/pxe-test$(EXESUF)
236
check-qtest-ppc64-$(CONFIG_USB_UHCI) += tests/usb-hcd-uhci-test$(EXESUF)
237
check-qtest-ppc64-$(CONFIG_USB_XHCI_NEC) += tests/usb-hcd-xhci-test$(EXESUF)
238
check-qtest-ppc64-$(CONFIG_SLIRP) += tests/test-netfilter$(EXESUF)
239
check-qtest-ppc64-$(CONFIG_POSIX) += tests/test-filter-mirror$(EXESUF)
240
check-qtest-ppc64-$(CONFIG_RTL8139_PCI) += tests/test-filter-redirector$(EXESUF)
241
check-qtest-ppc64-$(CONFIG_VGA) += tests/display-vga-test$(EXESUF)
242
check-qtest-ppc64-y += tests/numa-test$(EXESUF)
243
check-qtest-ppc64-$(CONFIG_IVSHMEM_DEVICE) += tests/ivshmem-test$(EXESUF)
244
check-qtest-ppc64-y += tests/cpu-plug-test$(EXESUF)
245

246 247 248 249
check-qtest-sh4-$(CONFIG_ISA_TESTDEV) = tests/endianness-test$(EXESUF)

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

250
check-qtest-sparc-y += tests/prom-env-test$(EXESUF)
251
check-qtest-sparc-y += tests/m48t59-test$(EXESUF)
252
check-qtest-sparc-y += tests/boot-serial-test$(EXESUF)
253

254
check-qtest-sparc64-$(CONFIG_ISA_TESTDEV) = tests/endianness-test$(EXESUF)
255
check-qtest-sparc64-y += tests/prom-env-test$(EXESUF)
256
check-qtest-sparc64-y += tests/boot-serial-test$(EXESUF)
257

258
check-qtest-arm-y += tests/tmp105-test$(EXESUF)
259
check-qtest-arm-y += tests/pca9552-test$(EXESUF)
T
Thomas Huth 已提交
260
check-qtest-arm-y += tests/ds1338-test$(EXESUF)
261
check-qtest-arm-y += tests/microbit-test$(EXESUF)
C
Cédric Le Goater 已提交
262
check-qtest-arm-y += tests/m25p80-test$(EXESUF)
263
check-qtest-arm-y += tests/test-arm-mptimer$(EXESUF)
264
check-qtest-arm-y += tests/boot-serial-test$(EXESUF)
265
check-qtest-arm-y += tests/hexloader-test$(EXESUF)
266

267
check-qtest-aarch64-y = tests/numa-test$(EXESUF)
268
check-qtest-aarch64-y += tests/boot-serial-test$(EXESUF)
W
Wei Huang 已提交
269
check-qtest-aarch64-y += tests/migration-test$(EXESUF)
270

271
check-qtest-microblazeel-y += $(check-qtest-microblaze-y)
272

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

275
check-qtest-s390x-y = tests/boot-serial-test$(EXESUF)
276
check-qtest-s390x-$(CONFIG_SLIRP) += tests/pxe-test$(EXESUF)
277 278 279
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)
280
check-qtest-s390x-y += tests/drive_del-test$(EXESUF)
281
check-qtest-s390x-y += tests/device-plug-test$(EXESUF)
282
check-qtest-s390x-y += tests/virtio-ccw-test$(EXESUF)
283
check-qtest-s390x-y += tests/cpu-plug-test$(EXESUF)
284
check-qtest-s390x-y += tests/migration-test$(EXESUF)
285

286
check-qtest-generic-y += tests/machine-none-test$(EXESUF)
M
Markus Armbruster 已提交
287
check-qtest-generic-y += tests/qom-test$(EXESUF)
288
check-qtest-generic-y += tests/test-hmp$(EXESUF)
289

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


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

471 472 473 474 475 476 477 478 479 480 481 482
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 \
483
	tests/test-qapi-introspect.h
P
Paolo Bonzini 已提交
484

485
test-obj-y = tests/check-qnum.o tests/check-qstring.o tests/check-qdict.o \
486
	tests/check-qlist.o tests/check-qnull.o tests/check-qobject.o \
487
	tests/check-qjson.o tests/check-qlit.o \
488
	tests/check-block-qtest.o \
P
Paolo Bonzini 已提交
489
	tests/test-coroutine.o tests/test-string-output-visitor.o \
490
	tests/test-string-input-visitor.o tests/test-qobject-output-visitor.o \
E
Eric Blake 已提交
491
	tests/test-clone-visitor.o \
492
	tests/test-qobject-input-visitor.o \
493
	tests/test-qmp-cmds.o tests/test-visitor-serialization.o \
494
	tests/test-x86-cpuid.o tests/test-mul64.o tests/test-int128.o \
P
Paolo Bonzini 已提交
495
	tests/test-opts-visitor.o tests/test-qmp-event.o \
E
Emilio G. Cota 已提交
496
	tests/rcutorture.o tests/test-rcu-list.o \
E
Emilio G. Cota 已提交
497
	tests/test-rcu-simpleq.o \
E
Emilio G. Cota 已提交
498
	tests/test-rcu-tailq.o \
499
	tests/test-qdist.o tests/test-shift128.o \
E
Emilio G. Cota 已提交
500
	tests/test-qht.o tests/qht-bench.o tests/test-qht-par.o \
E
Emilio G. Cota 已提交
501
	tests/atomic_add-bench.o tests/atomic64-bench.o
P
Paolo Bonzini 已提交
502 503

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

506 507

# Deps that are common to various different sets of tests below
P
Paolo Bonzini 已提交
508
test-util-obj-y = libqemuutil.a
509
test-qom-obj-y = $(qom-obj-y) $(test-util-obj-y)
510 511 512 513 514 515
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 \
516
	tests/test-qapi-introspect.o \
517
	$(test-qom-obj-y)
518 519
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)
520
test-io-obj-y = $(io-obj-y) $(test-crypto-obj-y)
521
test-authz-obj-y = $(test-qom-obj-y) $(authz-obj-y)
522
test-block-obj-y = $(block-obj-y) $(test-io-obj-y) tests/iothread.o
523

524
tests/check-qnum$(EXESUF): tests/check-qnum.o $(test-util-obj-y)
525 526
tests/check-qstring$(EXESUF): tests/check-qstring.o $(test-util-obj-y)
tests/check-qdict$(EXESUF): tests/check-qdict.o $(test-util-obj-y)
527
tests/check-block-qdict$(EXESUF): tests/check-block-qdict.o $(test-util-obj-y)
528
tests/check-qlist$(EXESUF): tests/check-qlist.o $(test-util-obj-y)
E
Eric Blake 已提交
529
tests/check-qnull$(EXESUF): tests/check-qnull.o $(test-util-obj-y)
530
tests/check-qobject$(EXESUF): tests/check-qobject.o $(test-util-obj-y)
531
tests/check-qjson$(EXESUF): tests/check-qjson.o $(test-util-obj-y)
532
tests/check-qlit$(EXESUF): tests/check-qlit.o $(test-util-obj-y)
533 534
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)
535

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

567 568 569
tests/fp/%:
	$(MAKE) -C $(dir $@) $(notdir $@)

570
tests/test-qdev-global-props$(EXESUF): tests/test-qdev-global-props.o \
571
	hw/core/qdev.o hw/core/qdev-properties.o hw/core/hotplug.o\
572
	hw/core/bus.o \
573
	hw/core/irq.o \
574
	hw/core/fw-path-provider.o \
575
	hw/core/reset.o \
576
	$(test-qapi-obj-y)
577
tests/test-vmstate$(EXESUF): tests/test-vmstate.o \
578
	migration/vmstate.o migration/vmstate-types.o migration/qemu-file.o \
579 580
        migration/qemu-file-channel.o migration/qjson.o \
	$(test-io-obj-y)
581
tests/test-timed-average$(EXESUF): tests/test-timed-average.o $(test-util-obj-y)
P
Paolo Bonzini 已提交
582
tests/test-base64$(EXESUF): tests/test-base64.o $(test-util-obj-y)
583
tests/ptimer-test$(EXESUF): tests/ptimer-test.o tests/ptimer-test-stubs.o hw/core/ptimer.o
P
Paolo Bonzini 已提交
584

585 586
tests/test-logging$(EXESUF): tests/test-logging.o $(test-util-obj-y)

587 588 589
tests/test-replication$(EXESUF): tests/test-replication.o $(test-util-obj-y) \
	$(test-block-obj-y)

590
tests/test-qapi-types.c tests/test-qapi-types.h \
591 592 593 594
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 \
595
tests/test-qapi-visit.c tests/test-qapi-visit.h \
596 597 598 599
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 \
600
tests/test-qapi-commands.h tests/test-qapi-commands.c \
601 602 603 604
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 \
605
tests/test-qapi-events.c tests/test-qapi-events.h \
606 607 608 609
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 \
610
tests/test-qapi-introspect.c tests/test-qapi-introspect.h: \
611
tests/test-qapi-gen-timestamp ;
612 613 614 615 616
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 已提交
617
	$(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-gen.py \
618 619 620 621 622
		-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 已提交
623
	$(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-gen.py \
624
		-o tests/qapi-schema -p "doc-good-" $<, \
625
		"GEN","$@")
626 627
	@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]
628

629 630
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)
631
tests/test-qmp-event$(EXESUF): tests/test-qmp-event.o $(test-qapi-obj-y) tests/test-qapi-events.o
632
tests/test-qobject-output-visitor$(EXESUF): tests/test-qobject-output-visitor.o $(test-qapi-obj-y)
E
Eric Blake 已提交
633
tests/test-clone-visitor$(EXESUF): tests/test-clone-visitor.o $(test-qapi-obj-y)
634
tests/test-qobject-input-visitor$(EXESUF): tests/test-qobject-input-visitor.o $(test-qapi-obj-y)
635
tests/test-qmp-cmds$(EXESUF): tests/test-qmp-cmds.o tests/test-qapi-commands.o $(test-qapi-obj-y)
636 637
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)
638

639
tests/test-shift128$(EXESUF): tests/test-shift128.o $(test-util-obj-y)
640 641
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 已提交
642
tests/test-bitcnt$(EXESUF): tests/test-bitcnt.o $(test-util-obj-y)
643
tests/test-crypto-hash$(EXESUF): tests/test-crypto-hash.o $(test-crypto-obj-y)
644
tests/benchmark-crypto-hash$(EXESUF): tests/benchmark-crypto-hash.o $(test-crypto-obj-y)
645
tests/test-crypto-hmac$(EXESUF): tests/test-crypto-hmac.o $(test-crypto-obj-y)
646
tests/benchmark-crypto-hmac$(EXESUF): tests/benchmark-crypto-hmac.o $(test-crypto-obj-y)
647
tests/test-crypto-cipher$(EXESUF): tests/test-crypto-cipher.o $(test-crypto-obj-y)
648
tests/benchmark-crypto-cipher$(EXESUF): tests/benchmark-crypto-cipher.o $(test-crypto-obj-y)
649
tests/test-crypto-secret$(EXESUF): tests/test-crypto-secret.o $(test-crypto-obj-y)
650
tests/test-crypto-xts$(EXESUF): tests/test-crypto-xts.o $(test-crypto-obj-y)
651 652 653 654 655 656

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)
657 658
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)
659 660

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

696 697 698
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 已提交
699
libqos-obj-y += tests/libqos/malloc.o
J
John Snow 已提交
700
libqos-obj-y += tests/libqos/i2c.o tests/libqos/libqos.o
701 702
libqos-spapr-obj-y = $(libqos-obj-y) tests/libqos/malloc-spapr.o
libqos-spapr-obj-y += tests/libqos/libqos-spapr.o
703
libqos-spapr-obj-y += tests/libqos/rtas.o
L
Laurent Vivier 已提交
704
libqos-spapr-obj-y += tests/libqos/pci-spapr.o
705
libqos-pc-obj-y = $(libqos-obj-y) tests/libqos/pci-pc.o
J
John Snow 已提交
706
libqos-pc-obj-y += tests/libqos/malloc-pc.o tests/libqos/libqos-pc.o
J
John Snow 已提交
707
libqos-pc-obj-y += tests/libqos/ahci.o
A
Andreas Färber 已提交
708
libqos-omap-obj-y = $(libqos-obj-y) tests/libqos/i2c-omap.o
709
libqos-imx-obj-y = $(libqos-obj-y) tests/libqos/i2c-imx.o
710
libqos-usb-obj-y = $(libqos-spapr-obj-y) $(libqos-pc-obj-y) tests/libqos/usb.o
711

712 713
# Devices
qos-test-obj-y = tests/qos-test.o $(libqgraph-obj-y)
714
qos-test-obj-y += $(libqos-pc-obj-y) $(libqos-spapr-obj-y)
715
qos-test-obj-y += tests/libqos/e1000e.o
716
qos-test-obj-y += tests/libqos/sdhci.o
717
qos-test-obj-y += tests/libqos/tpci200.o
718
qos-test-obj-y += tests/libqos/virtio.o
719
qos-test-obj-$(CONFIG_VIRTFS) += tests/libqos/virtio-9p.o
720
qos-test-obj-y += tests/libqos/virtio-balloon.o
721
qos-test-obj-y += tests/libqos/virtio-blk.o
722
qos-test-obj-y += tests/libqos/virtio-mmio.o
723
qos-test-obj-y += tests/libqos/virtio-net.o
724
qos-test-obj-y += tests/libqos/virtio-pci.o
725
qos-test-obj-y += tests/libqos/virtio-rng.o
726
qos-test-obj-y += tests/libqos/virtio-scsi.o
727
qos-test-obj-y += tests/libqos/virtio-serial.o
728

729
# Machines
730
qos-test-obj-y += tests/libqos/aarch64-xlnx-zcu102-machine.o
731
qos-test-obj-y += tests/libqos/arm-raspi2-machine.o
732
qos-test-obj-y += tests/libqos/arm-sabrelite-machine.o
733
qos-test-obj-y += tests/libqos/arm-smdkc210-machine.o
734
qos-test-obj-y += tests/libqos/arm-virt-machine.o
735
qos-test-obj-y += tests/libqos/arm-xilinx-zynq-a9-machine.o
736
qos-test-obj-y += tests/libqos/ppc64_pseries-machine.o
737 738
qos-test-obj-y += tests/libqos/x86_64_pc-machine.o

739
# Tests
740
qos-test-obj-y += tests/ac97-test.o
741
qos-test-obj-y += tests/e1000-test.o
742
qos-test-obj-y += tests/e1000e-test.o
743
qos-test-obj-y += tests/eepro100-test.o
744
qos-test-obj-y += tests/es1370-test.o
745
qos-test-obj-y += tests/ipoctal232-test.o
P
Paolo Bonzini 已提交
746
qos-test-obj-y += tests/megasas-test.o
747
qos-test-obj-y += tests/ne2000-test.o
748
qos-test-obj-y += tests/nvme-test.o
749
qos-test-obj-y += tests/pci-test.o
750
qos-test-obj-y += tests/pcnet-test.o
751
qos-test-obj-y += tests/sdhci-test.o
752
qos-test-obj-y += tests/spapr-phb-test.o
753
qos-test-obj-y += tests/usb-hcd-ohci-test.o $(libqos-usb-obj-y)
P
Paolo Bonzini 已提交
754
qos-test-obj-$(CONFIG_VHOST_NET_USER) += tests/vhost-user-test.o $(chardev-obj-y) $(test-io-obj-y)
755
qos-test-obj-y += tests/virtio-test.o
756
qos-test-obj-$(CONFIG_VIRTFS) += tests/virtio-9p-test.o
P
Paolo Bonzini 已提交
757
qos-test-obj-y += tests/virtio-blk-test.o
758
qos-test-obj-y += tests/virtio-net-test.o
759
qos-test-obj-y += tests/virtio-rng-test.o
760
qos-test-obj-y += tests/virtio-scsi-test.o
761
qos-test-obj-y += tests/virtio-serial-test.o
762
qos-test-obj-y += tests/vmxnet3-test.o
763

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

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

835
tests/migration/stress$(EXESUF): tests/migration/stress.o
836
	$(call quiet-command, $(LINKPROG) -static -O3 $(PTHREAD_LIB) -o $@ $< ,"LINK","$(TARGET_DIR)$@")
837 838 839 840 841 842 843 844 845 846

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)

847 848
# QTest rules

849
TARGETS=$(patsubst %-softmmu,%, $(filter %-softmmu,$(TARGET_DIRS)))
850
ifeq ($(CONFIG_POSIX),y)
M
Markus Armbruster 已提交
851
QTEST_TARGETS = $(TARGETS)
852
check-qtest-y=$(foreach TARGET,$(TARGETS), $(check-qtest-$(TARGET)-y))
M
Markus Armbruster 已提交
853 854 855
check-qtest-y += $(check-qtest-generic-y)
else
QTEST_TARGETS =
856
endif
857

858
qtest-obj-y = tests/libqtest.o $(test-util-obj-y)
859 860
$(check-qtest-y): $(qtest-obj-y)

861 862
tests/test-qga$(EXESUF): qemu-ga$(EXESUF)
tests/test-qga$(EXESUF): tests/test-qga.o $(qtest-obj-y)
863

P
Paolo Bonzini 已提交
864
SPEED = quick
865

P
Paolo Bonzini 已提交
866
# gtester tests, possibly with verbose output
867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899
# 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
900

901
.PHONY: $(patsubst %, check-qtest-%, $(QTEST_TARGETS))
902
$(patsubst %, check-qtest-%, $(QTEST_TARGETS)): check-qtest-%: subdir-%-softmmu $(check-qtest-y)
903 904 905
	$(call do_test_human,$(check-qtest-$*-y) $(check-qtest-generic-y), \
	  QTEST_QEMU_BINARY=$*-softmmu/qemu-system-$* \
	  QTEST_QEMU_IMG=qemu-img$(EXESUF))
906

907 908
check-unit: $(check-unit-y)
	$(call do_test_human, $^)
909

910 911
check-speed: $(check-speed-y)
	$(call do_test_human, $^)
K
Kevin Wolf 已提交
912

913
# gtester tests with TAP output
914

915
$(patsubst %, check-report-qtest-%.tap, $(QTEST_TARGETS)): check-report-qtest-%.tap: subdir-%-softmmu $(check-qtest-y)
916 917 918
	$(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 已提交
919

920 921
check-report-unit.tap: $(check-unit-y)
	$(call do_test_tap,$^)
K
Kevin Wolf 已提交
922

923
# Reports and overall runs
K
Kevin Wolf 已提交
924

925 926
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 已提交
927

928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944
# 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
945 946
# "-l 2 -r all" can take more than a day for some operations and is best
# run manually
947
FP_TL=-l 1 -r all
948

949
# $1 = tests, $2 = description, $3 = test flags
950 951
test-softfloat = $(call quiet-command, \
			cd $(BUILD_DIR)/tests/fp && \
952
			./fp-test -s $(if $3,$3,$(FP_TL)) $1 > $2.out 2>&1 || \
953 954 955 956 957
			(cat $2.out && exit 1;), \
			"FLOAT TEST", $2)

# Conversion Routines:
# FIXME: i32_to_extF80 (broken), i64_to_extF80 (broken)
958
#        ui32_to_f128 (not implemented), extF80_roundToInt (broken)
959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986
#
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 \
987
		f128_to_ui32 f128_to_ui32_r_minMag \
988 989
		f16_to_ui64 f16_to_ui64_r_minMag \
		f32_to_ui64 f32_to_ui64_r_minMag \
990 991
		f64_to_ui64 f64_to_ui64_r_minMag \
		f128_to_ui64 f128_to_ui64_r_minMag, \
992 993 994 995 996 997 998 999 1000 1001 1002 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
		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, \
1033
		mulAdd,-l 1)
1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046

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

1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058
# 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

1059 1060
# Per guest TCG tests

1061 1062 1063
BUILD_TCG_TARGET_RULES=$(patsubst %,build-tcg-tests-%, $(TARGET_DIRS))
CLEAN_TCG_TARGET_RULES=$(patsubst %,clean-tcg-tests-%, $(TARGET_DIRS))
RUN_TCG_TARGET_RULES=$(patsubst %,run-tcg-tests-%, $(TARGET_DIRS))
1064

1065 1066
ifeq ($(HAVE_USER_DOCKER),y)
# Probe for the Docker Builds needed for each build
1067
$(foreach PROBE_TARGET,$(TARGET_DIRS), 				\
1068 1069 1070 1071 1072
	$(eval -include $(SRC_PATH)/tests/tcg/Makefile.probe) 	\
	$(if $(DOCKER_PREREQ), 					\
		$(eval build-tcg-tests-$(PROBE_TARGET): $(DOCKER_PREREQ))))
endif

1073
build-tcg-tests-%:
1074 1075 1076
	$(call quiet-command,$(MAKE) $(SUBDIR_MAKEFLAGS) -C $* V="$(V)" \
		SKIP_DOCKER_BUILD=1 TARGET_DIR="$*/" guest-tests, \
		"BUILD", "TCG tests for $*")
1077 1078

run-tcg-tests-%: % build-tcg-tests-%
1079 1080 1081
	$(call quiet-command,$(MAKE) $(SUBDIR_MAKEFLAGS) -C $* V="$(V)" \
		SKIP_DOCKER_BUILD=1 TARGET_DIR="$*/" run-guest-tests, \
		"RUN", "TCG tests for $*")
1082 1083 1084 1085 1086 1087 1088 1089

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
1090
check-tcg: $(RUN_TCG_TARGET_RULES)
1091 1092 1093

.PHONY: clean-tcg
clean-tcg: $(CLEAN_TCG_TARGET_RULES)
P
Paolo Bonzini 已提交
1094 1095 1096

# Other tests

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

P
Paolo Bonzini 已提交
1099
.PHONY: check-tests/qemu-iotests-quick.sh
1100
check-tests/qemu-iotests-quick.sh: tests/qemu-iotests-quick.sh qemu-img$(EXESUF) qemu-io$(EXESUF) qemu-nbd$(EXESUF) $(QEMU_IOTESTS_HELPERS-y)
P
Paolo Bonzini 已提交
1101 1102
	$<

1103 1104
.PHONY: $(patsubst %, check-%, $(check-qapi-schema-y))
$(patsubst %, check-%, $(check-qapi-schema-y)): check-%.json: $(SRC_PATH)/%.json
1105
	$(call quiet-command, PYTHONPATH=$(SRC_PATH)/scripts \
M
Matthias Maier 已提交
1106
		$(PYTHON) $(SRC_PATH)/tests/qapi-schema/test-qapi.py \
1107
		$^ >$*.test.out 2>$*.test.err; \
1108
		echo $$? >$*.test.exit, \
1109
		"TEST","$*.out")
1110
	@# Sanitize error messages (make them independent of build directory)
1111 1112 1113
	@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
1114

1115 1116
.PHONY: check-tests/qapi-schema/doc-good.texi
check-tests/qapi-schema/doc-good.texi: tests/qapi-schema/doc-good.test.texi
1117
	@diff -u $(SRC_PATH)/tests/qapi-schema/doc-good.texi $<
1118

R
Richard Henderson 已提交
1119 1120 1121 1122 1123 1124 1125
.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 已提交
1126 1127
# Python venv for running tests

1128
.PHONY: check-venv check-acceptance
C
Cleber Rosa 已提交
1129 1130 1131

TESTS_VENV_DIR=$(BUILD_DIR)/tests/venv
TESTS_VENV_REQ=$(SRC_PATH)/tests/requirements.txt
1132 1133 1134 1135 1136
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 已提交
1137

1138
ifneq ($(findstring v2,"v$(PYTHON_VERSION)"),v2)
C
Cleber Rosa 已提交
1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151
$(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

1152 1153 1154 1155
$(TESTS_RESULTS_DIR):
	$(call quiet-command, mkdir -p $@, \
            MKDIR, $@)

C
Cleber Rosa 已提交
1156 1157
check-venv: $(TESTS_VENV_DIR)

1158 1159 1160 1161 1162 1163 1164
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 已提交
1165 1166
# Consolidated targets

1167
.PHONY: check-block check-qapi-schema check-qtest check-unit check check-clean
1168
check-qapi-schema: $(patsubst %,check-%, $(check-qapi-schema-y)) check-tests/qapi-schema/doc-good.texi
1169
check-qtest: $(patsubst %,check-qtest-%, $(QTEST_TARGETS))
P
Paolo Bonzini 已提交
1170
check-block: $(patsubst %,check-%, $(check-block-y))
1171
check: check-qapi-schema check-unit check-softfloat check-qtest check-decodetree
W
Wenchao Xia 已提交
1172
check-clean:
A
Andreas Färber 已提交
1173
	rm -rf $(check-unit-y) tests/*.o $(QEMU_IOTESTS_HELPERS-y)
1174
	rm -rf $(sort $(foreach target,$(SYSEMU_TARGET_LIST), $(check-qtest-$(target)-y)) $(check-qtest-generic-y))
1175
	rm -f tests/test-qapi-gen-timestamp
1176
	rm -rf $(TESTS_VENV_DIR) $(TESTS_RESULTS_DIR)
W
Wenchao Xia 已提交
1177 1178

clean: check-clean
1179

1180 1181 1182 1183
# Build the help program automatically

all: $(QEMU_IOTESTS_HELPERS-y)

1184
-include $(wildcard tests/*.d)
A
Anthony Liguori 已提交
1185
-include $(wildcard tests/libqos/*.d)
1186 1187

endif