Makefile 32.3 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)
P
Paolo Bonzini 已提交
97 98 99

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

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

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

106
gcov-files-ipack-y += hw/ipack/ipack.c
A
Andreas Färber 已提交
107 108 109
check-qtest-ipack-y += tests/ipoctal232-test$(EXESUF)
gcov-files-ipack-y += hw/char/ipoctal232.c

110 111 112
check-qtest-virtioserial-y += tests/virtio-console-test$(EXESUF)
gcov-files-virtioserial-y += hw/char/virtio-console.c

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

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

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

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

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

371
GENERATED_HEADERS += tests/test-qapi-types.h tests/test-qapi-visit.h \
372 373
	tests/test-qmp-commands.h tests/test-qapi-event.h \
	tests/test-qmp-introspect.h
P
Paolo Bonzini 已提交
374 375 376 377 378 379

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 \
380
	tests/test-qmp-commands.o tests/test-visitor-serialization.o \
381
	tests/test-x86-cpuid.o tests/test-mul64.o tests/test-int128.o \
P
Paolo Bonzini 已提交
382
	tests/test-opts-visitor.o tests/test-qmp-event.o \
M
Mike Day 已提交
383
	tests/rcutorture.o tests/test-rcu-list.o
P
Paolo Bonzini 已提交
384 385

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

388 389 390

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

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

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

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

462 463 464 465 466 467 468 469 470
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)
471

472 473
tests/test-mul64$(EXESUF): tests/test-mul64.o $(test-util-obj-y)
tests/test-bitops$(EXESUF): tests/test-bitops.o $(test-util-obj-y)
474 475
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)
476
tests/test-crypto-secret$(EXESUF): tests/test-crypto-secret.o $(test-crypto-obj-y)
477 478 479 480 481 482

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)
483 484
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)
485 486

tests/test-crypto-tlssession.o-cflags := $(TASN1_CFLAGS)
487 488
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)
489
tests/test-io-task$(EXESUF): tests/test-io-task.o $(test-io-obj-y)
490 491
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 已提交
492 493
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 已提交
494 495 496
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)
497 498
tests/test-io-channel-command$(EXESUF): tests/test-io-channel-command.o \
        tests/io-channel-helpers.o $(test-io-obj-y)
499 500
tests/test-io-channel-buffer$(EXESUF): tests/test-io-channel-buffer.o \
        tests/io-channel-helpers.o $(test-io-obj-y)
501
tests/test-crypto-pbkdf$(EXESUF): tests/test-crypto-pbkdf.o $(test-crypto-obj-y)
502
tests/test-crypto-ivgen$(EXESUF): tests/test-crypto-ivgen.o $(test-crypto-obj-y)
503

504
libqos-obj-y = tests/libqos/pci.o tests/libqos/fw_cfg.o tests/libqos/malloc.o
J
John Snow 已提交
505
libqos-obj-y += tests/libqos/i2c.o tests/libqos/libqos.o
506
libqos-pc-obj-y = $(libqos-obj-y) tests/libqos/pci-pc.o
J
John Snow 已提交
507
libqos-pc-obj-y += tests/libqos/malloc-pc.o tests/libqos/libqos-pc.o
J
John Snow 已提交
508
libqos-pc-obj-y += tests/libqos/ahci.o
A
Andreas Färber 已提交
509
libqos-omap-obj-y = $(libqos-obj-y) tests/libqos/i2c-omap.o
510
libqos-imx-obj-y = $(libqos-obj-y) tests/libqos/i2c-imx.o
511
libqos-usb-obj-y = $(libqos-pc-obj-y) tests/libqos/usb.o
M
Marc Marí 已提交
512
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
513

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

N
Nikolay Nikolaev 已提交
576 577 578
ifeq ($(CONFIG_POSIX),y)
LIBS += -lutil
endif
N
Nikolay Nikolaev 已提交
579

580 581 582
# QTest rules

TARGETS=$(patsubst %-softmmu,%, $(filter %-softmmu,$(TARGET_DIRS)))
583
ifeq ($(CONFIG_POSIX),y)
M
Markus Armbruster 已提交
584
QTEST_TARGETS = $(TARGETS)
585
check-qtest-y=$(foreach TARGET,$(TARGETS), $(check-qtest-$(TARGET)-y))
M
Markus Armbruster 已提交
586 587 588
check-qtest-y += $(check-qtest-generic-y)
else
QTEST_TARGETS =
589
endif
590

591
qtest-obj-y = tests/libqtest.o $(test-util-obj-y)
592 593
$(check-qtest-y): $(qtest-obj-y)

594 595
tests/test-qga: tests/test-qga.o $(qtest-obj-y)

P
Paolo Bonzini 已提交
596 597 598 599 600
.PHONY: check-help
check-help:
	@echo "Regression testing targets:"
	@echo
	@echo " make check                Run all tests"
601 602
	@echo " make check-qtest-TARGET   Run qtest tests for given target"
	@echo " make check-qtest          Run qtest tests"
P
Paolo Bonzini 已提交
603
	@echo " make check-unit           Run qobject tests"
604
	@echo " make check-qapi-schema    Run QAPI schema tests"
P
Paolo Bonzini 已提交
605 606
	@echo " make check-block          Run block tests"
	@echo " make check-report.html    Generates an HTML test report"
W
Wenchao Xia 已提交
607
	@echo " make check-clean          Clean the tests"
P
Paolo Bonzini 已提交
608 609 610 611 612 613 614
	@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."
615

P
Paolo Bonzini 已提交
616 617
SPEED = quick
GTESTER_OPTIONS = -k $(if $(V),--verbose,-q)
B
Blue Swirl 已提交
618
GCOV_OPTIONS = -n $(if $(V),-f,)
619

P
Paolo Bonzini 已提交
620
# gtester tests, possibly with verbose output
621

622 623
.PHONY: $(patsubst %, check-qtest-%, $(QTEST_TARGETS))
$(patsubst %, check-qtest-%, $(QTEST_TARGETS)): check-qtest-%: $(check-qtest-y)
B
Blue Swirl 已提交
624
	$(if $(CONFIG_GCOV),@rm -f *.gcda */*.gcda */*/*.gcda */*/*/*.gcda,)
625
	$(call quiet-command,QTEST_QEMU_BINARY=$*-softmmu/qemu-system-$* \
626
		QTEST_QEMU_IMG=qemu-img$(EXESUF) \
627
		MALLOC_PERTURB_=$${MALLOC_PERTURB_:-$$((RANDOM % 255 + 1))} \
M
Markus Armbruster 已提交
628
		gtester $(GTESTER_OPTIONS) -m=$(SPEED) $(check-qtest-$*-y) $(check-qtest-generic-y),"GTESTER $@")
629
	$(if $(CONFIG_GCOV),@for f in $(gcov-files-$*-y) $(gcov-files-generic-y); do \
B
Blue Swirl 已提交
630 631 632
	  echo Gcov report for $$f:;\
	  $(GCOV) $(GCOV_OPTIONS) $$f -o `dirname $$f`; \
	done,)
633

P
Paolo Bonzini 已提交
634 635
.PHONY: $(patsubst %, check-%, $(check-unit-y))
$(patsubst %, check-%, $(check-unit-y)): check-%: %
B
Blue Swirl 已提交
636
	$(if $(CONFIG_GCOV),@rm -f *.gcda */*.gcda */*/*.gcda */*/*/*.gcda,)
637 638 639
	$(call quiet-command, \
		MALLOC_PERTURB_=$${MALLOC_PERTURB_:-$$((RANDOM % 255 + 1))} \
		gtester $(GTESTER_OPTIONS) -m=$(SPEED) $*,"GTESTER $*")
640
	$(if $(CONFIG_GCOV),@for f in $(gcov-files-$(subst tests/,,$*)-y) $(gcov-files-generic-y); do \
B
Blue Swirl 已提交
641 642 643
	  echo Gcov report for $$f:;\
	  $(GCOV) $(GCOV_OPTIONS) $$f -o `dirname $$f`; \
	done,)
644

P
Paolo Bonzini 已提交
645
# gtester tests with XML output
K
Kevin Wolf 已提交
646

647 648
$(patsubst %, check-report-qtest-%.xml, $(QTEST_TARGETS)): check-report-qtest-%.xml: $(check-qtest-y)
	$(call quiet-command,QTEST_QEMU_BINARY=$*-softmmu/qemu-system-$* \
649
		QTEST_QEMU_IMG=qemu-img$(EXESUF) \
650
	  gtester -q $(GTESTER_OPTIONS) -o $@ -m=$(SPEED) $(check-qtest-$*-y) $(check-qtest-generic-y),"GTESTER $@")
651

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

P
Paolo Bonzini 已提交
655
# Reports and overall runs
K
Kevin Wolf 已提交
656

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

P
Paolo Bonzini 已提交
660
check-report.html: check-report.xml
S
Stefan Weil 已提交
661
	$(call quiet-command,gtester-report $< > $@, "  GEN   $@")
P
Paolo Bonzini 已提交
662 663 664 665


# Other tests

666 667
QEMU_IOTESTS_HELPERS-$(CONFIG_LINUX) = tests/qemu-iotests/socket_scm_helper$(EXESUF)

P
Paolo Bonzini 已提交
668
.PHONY: check-tests/qemu-iotests-quick.sh
669
check-tests/qemu-iotests-quick.sh: tests/qemu-iotests-quick.sh qemu-img$(EXESUF) qemu-io$(EXESUF) $(QEMU_IOTESTS_HELPERS-y)
P
Paolo Bonzini 已提交
670 671
	$<

672 673 674 675 676
.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
677 678
	$(call quiet-command, PYTHONPATH=$(SRC_PATH)/scripts \
		$(PYTHON) $(SRC_PATH)/tests/qapi-schema/test-qapi.py \
679
		$^ >$*.test.out 2>$*.test.err; \
680 681
		echo $$? >$*.test.exit, \
		"  TEST  $*.out")
682
	@diff -q $(SRC_PATH)/$*.out $*.test.out
683 684
	@# 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 -
685
	@diff -q $(SRC_PATH)/$*.exit $*.test.exit
686

P
Paolo Bonzini 已提交
687 688
# Consolidated targets

W
Wenchao Xia 已提交
689
.PHONY: check-qapi-schema check-qtest check-unit check check-clean
690
check-qapi-schema: $(patsubst %,check-%, $(check-qapi-schema-y))
691
check-qtest: $(patsubst %,check-qtest-%, $(QTEST_TARGETS))
P
Paolo Bonzini 已提交
692 693
check-unit: $(patsubst %,check-%, $(check-unit-y))
check-block: $(patsubst %,check-%, $(check-block-y))
694
check: check-qapi-schema check-unit check-qtest
W
Wenchao Xia 已提交
695 696
check-clean:
	$(MAKE) -C tests/tcg clean
A
Andreas Färber 已提交
697
	rm -rf $(check-unit-y) tests/*.o $(QEMU_IOTESTS_HELPERS-y)
698
	rm -rf $(sort $(foreach target,$(SYSEMU_TARGET_LIST), $(check-qtest-$(target)-y)) $(check-qtest-generic-y))
W
Wenchao Xia 已提交
699 700

clean: check-clean
701

702 703 704 705
# Build the help program automatically

all: $(QEMU_IOTESTS_HELPERS-y)

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