Makefile.include 33.5 KB
Newer Older
K
Kevin Wolf 已提交
1 2
export SRC_PATH

3 4
qapi-py = $(SRC_PATH)/scripts/qapi.py $(SRC_PATH)/scripts/ordereddict.py

5 6 7 8
# Get the list of all supported sysemu targets
SYSEMU_TARGET_LIST := $(subst -softmmu.mak,,$(notdir \
   $(wildcard $(SRC_PATH)/default-configs/*-softmmu.mak)))

P
Paolo Bonzini 已提交
9
check-unit-y = tests/check-qdict$(EXESUF)
10
gcov-files-check-qdict-y = qobject/qdict.c
P
Paolo Bonzini 已提交
11
check-unit-y += tests/check-qfloat$(EXESUF)
12
gcov-files-check-qfloat-y = qobject/qfloat.c
P
Paolo Bonzini 已提交
13
check-unit-y += tests/check-qint$(EXESUF)
14
gcov-files-check-qint-y = qobject/qint.c
P
Paolo Bonzini 已提交
15
check-unit-y += tests/check-qstring$(EXESUF)
16
gcov-files-check-qstring-y = qobject/qstring.c
P
Paolo Bonzini 已提交
17
check-unit-y += tests/check-qlist$(EXESUF)
18
gcov-files-check-qlist-y = qobject/qlist.c
E
Eric Blake 已提交
19 20
check-unit-y += tests/check-qnull$(EXESUF)
gcov-files-check-qnull-y = qobject/qnull.c
P
Paolo Bonzini 已提交
21
check-unit-y += tests/check-qjson$(EXESUF)
22
gcov-files-check-qjson-y = qobject/qjson.c
P
Paolo Bonzini 已提交
23
check-unit-y += tests/test-qmp-output-visitor$(EXESUF)
B
Blue Swirl 已提交
24
gcov-files-test-qmp-output-visitor-y = qapi/qmp-output-visitor.c
P
Paolo Bonzini 已提交
25
check-unit-y += tests/test-qmp-input-visitor$(EXESUF)
B
Blue Swirl 已提交
26
gcov-files-test-qmp-input-visitor-y = qapi/qmp-input-visitor.c
P
Paolo Bonzini 已提交
27 28
check-unit-y += tests/test-qmp-input-strict$(EXESUF)
check-unit-y += tests/test-qmp-commands$(EXESUF)
B
Blue Swirl 已提交
29
gcov-files-test-qmp-commands-y = qapi/qmp-dispatch.c
P
Paolo Bonzini 已提交
30
check-unit-y += tests/test-string-input-visitor$(EXESUF)
B
Blue Swirl 已提交
31
gcov-files-test-string-input-visitor-y = qapi/string-input-visitor.c
P
Paolo Bonzini 已提交
32
check-unit-y += tests/test-string-output-visitor$(EXESUF)
B
Blue Swirl 已提交
33
gcov-files-test-string-output-visitor-y = qapi/string-output-visitor.c
34 35
check-unit-y += tests/test-qmp-event$(EXESUF)
gcov-files-test-qmp-event-y += qapi/qmp-event.c
36 37
check-unit-y += tests/test-opts-visitor$(EXESUF)
gcov-files-test-opts-visitor-y = qapi/opts-visitor.c
P
Paolo Bonzini 已提交
38
check-unit-y += tests/test-coroutine$(EXESUF)
39
gcov-files-test-coroutine-y = coroutine-$(CONFIG_COROUTINE_BACKEND).c
40
check-unit-y += tests/test-visitor-serialization$(EXESUF)
M
Michael Tokarev 已提交
41
check-unit-y += tests/test-iov$(EXESUF)
42
gcov-files-test-iov-y = util/iov.c
P
Paolo Bonzini 已提交
43
check-unit-y += tests/test-aio$(EXESUF)
44
check-unit-$(CONFIG_POSIX) += tests/test-rfifolock$(EXESUF)
B
Benoît Canet 已提交
45
check-unit-y += tests/test-throttle$(EXESUF)
B
Blue Swirl 已提交
46 47
gcov-files-test-aio-$(CONFIG_WIN32) = aio-win32.c
gcov-files-test-aio-$(CONFIG_POSIX) = aio-posix.c
P
Paolo Bonzini 已提交
48
check-unit-y += tests/test-thread-pool$(EXESUF)
B
Blue Swirl 已提交
49
gcov-files-test-thread-pool-y = thread-pool.c
50 51
gcov-files-test-hbitmap-y = util/hbitmap.c
check-unit-y += tests/test-hbitmap$(EXESUF)
S
Stefan Hajnoczi 已提交
52 53
gcov-files-test-hbitmap-y = blockjob.c
check-unit-y += tests/test-blockjob-txn$(EXESUF)
54 55 56
check-unit-y += tests/test-x86-cpuid$(EXESUF)
# all code tested by test-x86-cpuid is inside topology.h
gcov-files-test-x86-cpuid-y =
57
ifeq ($(CONFIG_SOFTMMU),y)
O
Orit Wasserman 已提交
58
check-unit-y += tests/test-xbzrle$(EXESUF)
59 60 61
gcov-files-test-xbzrle-y = migration/xbzrle.c
check-unit-$(CONFIG_POSIX) += tests/test-vmstate$(EXESUF)
endif
62 63
check-unit-y += tests/test-cutils$(EXESUF)
gcov-files-test-cutils-y += util/cutils.c
64 65
check-unit-y += tests/test-mul64$(EXESUF)
gcov-files-test-mul64-y = util/host-utils.c
66 67 68
check-unit-y += tests/test-int128$(EXESUF)
# all code tested by test-int128 is inside int128.h
gcov-files-test-int128-y =
P
Paolo Bonzini 已提交
69 70
check-unit-y += tests/rcutorture$(EXESUF)
gcov-files-rcutorture-y = util/rcu.c
M
Mike Day 已提交
71 72
check-unit-y += tests/test-rcu-list$(EXESUF)
gcov-files-test-rcu-list-y = util/rcu.c
73
check-unit-y += tests/test-bitops$(EXESUF)
74
check-unit-$(CONFIG_HAS_GLIB_SUBPROCESS_TESTS) += tests/test-qdev-global-props$(EXESUF)
I
Igor Mammedov 已提交
75 76
check-unit-y += tests/check-qom-interface$(EXESUF)
gcov-files-check-qom-interface-y = qom/object.c
77 78
check-unit-y += tests/check-qom-proplist$(EXESUF)
gcov-files-check-qom-proplist-y = qom/object.c
L
Leandro Dorileo 已提交
79 80
check-unit-y += tests/test-qemu-opts$(EXESUF)
gcov-files-test-qemu-opts-y = qom/test-qemu-opts.c
81 82
check-unit-y += tests/test-write-threshold$(EXESUF)
gcov-files-test-write-threshold-y = block/write-threshold.c
83
check-unit-$(CONFIG_GNUTLS_HASH) += tests/test-crypto-hash$(EXESUF)
84
check-unit-y += tests/test-crypto-cipher$(EXESUF)
85
check-unit-y += tests/test-crypto-secret$(EXESUF)
86
check-unit-$(CONFIG_GNUTLS) += tests/test-crypto-tlscredsx509$(EXESUF)
87
check-unit-$(CONFIG_GNUTLS) += tests/test-crypto-tlssession$(EXESUF)
88 89 90
ifneq (,$(findstring qemu-ga,$(TOOLS)))
check-unit-$(CONFIG_LINUX) += tests/test-qga$(EXESUF)
endif
91
check-unit-y += tests/test-timed-average$(EXESUF)
92
check-unit-y += tests/test-io-task$(EXESUF)
93
check-unit-y += tests/test-io-channel-socket$(EXESUF)
D
Daniel P. Berrange 已提交
94
check-unit-y += tests/test-io-channel-file$(EXESUF)
D
Daniel P. Berrange 已提交
95
check-unit-$(CONFIG_GNUTLS) += tests/test-io-channel-tls$(EXESUF)
96
check-unit-y += tests/test-io-channel-command$(EXESUF)
97
check-unit-y += tests/test-io-channel-buffer$(EXESUF)
98
check-unit-y += tests/test-base64$(EXESUF)
99
check-unit-$(if $(CONFIG_NETTLE_KDF),y,$(CONFIG_GCRYPT_KDF)) += tests/test-crypto-pbkdf$(EXESUF)
100
check-unit-y += tests/test-crypto-ivgen$(EXESUF)
101
check-unit-y += tests/test-crypto-afsplit$(EXESUF)
102
check-unit-y += tests/test-crypto-xts$(EXESUF)
103
check-unit-y += tests/test-crypto-block$(EXESUF)
104 105
gcov-files-test-logging-y = tests/test-logging.c
check-unit-y += tests/test-logging$(EXESUF)
P
Paolo Bonzini 已提交
106 107 108

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

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

112 113
check-qtest-generic-y = tests/device-introspect-test$(EXESUF)
gcov-files-generic-y = qdev-monitor.c qmp.c
M
Markus Armbruster 已提交
114

115
gcov-files-ipack-y += hw/ipack/ipack.c
A
Andreas Färber 已提交
116 117 118
check-qtest-ipack-y += tests/ipoctal232-test$(EXESUF)
gcov-files-ipack-y += hw/char/ipoctal232.c

119 120 121
check-qtest-virtioserial-y += tests/virtio-console-test$(EXESUF)
gcov-files-virtioserial-y += hw/char/virtio-console.c

A
Andreas Färber 已提交
122 123 124
gcov-files-virtio-y += i386-softmmu/hw/virtio/virtio.c
check-qtest-virtio-y += tests/virtio-net-test$(EXESUF)
gcov-files-virtio-y += i386-softmmu/hw/net/virtio-net.c
125 126
check-qtest-virtio-y += tests/virtio-balloon-test$(EXESUF)
gcov-files-virtio-y += i386-softmmu/hw/virtio/virtio-balloon.c
A
Andreas Färber 已提交
127 128
check-qtest-virtio-y += tests/virtio-blk-test$(EXESUF)
gcov-files-virtio-y += i386-softmmu/hw/block/virtio-blk.c
A
Andreas Färber 已提交
129 130
check-qtest-virtio-y += tests/virtio-rng-test$(EXESUF)
gcov-files-virtio-y += hw/virtio/virtio-rng.c
A
Andreas Färber 已提交
131 132
check-qtest-virtio-y += tests/virtio-scsi-test$(EXESUF)
gcov-files-virtio-y += i386-softmmu/hw/scsi/virtio-scsi.c
A
Andreas Färber 已提交
133 134 135 136 137
ifeq ($(CONFIG_VIRTIO)$(CONFIG_VIRTFS)$(CONFIG_PCI),yyy)
check-qtest-virtio-y += tests/virtio-9p-test$(EXESUF)
gcov-files-virtio-y += hw/9pfs/virtio-9p.c
gcov-files-virtio-y += i386-softmmu/hw/9pfs/virtio-9p-device.c
endif
A
Andreas Färber 已提交
138 139
check-qtest-virtio-y += tests/virtio-serial-test$(EXESUF)
gcov-files-virtio-y += i386-softmmu/hw/char/virtio-serial-bus.c
140 141
check-qtest-virtio-y += $(check-qtest-virtioserial-y)
gcov-files-virtio-y += $(gcov-files-virtioserial-y)
A
Andreas Färber 已提交
142

A
Andreas Färber 已提交
143 144
check-qtest-pci-y += tests/e1000-test$(EXESUF)
gcov-files-pci-y += hw/net/e1000.c
145 146
check-qtest-pci-y += tests/e1000e-test$(EXESUF)
gcov-files-pci-y += hw/net/e1000e.c hw/net/e1000e_core.c
A
Andreas Färber 已提交
147 148
check-qtest-pci-y += tests/rtl8139-test$(EXESUF)
gcov-files-pci-y += hw/net/rtl8139.c
A
Andreas Färber 已提交
149 150 151
check-qtest-pci-y += tests/pcnet-test$(EXESUF)
gcov-files-pci-y += hw/net/pcnet.c
gcov-files-pci-y += hw/net/pcnet-pci.c
A
Andreas Färber 已提交
152 153
check-qtest-pci-y += tests/eepro100-test$(EXESUF)
gcov-files-pci-y += hw/net/eepro100.c
A
Andreas Färber 已提交
154 155
check-qtest-pci-y += tests/ne2000-test$(EXESUF)
gcov-files-pci-y += hw/net/ne2000.c
A
Andreas Färber 已提交
156 157
check-qtest-pci-y += tests/nvme-test$(EXESUF)
gcov-files-pci-y += hw/block/nvme.c
A
Andreas Färber 已提交
158 159
check-qtest-pci-y += tests/ac97-test$(EXESUF)
gcov-files-pci-y += hw/audio/ac97.c
A
Andreas Färber 已提交
160 161
check-qtest-pci-y += tests/es1370-test$(EXESUF)
gcov-files-pci-y += hw/audio/es1370.c
A
Andreas Färber 已提交
162 163
check-qtest-pci-y += $(check-qtest-virtio-y)
gcov-files-pci-y += $(gcov-files-virtio-y) hw/virtio/virtio-pci.c
A
Andreas Färber 已提交
164
check-qtest-pci-y += tests/tpci200-test$(EXESUF)
165
gcov-files-pci-y += hw/ipack/tpci200.c
A
Andreas Färber 已提交
166
check-qtest-pci-y += $(check-qtest-ipack-y)
167
gcov-files-pci-y += $(gcov-files-ipack-y)
G
Gerd Hoffmann 已提交
168 169 170 171
check-qtest-pci-y += tests/display-vga-test$(EXESUF)
gcov-files-pci-y += hw/display/vga.c
gcov-files-pci-y += hw/display/cirrus_vga.c
gcov-files-pci-y += hw/display/vga-pci.c
172 173 174
gcov-files-pci-y += hw/display/virtio-gpu.c
gcov-files-pci-y += hw/display/virtio-gpu-pci.c
gcov-files-pci-$(CONFIG_VIRTIO_VGA) += hw/display/virtio-vga.c
A
Andreas Färber 已提交
175 176
check-qtest-pci-y += tests/intel-hda-test$(EXESUF)
gcov-files-pci-y += hw/audio/intel-hda.c hw/audio/hda-codec.c
177
check-qtest-pci-$(CONFIG_EVENTFD) += tests/ivshmem-test$(EXESUF)
A
Andreas Färber 已提交
178
gcov-files-pci-y += hw/misc/ivshmem.c
A
Andreas Färber 已提交
179

180 181
check-qtest-i386-y = tests/endianness-test$(EXESUF)
check-qtest-i386-y += tests/fdc-test$(EXESUF)
182
gcov-files-i386-y = hw/block/fdc.c
K
Kevin Wolf 已提交
183
check-qtest-i386-y += tests/ide-test$(EXESUF)
184
check-qtest-i386-y += tests/ahci-test$(EXESUF)
185
check-qtest-i386-y += tests/hd-geo-test$(EXESUF)
186
gcov-files-i386-y += hw/block/hd-geometry.c
187
check-qtest-i386-y += tests/boot-order-test$(EXESUF)
188
check-qtest-i386-y += tests/bios-tables-test$(EXESUF)
189
check-qtest-i386-y += tests/pxe-test$(EXESUF)
190
check-qtest-i386-y += tests/rtc-test$(EXESUF)
C
Corey Minyard 已提交
191 192
check-qtest-i386-y += tests/ipmi-kcs-test$(EXESUF)
check-qtest-i386-y += tests/ipmi-bt-test$(EXESUF)
193
check-qtest-i386-y += tests/i440fx-test$(EXESUF)
A
Anthony Liguori 已提交
194
check-qtest-i386-y += tests/fw_cfg-test$(EXESUF)
195
check-qtest-i386-y += tests/drive_del-test$(EXESUF)
P
Paolo Bonzini 已提交
196
check-qtest-i386-y += tests/wdt_ib700-test$(EXESUF)
197
check-qtest-i386-y += tests/tco-test$(EXESUF)
P
Paolo Bonzini 已提交
198
gcov-files-i386-y += hw/watchdog/watchdog.c hw/watchdog/wdt_ib700.c
A
Andreas Färber 已提交
199 200
check-qtest-i386-y += $(check-qtest-pci-y)
gcov-files-i386-y += $(gcov-files-pci-y)
A
Andreas Färber 已提交
201 202
check-qtest-i386-y += tests/vmxnet3-test$(EXESUF)
gcov-files-i386-y += hw/net/vmxnet3.c
203 204
gcov-files-i386-y += hw/net/net_rx_pkt.c
gcov-files-i386-y += hw/net/net_tx_pkt.c
A
Andreas Färber 已提交
205 206
check-qtest-i386-y += tests/pvpanic-test$(EXESUF)
gcov-files-i386-y += i386-softmmu/hw/misc/pvpanic.c
A
Andreas Färber 已提交
207 208
check-qtest-i386-y += tests/i82801b11-test$(EXESUF)
gcov-files-i386-y += hw/pci-bridge/i82801b11.c
A
Andreas Färber 已提交
209 210
check-qtest-i386-y += tests/ioh3420-test$(EXESUF)
gcov-files-i386-y += hw/pci-bridge/ioh3420.c
G
Gonglei 已提交
211 212
check-qtest-i386-y += tests/usb-hcd-ohci-test$(EXESUF)
gcov-files-i386-y += hw/usb/hcd-ohci.c
G
Gonglei 已提交
213 214
check-qtest-i386-y += tests/usb-hcd-uhci-test$(EXESUF)
gcov-files-i386-y += hw/usb/hcd-uhci.c
A
Andreas Färber 已提交
215 216
check-qtest-i386-y += tests/usb-hcd-ehci-test$(EXESUF)
gcov-files-i386-y += hw/usb/hcd-ehci.c
G
Gerd Hoffmann 已提交
217 218
gcov-files-i386-y += hw/usb/dev-hid.c
gcov-files-i386-y += hw/usb/dev-storage.c
G
Gonglei 已提交
219 220
check-qtest-i386-y += tests/usb-hcd-xhci-test$(EXESUF)
gcov-files-i386-y += hw/usb/hcd-xhci.c
A
Andreas Färber 已提交
221
check-qtest-i386-y += tests/pc-cpu-test$(EXESUF)
G
Gerd Hoffmann 已提交
222 223
check-qtest-i386-y += tests/q35-test$(EXESUF)
gcov-files-i386-y += hw/pci-host/q35.c
224 225 226
check-qtest-i386-$(CONFIG_VHOST_NET_TEST_i386) += tests/vhost-user-test$(EXESUF)
ifeq ($(CONFIG_VHOST_NET_TEST_i386),)
check-qtest-x86_64-$(CONFIG_VHOST_NET_TEST_x86_64) += tests/vhost-user-test$(EXESUF)
227
endif
228
check-qtest-i386-y += tests/test-netfilter$(EXESUF)
229
check-qtest-i386-y += tests/test-filter-mirror$(EXESUF)
230
check-qtest-i386-y += tests/test-filter-redirector$(EXESUF)
A
Anthony Liguori 已提交
231
check-qtest-x86_64-y = $(check-qtest-i386-y)
232
gcov-files-i386-y += i386-softmmu/hw/timer/mc146818rtc.c
233
gcov-files-x86_64-y = $(subst i386-softmmu/,x86_64-softmmu/,$(gcov-files-i386-y))
234 235 236 237 238 239 240 241
check-qtest-mips-y = tests/endianness-test$(EXESUF)
check-qtest-mips64-y = tests/endianness-test$(EXESUF)
check-qtest-mips64el-y = tests/endianness-test$(EXESUF)
check-qtest-ppc-y = tests/endianness-test$(EXESUF)
check-qtest-ppc64-y = tests/endianness-test$(EXESUF)
check-qtest-sh4-y = tests/endianness-test$(EXESUF)
check-qtest-sh4eb-y = tests/endianness-test$(EXESUF)
check-qtest-sparc64-y = tests/endianness-test$(EXESUF)
242
#check-qtest-sparc-y = tests/m48t59-test$(EXESUF)
243
#check-qtest-sparc64-y += tests/m48t59-test$(EXESUF)
244 245
gcov-files-sparc-y += hw/timer/m48t59.c
gcov-files-sparc64-y += hw/timer/m48t59.c
246
check-qtest-arm-y = tests/tmp105-test$(EXESUF)
247
check-qtest-arm-y = tests/ds1338-test$(EXESUF)
248
gcov-files-arm-y += hw/misc/tmp105.c
M
Marc Marí 已提交
249 250
check-qtest-arm-y += tests/virtio-blk-test$(EXESUF)
gcov-files-arm-y += arm-softmmu/hw/block/virtio-blk.c
251 252
check-qtest-ppc-y += tests/boot-order-test$(EXESUF)
check-qtest-ppc64-y += tests/boot-order-test$(EXESUF)
253 254
check-qtest-ppc64-y += tests/spapr-phb-test$(EXESUF)
gcov-files-ppc64-y += ppc64-softmmu/hw/ppc/spapr_pci.c
A
Andreas Färber 已提交
255 256
check-qtest-microblazeel-y = $(check-qtest-microblaze-y)
check-qtest-xtensaeb-y = $(check-qtest-xtensa-y)
A
Anthony Liguori 已提交
257

M
Markus Armbruster 已提交
258
check-qtest-generic-y += tests/qom-test$(EXESUF)
259

260
qapi-schema += alternate-any.json
E
Eric Blake 已提交
261 262 263 264 265
qapi-schema += alternate-array.json
qapi-schema += alternate-base.json
qapi-schema += alternate-clash.json
qapi-schema += alternate-conflict-dict.json
qapi-schema += alternate-conflict-string.json
E
Eric Blake 已提交
266
qapi-schema += alternate-empty.json
E
Eric Blake 已提交
267 268 269 270 271 272 273 274 275
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
qapi-schema += args-int.json
qapi-schema += args-invalid.json
qapi-schema += args-member-array-bad.json
276
qapi-schema += args-member-case.json
E
Eric Blake 已提交
277
qapi-schema += args-member-unknown.json
278
qapi-schema += args-name-clash.json
E
Eric Blake 已提交
279 280 281 282 283 284 285 286
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
qapi-schema += bad-type-bool.json
qapi-schema += bad-type-dict.json
qapi-schema += bad-type-int.json
E
Eric Blake 已提交
287 288
qapi-schema += base-cycle-direct.json
qapi-schema += base-cycle-indirect.json
E
Eric Blake 已提交
289 290 291 292 293 294 295 296 297 298 299
qapi-schema += command-int.json
qapi-schema += comments.json
qapi-schema += double-data.json
qapi-schema += double-type.json
qapi-schema += duplicate-key.json
qapi-schema += empty.json
qapi-schema += enum-bad-name.json
qapi-schema += enum-bad-prefix.json
qapi-schema += enum-clash-member.json
qapi-schema += enum-dict-member.json
qapi-schema += enum-int-member.json
300
qapi-schema += enum-member-case.json
E
Eric Blake 已提交
301 302 303 304 305 306 307 308 309 310 311 312
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
qapi-schema += event-case.json
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
313
qapi-schema += flat-union-clash-member.json
E
Eric Blake 已提交
314
qapi-schema += flat-union-empty.json
E
Eric Blake 已提交
315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348
qapi-schema += flat-union-inline.json
qapi-schema += flat-union-int-branch.json
qapi-schema += flat-union-invalid-branch-key.json
qapi-schema += flat-union-invalid-discriminator.json
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
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-relpath.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
qapi-schema += non-objects.json
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
349
qapi-schema += reserved-command-q.json
350
qapi-schema += reserved-enum-q.json
351 352
qapi-schema += reserved-member-has.json
qapi-schema += reserved-member-q.json
E
Eric Blake 已提交
353
qapi-schema += reserved-member-u.json
354
qapi-schema += reserved-member-underscore.json
355 356
qapi-schema += reserved-type-kind.json
qapi-schema += reserved-type-list.json
E
Eric Blake 已提交
357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373
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
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
qapi-schema += union-base-no-discriminator.json
374
qapi-schema += union-branch-case.json
375
qapi-schema += union-clash-branches.json
E
Eric Blake 已提交
376
qapi-schema += union-empty.json
E
Eric Blake 已提交
377 378 379 380 381 382
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
check-qapi-schema-y := $(addprefix tests/qapi-schema/, $(qapi-schema))
383

384
GENERATED_HEADERS += tests/test-qapi-types.h tests/test-qapi-visit.h \
385 386
	tests/test-qmp-commands.h tests/test-qapi-event.h \
	tests/test-qmp-introspect.h
P
Paolo Bonzini 已提交
387 388

test-obj-y = tests/check-qint.o tests/check-qstring.o tests/check-qdict.o \
E
Eric Blake 已提交
389 390
	tests/check-qlist.o tests/check-qfloat.o tests/check-qnull.o \
	tests/check-qjson.o \
P
Paolo Bonzini 已提交
391 392 393
	tests/test-coroutine.o tests/test-string-output-visitor.o \
	tests/test-string-input-visitor.o tests/test-qmp-output-visitor.o \
	tests/test-qmp-input-visitor.o tests/test-qmp-input-strict.o \
394
	tests/test-qmp-commands.o tests/test-visitor-serialization.o \
395
	tests/test-x86-cpuid.o tests/test-mul64.o tests/test-int128.o \
P
Paolo Bonzini 已提交
396
	tests/test-opts-visitor.o tests/test-qmp-event.o \
M
Mike Day 已提交
397
	tests/rcutorture.o tests/test-rcu-list.o
P
Paolo Bonzini 已提交
398 399

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

402 403 404

# Deps that are common to various different sets of tests below
test-util-obj-y = libqemuutil.a libqemustub.a
405
test-qom-obj-y = $(qom-obj-y) $(test-util-obj-y)
406
test-qapi-obj-y = tests/test-qapi-visit.o tests/test-qapi-types.o \
407
	tests/test-qapi-event.o tests/test-qmp-introspect.o \
408
	$(test-qom-obj-y)
409
test-crypto-obj-y = $(crypto-obj-y) $(test-qom-obj-y)
410
test-io-obj-y = $(io-obj-y) $(test-crypto-obj-y)
411
test-block-obj-y = $(block-obj-y) $(test-io-obj-y)
412 413 414 415 416 417

tests/check-qint$(EXESUF): tests/check-qint.o $(test-util-obj-y)
tests/check-qstring$(EXESUF): tests/check-qstring.o $(test-util-obj-y)
tests/check-qdict$(EXESUF): tests/check-qdict.o $(test-util-obj-y)
tests/check-qlist$(EXESUF): tests/check-qlist.o $(test-util-obj-y)
tests/check-qfloat$(EXESUF): tests/check-qfloat.o $(test-util-obj-y)
E
Eric Blake 已提交
418
tests/check-qnull$(EXESUF): tests/check-qnull.o $(test-util-obj-y)
419 420 421 422 423 424 425
tests/check-qjson$(EXESUF): tests/check-qjson.o $(test-util-obj-y)
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)
tests/test-coroutine$(EXESUF): tests/test-coroutine.o $(test-block-obj-y)
tests/test-aio$(EXESUF): tests/test-aio.o $(test-block-obj-y)
tests/test-rfifolock$(EXESUF): tests/test-rfifolock.o $(test-util-obj-y)
tests/test-throttle$(EXESUF): tests/test-throttle.o $(test-block-obj-y)
S
Stefan Hajnoczi 已提交
426
tests/test-blockjob-txn$(EXESUF): tests/test-blockjob-txn.o $(test-block-obj-y) $(test-util-obj-y)
427 428 429
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)
tests/test-hbitmap$(EXESUF): tests/test-hbitmap.o $(test-util-obj-y)
430
tests/test-x86-cpuid$(EXESUF): tests/test-x86-cpuid.o
431
tests/test-xbzrle$(EXESUF): tests/test-xbzrle.o migration/xbzrle.o page_cache.o $(test-util-obj-y)
432
tests/test-cutils$(EXESUF): tests/test-cutils.o util/cutils.o
433
tests/test-int128$(EXESUF): tests/test-int128.o
434 435
tests/rcutorture$(EXESUF): tests/rcutorture.o $(test-util-obj-y)
tests/test-rcu-list$(EXESUF): tests/test-rcu-list.o $(test-util-obj-y)
P
Paolo Bonzini 已提交
436

437
tests/test-qdev-global-props$(EXESUF): tests/test-qdev-global-props.o \
438
	hw/core/qdev.o hw/core/qdev-properties.o hw/core/hotplug.o\
439
	hw/core/bus.o \
440
	hw/core/irq.o \
441
	hw/core/fw-path-provider.o \
442
	$(test-qapi-obj-y)
443
tests/test-vmstate$(EXESUF): tests/test-vmstate.o \
444
	migration/vmstate.o migration/qemu-file.o \
445 446
        migration/qemu-file-channel.o migration/qjson.o \
	$(test-io-obj-y)
447
tests/test-timed-average$(EXESUF): tests/test-timed-average.o qemu-timer.o \
448
	$(test-util-obj-y)
449 450
tests/test-base64$(EXESUF): tests/test-base64.o \
	libqemuutil.a libqemustub.a
P
Paolo Bonzini 已提交
451

452 453
tests/test-logging$(EXESUF): tests/test-logging.o $(test-util-obj-y)

P
Paolo Bonzini 已提交
454
tests/test-qapi-types.c tests/test-qapi-types.h :\
455
$(SRC_PATH)/tests/qapi-schema/qapi-schema-test.json $(SRC_PATH)/scripts/qapi-types.py $(qapi-py)
456
	$(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-types.py \
457
		$(gen-out-type) -o tests -p "test-" $<, \
458
		"  GEN   $@")
P
Paolo Bonzini 已提交
459
tests/test-qapi-visit.c tests/test-qapi-visit.h :\
460
$(SRC_PATH)/tests/qapi-schema/qapi-schema-test.json $(SRC_PATH)/scripts/qapi-visit.py $(qapi-py)
461
	$(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-visit.py \
462
		$(gen-out-type) -o tests -p "test-" $<, \
463
		"  GEN   $@")
P
Paolo Bonzini 已提交
464
tests/test-qmp-commands.h tests/test-qmp-marshal.c :\
465
$(SRC_PATH)/tests/qapi-schema/qapi-schema-test.json $(SRC_PATH)/scripts/qapi-commands.py $(qapi-py)
466
	$(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-commands.py \
467
		$(gen-out-type) -o tests -p "test-" $<, \
468
		"  GEN   $@")
469
tests/test-qapi-event.c tests/test-qapi-event.h :\
470
$(SRC_PATH)/tests/qapi-schema/qapi-schema-test.json $(SRC_PATH)/scripts/qapi-event.py $(qapi-py)
471
	$(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-event.py \
472
		$(gen-out-type) -o tests -p "test-" $<, \
473
		"  GEN   $@")
474 475 476 477 478
tests/test-qmp-introspect.c tests/test-qmp-introspect.h :\
$(SRC_PATH)/tests/qapi-schema/qapi-schema-test.json $(SRC_PATH)/scripts/qapi-introspect.py $(qapi-py)
	$(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-introspect.py \
		$(gen-out-type) -o tests -p "test-" $<, \
		"  GEN   $@")
479

480 481 482 483 484 485 486 487 488
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)
tests/test-qmp-event$(EXESUF): tests/test-qmp-event.o $(test-qapi-obj-y)
tests/test-qmp-output-visitor$(EXESUF): tests/test-qmp-output-visitor.o $(test-qapi-obj-y)
tests/test-qmp-input-visitor$(EXESUF): tests/test-qmp-input-visitor.o $(test-qapi-obj-y)
tests/test-qmp-input-strict$(EXESUF): tests/test-qmp-input-strict.o $(test-qapi-obj-y)
tests/test-qmp-commands$(EXESUF): tests/test-qmp-commands.o tests/test-qmp-marshal.o $(test-qapi-obj-y)
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)
489

490 491
tests/test-mul64$(EXESUF): tests/test-mul64.o $(test-util-obj-y)
tests/test-bitops$(EXESUF): tests/test-bitops.o $(test-util-obj-y)
492 493
tests/test-crypto-hash$(EXESUF): tests/test-crypto-hash.o $(test-crypto-obj-y)
tests/test-crypto-cipher$(EXESUF): tests/test-crypto-cipher.o $(test-crypto-obj-y)
494
tests/test-crypto-secret$(EXESUF): tests/test-crypto-secret.o $(test-crypto-obj-y)
495
tests/test-crypto-xts$(EXESUF): tests/test-crypto-xts.o $(test-crypto-obj-y)
496 497 498 499 500 501

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)
502 503
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)
504 505

tests/test-crypto-tlssession.o-cflags := $(TASN1_CFLAGS)
506 507
tests/test-crypto-tlssession$(EXESUF): tests/test-crypto-tlssession.o \
	tests/crypto-tls-x509-helpers.o tests/pkix_asn1_tab.o $(test-crypto-obj-y)
508
tests/test-io-task$(EXESUF): tests/test-io-task.o $(test-io-obj-y)
509 510
tests/test-io-channel-socket$(EXESUF): tests/test-io-channel-socket.o \
        tests/io-channel-helpers.o $(test-io-obj-y)
D
Daniel P. Berrange 已提交
511 512
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 已提交
513 514 515
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)
516 517
tests/test-io-channel-command$(EXESUF): tests/test-io-channel-command.o \
        tests/io-channel-helpers.o $(test-io-obj-y)
518 519
tests/test-io-channel-buffer$(EXESUF): tests/test-io-channel-buffer.o \
        tests/io-channel-helpers.o $(test-io-obj-y)
520
tests/test-crypto-pbkdf$(EXESUF): tests/test-crypto-pbkdf.o $(test-crypto-obj-y)
521
tests/test-crypto-ivgen$(EXESUF): tests/test-crypto-ivgen.o $(test-crypto-obj-y)
522
tests/test-crypto-afsplit$(EXESUF): tests/test-crypto-afsplit.o $(test-crypto-obj-y)
523
tests/test-crypto-block$(EXESUF): tests/test-crypto-block.o $(test-crypto-obj-y)
524

525
libqos-obj-y = tests/libqos/pci.o tests/libqos/fw_cfg.o tests/libqos/malloc.o
J
John Snow 已提交
526
libqos-obj-y += tests/libqos/i2c.o tests/libqos/libqos.o
527
libqos-pc-obj-y = $(libqos-obj-y) tests/libqos/pci-pc.o
J
John Snow 已提交
528
libqos-pc-obj-y += tests/libqos/malloc-pc.o tests/libqos/libqos-pc.o
J
John Snow 已提交
529
libqos-pc-obj-y += tests/libqos/ahci.o
A
Andreas Färber 已提交
530
libqos-omap-obj-y = $(libqos-obj-y) tests/libqos/i2c-omap.o
531
libqos-imx-obj-y = $(libqos-obj-y) tests/libqos/i2c-imx.o
532
libqos-usb-obj-y = $(libqos-pc-obj-y) tests/libqos/usb.o
M
Marc Marí 已提交
533
libqos-virtio-obj-y = $(libqos-pc-obj-y) tests/libqos/virtio.o tests/libqos/virtio-pci.o tests/libqos/virtio-mmio.o tests/libqos/malloc-generic.o
534

535
tests/device-introspect-test$(EXESUF): tests/device-introspect-test.o
536 537
tests/rtc-test$(EXESUF): tests/rtc-test.o
tests/m48t59-test$(EXESUF): tests/m48t59-test.o
538
tests/endianness-test$(EXESUF): tests/endianness-test.o
539
tests/spapr-phb-test$(EXESUF): tests/spapr-phb-test.o $(libqos-obj-y)
540
tests/fdc-test$(EXESUF): tests/fdc-test.o
K
Kevin Wolf 已提交
541
tests/ide-test$(EXESUF): tests/ide-test.o $(libqos-pc-obj-y)
J
John Snow 已提交
542
tests/ahci-test$(EXESUF): tests/ahci-test.o $(libqos-pc-obj-y)
C
Corey Minyard 已提交
543 544
tests/ipmi-kcs-test$(EXESUF): tests/ipmi-kcs-test.o
tests/ipmi-bt-test$(EXESUF): tests/ipmi-bt-test.o
545
tests/hd-geo-test$(EXESUF): tests/hd-geo-test.o
546
tests/boot-order-test$(EXESUF): tests/boot-order-test.o $(libqos-obj-y)
547 548 549
tests/bios-tables-test$(EXESUF): tests/bios-tables-test.o \
	tests/boot-sector.o $(libqos-obj-y)
tests/pxe-test$(EXESUF): tests/pxe-test.o tests/boot-sector.o $(libqos-obj-y)
A
Andreas Färber 已提交
550
tests/tmp105-test$(EXESUF): tests/tmp105-test.o $(libqos-omap-obj-y)
551
tests/ds1338-test$(EXESUF): tests/ds1338-test.o $(libqos-imx-obj-y)
552
tests/i440fx-test$(EXESUF): tests/i440fx-test.o $(libqos-pc-obj-y)
G
Gerd Hoffmann 已提交
553
tests/q35-test$(EXESUF): tests/q35-test.o $(libqos-pc-obj-y)
A
Anthony Liguori 已提交
554
tests/fw_cfg-test$(EXESUF): tests/fw_cfg-test.o $(libqos-pc-obj-y)
A
Andreas Färber 已提交
555
tests/e1000-test$(EXESUF): tests/e1000-test.o
556
tests/e1000e-test$(EXESUF): tests/e1000e-test.o $(libqos-pc-obj-y)
557
tests/rtl8139-test$(EXESUF): tests/rtl8139-test.o $(libqos-pc-obj-y)
A
Andreas Färber 已提交
558
tests/pcnet-test$(EXESUF): tests/pcnet-test.o
A
Andreas Färber 已提交
559
tests/eepro100-test$(EXESUF): tests/eepro100-test.o
A
Andreas Färber 已提交
560
tests/vmxnet3-test$(EXESUF): tests/vmxnet3-test.o
A
Andreas Färber 已提交
561
tests/ne2000-test$(EXESUF): tests/ne2000-test.o
P
Paolo Bonzini 已提交
562
tests/wdt_ib700-test$(EXESUF): tests/wdt_ib700-test.o
563
tests/tco-test$(EXESUF): tests/tco-test.o $(libqos-pc-obj-y)
564
tests/virtio-balloon-test$(EXESUF): tests/virtio-balloon-test.o
565
tests/virtio-blk-test$(EXESUF): tests/virtio-blk-test.o $(libqos-virtio-obj-y)
566
tests/virtio-net-test$(EXESUF): tests/virtio-net-test.o $(libqos-pc-obj-y) $(libqos-virtio-obj-y)
567
tests/virtio-rng-test$(EXESUF): tests/virtio-rng-test.o $(libqos-pc-obj-y)
568
tests/virtio-scsi-test$(EXESUF): tests/virtio-scsi-test.o $(libqos-virtio-obj-y)
A
Andreas Färber 已提交
569
tests/virtio-9p-test$(EXESUF): tests/virtio-9p-test.o
A
Andreas Färber 已提交
570
tests/virtio-serial-test$(EXESUF): tests/virtio-serial-test.o
571
tests/virtio-console-test$(EXESUF): tests/virtio-console-test.o
A
Andreas Färber 已提交
572
tests/tpci200-test$(EXESUF): tests/tpci200-test.o
G
Gerd Hoffmann 已提交
573
tests/display-vga-test$(EXESUF): tests/display-vga-test.o
A
Andreas Färber 已提交
574
tests/ipoctal232-test$(EXESUF): tests/ipoctal232-test.o
A
Andreas Färber 已提交
575
tests/qom-test$(EXESUF): tests/qom-test.o
576
tests/drive_del-test$(EXESUF): tests/drive_del-test.o $(libqos-pc-obj-y)
577
tests/qdev-monitor-test$(EXESUF): tests/qdev-monitor-test.o $(libqos-pc-obj-y)
A
Andreas Färber 已提交
578
tests/nvme-test$(EXESUF): tests/nvme-test.o
A
Andreas Färber 已提交
579
tests/pvpanic-test$(EXESUF): tests/pvpanic-test.o
A
Andreas Färber 已提交
580
tests/i82801b11-test$(EXESUF): tests/i82801b11-test.o
A
Andreas Färber 已提交
581
tests/ac97-test$(EXESUF): tests/ac97-test.o
A
Andreas Färber 已提交
582
tests/es1370-test$(EXESUF): tests/es1370-test.o
A
Andreas Färber 已提交
583
tests/intel-hda-test$(EXESUF): tests/intel-hda-test.o
A
Andreas Färber 已提交
584
tests/ioh3420-test$(EXESUF): tests/ioh3420-test.o
585
tests/usb-hcd-ohci-test$(EXESUF): tests/usb-hcd-ohci-test.o $(libqos-usb-obj-y)
586
tests/usb-hcd-uhci-test$(EXESUF): tests/usb-hcd-uhci-test.o $(libqos-usb-obj-y)
587
tests/usb-hcd-ehci-test$(EXESUF): tests/usb-hcd-ehci-test.o $(libqos-usb-obj-y)
588
tests/usb-hcd-xhci-test$(EXESUF): tests/usb-hcd-xhci-test.o $(libqos-usb-obj-y)
A
Andreas Färber 已提交
589
tests/pc-cpu-test$(EXESUF): tests/pc-cpu-test.o
590
tests/vhost-user-test$(EXESUF): tests/vhost-user-test.o qemu-char.o qemu-timer.o $(qtest-obj-y) $(test-io-obj-y)
591
tests/qemu-iotests/socket_scm_helper$(EXESUF): tests/qemu-iotests/socket_scm_helper.o
592 593
tests/test-qemu-opts$(EXESUF): tests/test-qemu-opts.o $(test-util-obj-y)
tests/test-write-threshold$(EXESUF): tests/test-write-threshold.o $(test-block-obj-y)
594
tests/test-netfilter$(EXESUF): tests/test-netfilter.o $(qtest-obj-y)
595
tests/test-filter-mirror$(EXESUF): tests/test-filter-mirror.o $(qtest-obj-y)
596
tests/test-filter-redirector$(EXESUF): tests/test-filter-redirector.o $(qtest-obj-y)
M
Marc-André Lureau 已提交
597
tests/ivshmem-test$(EXESUF): tests/ivshmem-test.o contrib/ivshmem-server/ivshmem-server.o $(libqos-pc-obj-y)
598
tests/vhost-user-bridge$(EXESUF): tests/vhost-user-bridge.o
B
Blue Swirl 已提交
599

N
Nikolay Nikolaev 已提交
600 601 602
ifeq ($(CONFIG_POSIX),y)
LIBS += -lutil
endif
N
Nikolay Nikolaev 已提交
603

604 605 606
# QTest rules

TARGETS=$(patsubst %-softmmu,%, $(filter %-softmmu,$(TARGET_DIRS)))
607
ifeq ($(CONFIG_POSIX),y)
M
Markus Armbruster 已提交
608
QTEST_TARGETS = $(TARGETS)
609
check-qtest-y=$(foreach TARGET,$(TARGETS), $(check-qtest-$(TARGET)-y))
M
Markus Armbruster 已提交
610 611 612
check-qtest-y += $(check-qtest-generic-y)
else
QTEST_TARGETS =
613
endif
614

615
qtest-obj-y = tests/libqtest.o $(test-util-obj-y)
616 617
$(check-qtest-y): $(qtest-obj-y)

618 619
tests/test-qga: tests/test-qga.o $(qtest-obj-y)

P
Paolo Bonzini 已提交
620 621 622 623 624
.PHONY: check-help
check-help:
	@echo "Regression testing targets:"
	@echo
	@echo " make check                Run all tests"
625 626
	@echo " make check-qtest-TARGET   Run qtest tests for given target"
	@echo " make check-qtest          Run qtest tests"
P
Paolo Bonzini 已提交
627
	@echo " make check-unit           Run qobject tests"
628
	@echo " make check-qapi-schema    Run QAPI schema tests"
P
Paolo Bonzini 已提交
629 630
	@echo " make check-block          Run block tests"
	@echo " make check-report.html    Generates an HTML test report"
W
Wenchao Xia 已提交
631
	@echo " make check-clean          Clean the tests"
P
Paolo Bonzini 已提交
632 633 634 635 636 637 638
	@echo
	@echo "Please note that HTML reports do not regenerate if the unit tests"
	@echo "has not changed."
	@echo
	@echo "The variable SPEED can be set to control the gtester speed setting."
	@echo "Default options are -k and (for make V=1) --verbose; they can be"
	@echo "changed with variable GTESTER_OPTIONS."
639

P
Paolo Bonzini 已提交
640 641
SPEED = quick
GTESTER_OPTIONS = -k $(if $(V),--verbose,-q)
B
Blue Swirl 已提交
642
GCOV_OPTIONS = -n $(if $(V),-f,)
643

P
Paolo Bonzini 已提交
644
# gtester tests, possibly with verbose output
645

646 647
.PHONY: $(patsubst %, check-qtest-%, $(QTEST_TARGETS))
$(patsubst %, check-qtest-%, $(QTEST_TARGETS)): check-qtest-%: $(check-qtest-y)
B
Blue Swirl 已提交
648
	$(if $(CONFIG_GCOV),@rm -f *.gcda */*.gcda */*/*.gcda */*/*/*.gcda,)
649
	$(call quiet-command,QTEST_QEMU_BINARY=$*-softmmu/qemu-system-$* \
650
		QTEST_QEMU_IMG=qemu-img$(EXESUF) \
651
		MALLOC_PERTURB_=$${MALLOC_PERTURB_:-$$((RANDOM % 255 + 1))} \
M
Markus Armbruster 已提交
652
		gtester $(GTESTER_OPTIONS) -m=$(SPEED) $(check-qtest-$*-y) $(check-qtest-generic-y),"GTESTER $@")
653
	$(if $(CONFIG_GCOV),@for f in $(gcov-files-$*-y) $(gcov-files-generic-y); do \
B
Blue Swirl 已提交
654 655 656
	  echo Gcov report for $$f:;\
	  $(GCOV) $(GCOV_OPTIONS) $$f -o `dirname $$f`; \
	done,)
657

P
Paolo Bonzini 已提交
658 659
.PHONY: $(patsubst %, check-%, $(check-unit-y))
$(patsubst %, check-%, $(check-unit-y)): check-%: %
B
Blue Swirl 已提交
660
	$(if $(CONFIG_GCOV),@rm -f *.gcda */*.gcda */*/*.gcda */*/*/*.gcda,)
661 662 663
	$(call quiet-command, \
		MALLOC_PERTURB_=$${MALLOC_PERTURB_:-$$((RANDOM % 255 + 1))} \
		gtester $(GTESTER_OPTIONS) -m=$(SPEED) $*,"GTESTER $*")
664
	$(if $(CONFIG_GCOV),@for f in $(gcov-files-$(subst tests/,,$*)-y) $(gcov-files-generic-y); do \
B
Blue Swirl 已提交
665 666 667
	  echo Gcov report for $$f:;\
	  $(GCOV) $(GCOV_OPTIONS) $$f -o `dirname $$f`; \
	done,)
668

P
Paolo Bonzini 已提交
669
# gtester tests with XML output
K
Kevin Wolf 已提交
670

671 672
$(patsubst %, check-report-qtest-%.xml, $(QTEST_TARGETS)): check-report-qtest-%.xml: $(check-qtest-y)
	$(call quiet-command,QTEST_QEMU_BINARY=$*-softmmu/qemu-system-$* \
673
		QTEST_QEMU_IMG=qemu-img$(EXESUF) \
674
	  gtester -q $(GTESTER_OPTIONS) -o $@ -m=$(SPEED) $(check-qtest-$*-y) $(check-qtest-generic-y),"GTESTER $@")
675

P
Paolo Bonzini 已提交
676 677
check-report-unit.xml: $(check-unit-y)
	$(call quiet-command,gtester -q $(GTESTER_OPTIONS) -o $@ -m=$(SPEED) $^, "GTESTER $@")
K
Kevin Wolf 已提交
678

P
Paolo Bonzini 已提交
679
# Reports and overall runs
K
Kevin Wolf 已提交
680

681
check-report.xml: $(patsubst %,check-report-qtest-%.xml, $(QTEST_TARGETS)) check-report-unit.xml
S
Stefan Weil 已提交
682
	$(call quiet-command,$(SRC_PATH)/scripts/gtester-cat $^ > $@, "  GEN   $@")
K
Kevin Wolf 已提交
683

P
Paolo Bonzini 已提交
684
check-report.html: check-report.xml
S
Stefan Weil 已提交
685
	$(call quiet-command,gtester-report $< > $@, "  GEN   $@")
P
Paolo Bonzini 已提交
686 687 688 689


# Other tests

690 691
QEMU_IOTESTS_HELPERS-$(CONFIG_LINUX) = tests/qemu-iotests/socket_scm_helper$(EXESUF)

P
Paolo Bonzini 已提交
692
.PHONY: check-tests/qemu-iotests-quick.sh
693
check-tests/qemu-iotests-quick.sh: tests/qemu-iotests-quick.sh qemu-img$(EXESUF) qemu-io$(EXESUF) $(QEMU_IOTESTS_HELPERS-y)
P
Paolo Bonzini 已提交
694 695
	$<

696 697 698 699 700
.PHONY: check-tests/test-qapi.py
check-tests/test-qapi.py: tests/test-qapi.py

.PHONY: $(patsubst %, check-%, $(check-qapi-schema-y))
$(patsubst %, check-%, $(check-qapi-schema-y)): check-%.json: $(SRC_PATH)/%.json
701 702
	$(call quiet-command, PYTHONPATH=$(SRC_PATH)/scripts \
		$(PYTHON) $(SRC_PATH)/tests/qapi-schema/test-qapi.py \
703
		$^ >$*.test.out 2>$*.test.err; \
704 705
		echo $$? >$*.test.exit, \
		"  TEST  $*.out")
706
	@diff -q $(SRC_PATH)/$*.out $*.test.out
707 708
	@# Sanitize error messages (make them independent of build directory)
	@perl -p -e 's|\Q$(SRC_PATH)\E/||g' $*.test.err | diff -q $(SRC_PATH)/$*.err -
709
	@diff -q $(SRC_PATH)/$*.exit $*.test.exit
710

P
Paolo Bonzini 已提交
711 712
# Consolidated targets

W
Wenchao Xia 已提交
713
.PHONY: check-qapi-schema check-qtest check-unit check check-clean
714
check-qapi-schema: $(patsubst %,check-%, $(check-qapi-schema-y))
715
check-qtest: $(patsubst %,check-qtest-%, $(QTEST_TARGETS))
P
Paolo Bonzini 已提交
716 717
check-unit: $(patsubst %,check-%, $(check-unit-y))
check-block: $(patsubst %,check-%, $(check-block-y))
718
check: check-qapi-schema check-unit check-qtest
W
Wenchao Xia 已提交
719 720
check-clean:
	$(MAKE) -C tests/tcg clean
A
Andreas Färber 已提交
721
	rm -rf $(check-unit-y) tests/*.o $(QEMU_IOTESTS_HELPERS-y)
722
	rm -rf $(sort $(foreach target,$(SYSEMU_TARGET_LIST), $(check-qtest-$(target)-y)) $(check-qtest-generic-y))
W
Wenchao Xia 已提交
723 724

clean: check-clean
725

726 727 728 729
# Build the help program automatically

all: $(QEMU_IOTESTS_HELPERS-y)

730
-include $(wildcard tests/*.d)
A
Anthony Liguori 已提交
731
-include $(wildcard tests/libqos/*.d)