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

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

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

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

111
gcov-files-ipack-y += hw/ipack/ipack.c
A
Andreas Färber 已提交
112 113 114
check-qtest-ipack-y += tests/ipoctal232-test$(EXESUF)
gcov-files-ipack-y += hw/char/ipoctal232.c

115 116 117
check-qtest-virtioserial-y += tests/virtio-console-test$(EXESUF)
gcov-files-virtioserial-y += hw/char/virtio-console.c

A
Andreas Färber 已提交
118 119 120
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
121 122
check-qtest-virtio-y += tests/virtio-balloon-test$(EXESUF)
gcov-files-virtio-y += i386-softmmu/hw/virtio/virtio-balloon.c
A
Andreas Färber 已提交
123 124
check-qtest-virtio-y += tests/virtio-blk-test$(EXESUF)
gcov-files-virtio-y += i386-softmmu/hw/block/virtio-blk.c
A
Andreas Färber 已提交
125 126
check-qtest-virtio-y += tests/virtio-rng-test$(EXESUF)
gcov-files-virtio-y += hw/virtio/virtio-rng.c
A
Andreas Färber 已提交
127 128
check-qtest-virtio-y += tests/virtio-scsi-test$(EXESUF)
gcov-files-virtio-y += i386-softmmu/hw/scsi/virtio-scsi.c
A
Andreas Färber 已提交
129 130 131 132 133
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 已提交
134 135
check-qtest-virtio-y += tests/virtio-serial-test$(EXESUF)
gcov-files-virtio-y += i386-softmmu/hw/char/virtio-serial-bus.c
136 137
check-qtest-virtio-y += $(check-qtest-virtioserial-y)
gcov-files-virtio-y += $(gcov-files-virtioserial-y)
A
Andreas Färber 已提交
138

A
Andreas Färber 已提交
139 140
check-qtest-pci-y += tests/e1000-test$(EXESUF)
gcov-files-pci-y += hw/net/e1000.c
A
Andreas Färber 已提交
141 142
check-qtest-pci-y += tests/rtl8139-test$(EXESUF)
gcov-files-pci-y += hw/net/rtl8139.c
A
Andreas Färber 已提交
143 144 145
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 已提交
146 147
check-qtest-pci-y += tests/eepro100-test$(EXESUF)
gcov-files-pci-y += hw/net/eepro100.c
A
Andreas Färber 已提交
148 149
check-qtest-pci-y += tests/ne2000-test$(EXESUF)
gcov-files-pci-y += hw/net/ne2000.c
A
Andreas Färber 已提交
150 151
check-qtest-pci-y += tests/nvme-test$(EXESUF)
gcov-files-pci-y += hw/block/nvme.c
A
Andreas Färber 已提交
152 153
check-qtest-pci-y += tests/ac97-test$(EXESUF)
gcov-files-pci-y += hw/audio/ac97.c
A
Andreas Färber 已提交
154 155
check-qtest-pci-y += tests/es1370-test$(EXESUF)
gcov-files-pci-y += hw/audio/es1370.c
A
Andreas Färber 已提交
156 157
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 已提交
158
check-qtest-pci-y += tests/tpci200-test$(EXESUF)
159
gcov-files-pci-y += hw/ipack/tpci200.c
A
Andreas Färber 已提交
160
check-qtest-pci-y += $(check-qtest-ipack-y)
161
gcov-files-pci-y += $(gcov-files-ipack-y)
G
Gerd Hoffmann 已提交
162 163 164 165
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
166 167 168
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 已提交
169 170
check-qtest-pci-y += tests/intel-hda-test$(EXESUF)
gcov-files-pci-y += hw/audio/intel-hda.c hw/audio/hda-codec.c
171
check-qtest-pci-$(CONFIG_EVENTFD) += tests/ivshmem-test$(EXESUF)
A
Andreas Färber 已提交
172
gcov-files-pci-y += hw/misc/ivshmem.c
A
Andreas Färber 已提交
173

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

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

252
qapi-schema += alternate-any.json
E
Eric Blake 已提交
253 254 255 256 257
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 已提交
258
qapi-schema += alternate-empty.json
E
Eric Blake 已提交
259 260 261 262 263 264 265 266 267
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
268
qapi-schema += args-member-case.json
E
Eric Blake 已提交
269
qapi-schema += args-member-unknown.json
270
qapi-schema += args-name-clash.json
E
Eric Blake 已提交
271 272 273 274 275 276 277 278
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 已提交
279 280
qapi-schema += base-cycle-direct.json
qapi-schema += base-cycle-indirect.json
E
Eric Blake 已提交
281 282 283 284 285 286 287 288 289 290 291
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
292
qapi-schema += enum-member-case.json
E
Eric Blake 已提交
293 294 295 296 297 298 299 300 301 302 303 304
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
305
qapi-schema += flat-union-clash-member.json
E
Eric Blake 已提交
306
qapi-schema += flat-union-empty.json
E
Eric Blake 已提交
307 308 309 310 311 312 313 314 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
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
341
qapi-schema += reserved-command-q.json
342
qapi-schema += reserved-enum-q.json
343 344
qapi-schema += reserved-member-has.json
qapi-schema += reserved-member-q.json
E
Eric Blake 已提交
345
qapi-schema += reserved-member-u.json
346
qapi-schema += reserved-member-underscore.json
347 348
qapi-schema += reserved-type-kind.json
qapi-schema += reserved-type-list.json
E
Eric Blake 已提交
349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365
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
366
qapi-schema += union-branch-case.json
367
qapi-schema += union-clash-branches.json
E
Eric Blake 已提交
368
qapi-schema += union-empty.json
E
Eric Blake 已提交
369 370 371 372 373 374
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))
375

376
GENERATED_HEADERS += tests/test-qapi-types.h tests/test-qapi-visit.h \
377 378
	tests/test-qmp-commands.h tests/test-qapi-event.h \
	tests/test-qmp-introspect.h
P
Paolo Bonzini 已提交
379 380 381 382 383 384

test-obj-y = tests/check-qint.o tests/check-qstring.o tests/check-qdict.o \
	tests/check-qlist.o tests/check-qfloat.o tests/check-qjson.o \
	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 \
385
	tests/test-qmp-commands.o tests/test-visitor-serialization.o \
386
	tests/test-x86-cpuid.o tests/test-mul64.o tests/test-int128.o \
P
Paolo Bonzini 已提交
387
	tests/test-opts-visitor.o tests/test-qmp-event.o \
M
Mike Day 已提交
388
	tests/rcutorture.o tests/test-rcu-list.o
P
Paolo Bonzini 已提交
389 390

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

393 394 395

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

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)
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 已提交
416
tests/test-blockjob-txn$(EXESUF): tests/test-blockjob-txn.o $(test-block-obj-y) $(test-util-obj-y)
417 418 419
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)
420
tests/test-x86-cpuid$(EXESUF): tests/test-x86-cpuid.o
421
tests/test-xbzrle$(EXESUF): tests/test-xbzrle.o migration/xbzrle.o page_cache.o $(test-util-obj-y)
422
tests/test-cutils$(EXESUF): tests/test-cutils.o util/cutils.o
423
tests/test-int128$(EXESUF): tests/test-int128.o
424 425
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 已提交
426

427
tests/test-qdev-global-props$(EXESUF): tests/test-qdev-global-props.o \
428
	hw/core/qdev.o hw/core/qdev-properties.o hw/core/hotplug.o\
429
	hw/core/irq.o \
430
	hw/core/fw-path-provider.o \
431
	$(test-qapi-obj-y)
432
tests/test-vmstate$(EXESUF): tests/test-vmstate.o \
433
	migration/vmstate.o migration/qemu-file.o migration/qemu-file-buf.o \
434
        migration/qemu-file-unix.o qjson.o \
435
	$(test-qom-obj-y)
436
tests/test-timed-average$(EXESUF): tests/test-timed-average.o qemu-timer.o \
437
	$(test-util-obj-y)
438 439
tests/test-base64$(EXESUF): tests/test-base64.o \
	libqemuutil.a libqemustub.a
P
Paolo Bonzini 已提交
440

441 442
tests/test-logging$(EXESUF): tests/test-logging.o $(test-util-obj-y)

P
Paolo Bonzini 已提交
443
tests/test-qapi-types.c tests/test-qapi-types.h :\
444
$(SRC_PATH)/tests/qapi-schema/qapi-schema-test.json $(SRC_PATH)/scripts/qapi-types.py $(qapi-py)
445
	$(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-types.py \
446
		$(gen-out-type) -o tests -p "test-" $<, \
447
		"  GEN   $@")
P
Paolo Bonzini 已提交
448
tests/test-qapi-visit.c tests/test-qapi-visit.h :\
449
$(SRC_PATH)/tests/qapi-schema/qapi-schema-test.json $(SRC_PATH)/scripts/qapi-visit.py $(qapi-py)
450
	$(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-visit.py \
451
		$(gen-out-type) -o tests -p "test-" $<, \
452
		"  GEN   $@")
P
Paolo Bonzini 已提交
453
tests/test-qmp-commands.h tests/test-qmp-marshal.c :\
454
$(SRC_PATH)/tests/qapi-schema/qapi-schema-test.json $(SRC_PATH)/scripts/qapi-commands.py $(qapi-py)
455
	$(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-commands.py \
456
		$(gen-out-type) -o tests -p "test-" $<, \
457
		"  GEN   $@")
458
tests/test-qapi-event.c tests/test-qapi-event.h :\
459
$(SRC_PATH)/tests/qapi-schema/qapi-schema-test.json $(SRC_PATH)/scripts/qapi-event.py $(qapi-py)
460
	$(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-event.py \
461
		$(gen-out-type) -o tests -p "test-" $<, \
462
		"  GEN   $@")
463 464 465 466 467
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   $@")
468

469 470 471 472 473 474 475 476 477
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)
478

479 480
tests/test-mul64$(EXESUF): tests/test-mul64.o $(test-util-obj-y)
tests/test-bitops$(EXESUF): tests/test-bitops.o $(test-util-obj-y)
481 482
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)
483
tests/test-crypto-secret$(EXESUF): tests/test-crypto-secret.o $(test-crypto-obj-y)
484
tests/test-crypto-xts$(EXESUF): tests/test-crypto-xts.o $(test-crypto-obj-y)
485 486 487 488 489 490

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)
491 492
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)
493 494

tests/test-crypto-tlssession.o-cflags := $(TASN1_CFLAGS)
495 496
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)
497
tests/test-io-task$(EXESUF): tests/test-io-task.o $(test-io-obj-y)
498 499
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 已提交
500 501
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 已提交
502 503 504
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)
505 506
tests/test-io-channel-command$(EXESUF): tests/test-io-channel-command.o \
        tests/io-channel-helpers.o $(test-io-obj-y)
507 508
tests/test-io-channel-buffer$(EXESUF): tests/test-io-channel-buffer.o \
        tests/io-channel-helpers.o $(test-io-obj-y)
509
tests/test-crypto-pbkdf$(EXESUF): tests/test-crypto-pbkdf.o $(test-crypto-obj-y)
510
tests/test-crypto-ivgen$(EXESUF): tests/test-crypto-ivgen.o $(test-crypto-obj-y)
511
tests/test-crypto-afsplit$(EXESUF): tests/test-crypto-afsplit.o $(test-crypto-obj-y)
512
tests/test-crypto-block$(EXESUF): tests/test-crypto-block.o $(test-crypto-obj-y)
513

514
libqos-obj-y = tests/libqos/pci.o tests/libqos/fw_cfg.o tests/libqos/malloc.o
J
John Snow 已提交
515
libqos-obj-y += tests/libqos/i2c.o tests/libqos/libqos.o
516
libqos-pc-obj-y = $(libqos-obj-y) tests/libqos/pci-pc.o
J
John Snow 已提交
517
libqos-pc-obj-y += tests/libqos/malloc-pc.o tests/libqos/libqos-pc.o
J
John Snow 已提交
518
libqos-pc-obj-y += tests/libqos/ahci.o
A
Andreas Färber 已提交
519
libqos-omap-obj-y = $(libqos-obj-y) tests/libqos/i2c-omap.o
520
libqos-imx-obj-y = $(libqos-obj-y) tests/libqos/i2c-imx.o
521
libqos-usb-obj-y = $(libqos-pc-obj-y) tests/libqos/usb.o
M
Marc Marí 已提交
522
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
523

524
tests/device-introspect-test$(EXESUF): tests/device-introspect-test.o
525 526
tests/rtc-test$(EXESUF): tests/rtc-test.o
tests/m48t59-test$(EXESUF): tests/m48t59-test.o
527
tests/endianness-test$(EXESUF): tests/endianness-test.o
528
tests/spapr-phb-test$(EXESUF): tests/spapr-phb-test.o $(libqos-obj-y)
529
tests/fdc-test$(EXESUF): tests/fdc-test.o
K
Kevin Wolf 已提交
530
tests/ide-test$(EXESUF): tests/ide-test.o $(libqos-pc-obj-y)
J
John Snow 已提交
531
tests/ahci-test$(EXESUF): tests/ahci-test.o $(libqos-pc-obj-y)
C
Corey Minyard 已提交
532 533
tests/ipmi-kcs-test$(EXESUF): tests/ipmi-kcs-test.o
tests/ipmi-bt-test$(EXESUF): tests/ipmi-bt-test.o
534
tests/hd-geo-test$(EXESUF): tests/hd-geo-test.o
535
tests/boot-order-test$(EXESUF): tests/boot-order-test.o $(libqos-obj-y)
536 537 538
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 已提交
539
tests/tmp105-test$(EXESUF): tests/tmp105-test.o $(libqos-omap-obj-y)
540
tests/ds1338-test$(EXESUF): tests/ds1338-test.o $(libqos-imx-obj-y)
541
tests/i440fx-test$(EXESUF): tests/i440fx-test.o $(libqos-pc-obj-y)
G
Gerd Hoffmann 已提交
542
tests/q35-test$(EXESUF): tests/q35-test.o $(libqos-pc-obj-y)
A
Anthony Liguori 已提交
543
tests/fw_cfg-test$(EXESUF): tests/fw_cfg-test.o $(libqos-pc-obj-y)
A
Andreas Färber 已提交
544
tests/e1000-test$(EXESUF): tests/e1000-test.o
545
tests/rtl8139-test$(EXESUF): tests/rtl8139-test.o $(libqos-pc-obj-y)
A
Andreas Färber 已提交
546
tests/pcnet-test$(EXESUF): tests/pcnet-test.o
A
Andreas Färber 已提交
547
tests/eepro100-test$(EXESUF): tests/eepro100-test.o
A
Andreas Färber 已提交
548
tests/vmxnet3-test$(EXESUF): tests/vmxnet3-test.o
A
Andreas Färber 已提交
549
tests/ne2000-test$(EXESUF): tests/ne2000-test.o
P
Paolo Bonzini 已提交
550
tests/wdt_ib700-test$(EXESUF): tests/wdt_ib700-test.o
551
tests/tco-test$(EXESUF): tests/tco-test.o $(libqos-pc-obj-y)
552
tests/virtio-balloon-test$(EXESUF): tests/virtio-balloon-test.o
553
tests/virtio-blk-test$(EXESUF): tests/virtio-blk-test.o $(libqos-virtio-obj-y)
554
tests/virtio-net-test$(EXESUF): tests/virtio-net-test.o $(libqos-pc-obj-y) $(libqos-virtio-obj-y)
555
tests/virtio-rng-test$(EXESUF): tests/virtio-rng-test.o $(libqos-pc-obj-y)
556
tests/virtio-scsi-test$(EXESUF): tests/virtio-scsi-test.o $(libqos-virtio-obj-y)
A
Andreas Färber 已提交
557
tests/virtio-9p-test$(EXESUF): tests/virtio-9p-test.o
A
Andreas Färber 已提交
558
tests/virtio-serial-test$(EXESUF): tests/virtio-serial-test.o
559
tests/virtio-console-test$(EXESUF): tests/virtio-console-test.o
A
Andreas Färber 已提交
560
tests/tpci200-test$(EXESUF): tests/tpci200-test.o
G
Gerd Hoffmann 已提交
561
tests/display-vga-test$(EXESUF): tests/display-vga-test.o
A
Andreas Färber 已提交
562
tests/ipoctal232-test$(EXESUF): tests/ipoctal232-test.o
A
Andreas Färber 已提交
563
tests/qom-test$(EXESUF): tests/qom-test.o
564
tests/drive_del-test$(EXESUF): tests/drive_del-test.o $(libqos-pc-obj-y)
565
tests/qdev-monitor-test$(EXESUF): tests/qdev-monitor-test.o $(libqos-pc-obj-y)
A
Andreas Färber 已提交
566
tests/nvme-test$(EXESUF): tests/nvme-test.o
A
Andreas Färber 已提交
567
tests/pvpanic-test$(EXESUF): tests/pvpanic-test.o
A
Andreas Färber 已提交
568
tests/i82801b11-test$(EXESUF): tests/i82801b11-test.o
A
Andreas Färber 已提交
569
tests/ac97-test$(EXESUF): tests/ac97-test.o
A
Andreas Färber 已提交
570
tests/es1370-test$(EXESUF): tests/es1370-test.o
A
Andreas Färber 已提交
571
tests/intel-hda-test$(EXESUF): tests/intel-hda-test.o
A
Andreas Färber 已提交
572
tests/ioh3420-test$(EXESUF): tests/ioh3420-test.o
573
tests/usb-hcd-ohci-test$(EXESUF): tests/usb-hcd-ohci-test.o $(libqos-usb-obj-y)
574
tests/usb-hcd-uhci-test$(EXESUF): tests/usb-hcd-uhci-test.o $(libqos-usb-obj-y)
575
tests/usb-hcd-ehci-test$(EXESUF): tests/usb-hcd-ehci-test.o $(libqos-usb-obj-y)
576
tests/usb-hcd-xhci-test$(EXESUF): tests/usb-hcd-xhci-test.o $(libqos-usb-obj-y)
A
Andreas Färber 已提交
577
tests/pc-cpu-test$(EXESUF): tests/pc-cpu-test.o
578
tests/vhost-user-test$(EXESUF): tests/vhost-user-test.o qemu-char.o qemu-timer.o $(qtest-obj-y) $(test-io-obj-y)
579
tests/qemu-iotests/socket_scm_helper$(EXESUF): tests/qemu-iotests/socket_scm_helper.o
580 581
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)
582
tests/test-netfilter$(EXESUF): tests/test-netfilter.o $(qtest-obj-y)
M
Marc-André Lureau 已提交
583
tests/ivshmem-test$(EXESUF): tests/ivshmem-test.o contrib/ivshmem-server/ivshmem-server.o $(libqos-pc-obj-y)
584
tests/vhost-user-bridge$(EXESUF): tests/vhost-user-bridge.o
B
Blue Swirl 已提交
585

N
Nikolay Nikolaev 已提交
586 587 588
ifeq ($(CONFIG_POSIX),y)
LIBS += -lutil
endif
N
Nikolay Nikolaev 已提交
589

590 591 592
# QTest rules

TARGETS=$(patsubst %-softmmu,%, $(filter %-softmmu,$(TARGET_DIRS)))
593
ifeq ($(CONFIG_POSIX),y)
M
Markus Armbruster 已提交
594
QTEST_TARGETS = $(TARGETS)
595
check-qtest-y=$(foreach TARGET,$(TARGETS), $(check-qtest-$(TARGET)-y))
M
Markus Armbruster 已提交
596 597 598
check-qtest-y += $(check-qtest-generic-y)
else
QTEST_TARGETS =
599
endif
600

601
qtest-obj-y = tests/libqtest.o $(test-util-obj-y)
602 603
$(check-qtest-y): $(qtest-obj-y)

604 605
tests/test-qga: tests/test-qga.o $(qtest-obj-y)

P
Paolo Bonzini 已提交
606 607 608 609 610
.PHONY: check-help
check-help:
	@echo "Regression testing targets:"
	@echo
	@echo " make check                Run all tests"
611 612
	@echo " make check-qtest-TARGET   Run qtest tests for given target"
	@echo " make check-qtest          Run qtest tests"
P
Paolo Bonzini 已提交
613
	@echo " make check-unit           Run qobject tests"
614
	@echo " make check-qapi-schema    Run QAPI schema tests"
P
Paolo Bonzini 已提交
615 616
	@echo " make check-block          Run block tests"
	@echo " make check-report.html    Generates an HTML test report"
W
Wenchao Xia 已提交
617
	@echo " make check-clean          Clean the tests"
P
Paolo Bonzini 已提交
618 619 620 621 622 623 624
	@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."
625

P
Paolo Bonzini 已提交
626 627
SPEED = quick
GTESTER_OPTIONS = -k $(if $(V),--verbose,-q)
B
Blue Swirl 已提交
628
GCOV_OPTIONS = -n $(if $(V),-f,)
629

P
Paolo Bonzini 已提交
630
# gtester tests, possibly with verbose output
631

632 633
.PHONY: $(patsubst %, check-qtest-%, $(QTEST_TARGETS))
$(patsubst %, check-qtest-%, $(QTEST_TARGETS)): check-qtest-%: $(check-qtest-y)
B
Blue Swirl 已提交
634
	$(if $(CONFIG_GCOV),@rm -f *.gcda */*.gcda */*/*.gcda */*/*/*.gcda,)
635
	$(call quiet-command,QTEST_QEMU_BINARY=$*-softmmu/qemu-system-$* \
636
		QTEST_QEMU_IMG=qemu-img$(EXESUF) \
637
		MALLOC_PERTURB_=$${MALLOC_PERTURB_:-$$((RANDOM % 255 + 1))} \
M
Markus Armbruster 已提交
638
		gtester $(GTESTER_OPTIONS) -m=$(SPEED) $(check-qtest-$*-y) $(check-qtest-generic-y),"GTESTER $@")
639
	$(if $(CONFIG_GCOV),@for f in $(gcov-files-$*-y) $(gcov-files-generic-y); do \
B
Blue Swirl 已提交
640 641 642
	  echo Gcov report for $$f:;\
	  $(GCOV) $(GCOV_OPTIONS) $$f -o `dirname $$f`; \
	done,)
643

P
Paolo Bonzini 已提交
644 645
.PHONY: $(patsubst %, check-%, $(check-unit-y))
$(patsubst %, check-%, $(check-unit-y)): check-%: %
B
Blue Swirl 已提交
646
	$(if $(CONFIG_GCOV),@rm -f *.gcda */*.gcda */*/*.gcda */*/*/*.gcda,)
647 648 649
	$(call quiet-command, \
		MALLOC_PERTURB_=$${MALLOC_PERTURB_:-$$((RANDOM % 255 + 1))} \
		gtester $(GTESTER_OPTIONS) -m=$(SPEED) $*,"GTESTER $*")
650
	$(if $(CONFIG_GCOV),@for f in $(gcov-files-$(subst tests/,,$*)-y) $(gcov-files-generic-y); do \
B
Blue Swirl 已提交
651 652 653
	  echo Gcov report for $$f:;\
	  $(GCOV) $(GCOV_OPTIONS) $$f -o `dirname $$f`; \
	done,)
654

P
Paolo Bonzini 已提交
655
# gtester tests with XML output
K
Kevin Wolf 已提交
656

657 658
$(patsubst %, check-report-qtest-%.xml, $(QTEST_TARGETS)): check-report-qtest-%.xml: $(check-qtest-y)
	$(call quiet-command,QTEST_QEMU_BINARY=$*-softmmu/qemu-system-$* \
659
		QTEST_QEMU_IMG=qemu-img$(EXESUF) \
660
	  gtester -q $(GTESTER_OPTIONS) -o $@ -m=$(SPEED) $(check-qtest-$*-y) $(check-qtest-generic-y),"GTESTER $@")
661

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

P
Paolo Bonzini 已提交
665
# Reports and overall runs
K
Kevin Wolf 已提交
666

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

P
Paolo Bonzini 已提交
670
check-report.html: check-report.xml
S
Stefan Weil 已提交
671
	$(call quiet-command,gtester-report $< > $@, "  GEN   $@")
P
Paolo Bonzini 已提交
672 673 674 675


# Other tests

676 677
QEMU_IOTESTS_HELPERS-$(CONFIG_LINUX) = tests/qemu-iotests/socket_scm_helper$(EXESUF)

P
Paolo Bonzini 已提交
678
.PHONY: check-tests/qemu-iotests-quick.sh
679
check-tests/qemu-iotests-quick.sh: tests/qemu-iotests-quick.sh qemu-img$(EXESUF) qemu-io$(EXESUF) $(QEMU_IOTESTS_HELPERS-y)
P
Paolo Bonzini 已提交
680 681
	$<

682 683 684 685 686
.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
687 688
	$(call quiet-command, PYTHONPATH=$(SRC_PATH)/scripts \
		$(PYTHON) $(SRC_PATH)/tests/qapi-schema/test-qapi.py \
689
		$^ >$*.test.out 2>$*.test.err; \
690 691
		echo $$? >$*.test.exit, \
		"  TEST  $*.out")
692
	@diff -q $(SRC_PATH)/$*.out $*.test.out
693 694
	@# 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 -
695
	@diff -q $(SRC_PATH)/$*.exit $*.test.exit
696

P
Paolo Bonzini 已提交
697 698
# Consolidated targets

W
Wenchao Xia 已提交
699
.PHONY: check-qapi-schema check-qtest check-unit check check-clean
700
check-qapi-schema: $(patsubst %,check-%, $(check-qapi-schema-y))
701
check-qtest: $(patsubst %,check-qtest-%, $(QTEST_TARGETS))
P
Paolo Bonzini 已提交
702 703
check-unit: $(patsubst %,check-%, $(check-unit-y))
check-block: $(patsubst %,check-%, $(check-block-y))
704
check: check-qapi-schema check-unit check-qtest
W
Wenchao Xia 已提交
705 706
check-clean:
	$(MAKE) -C tests/tcg clean
A
Andreas Färber 已提交
707
	rm -rf $(check-unit-y) tests/*.o $(QEMU_IOTESTS_HELPERS-y)
708
	rm -rf $(sort $(foreach target,$(SYSEMU_TARGET_LIST), $(check-qtest-$(target)-y)) $(check-qtest-generic-y))
W
Wenchao Xia 已提交
709 710

clean: check-clean
711

712 713 714 715
# Build the help program automatically

all: $(QEMU_IOTESTS_HELPERS-y)

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