Makefile 30.7 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-$(CONFIG_GNUTLS) += tests/test-crypto-tlscredsx509$(EXESUF)
84
check-unit-$(CONFIG_GNUTLS) += tests/test-crypto-tlssession$(EXESUF)
85
check-unit-$(CONFIG_LINUX) += tests/test-qga$(EXESUF)
86
check-unit-y += tests/test-timed-average$(EXESUF)
87
check-unit-y += tests/test-io-task$(EXESUF)
88
check-unit-y += tests/test-io-channel-socket$(EXESUF)
P
Paolo Bonzini 已提交
89 90 91

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

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

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

98
gcov-files-ipack-y += hw/ipack/ipack.c
A
Andreas Färber 已提交
99 100 101
check-qtest-ipack-y += tests/ipoctal232-test$(EXESUF)
gcov-files-ipack-y += hw/char/ipoctal232.c

102 103 104
check-qtest-virtioserial-y += tests/virtio-console-test$(EXESUF)
gcov-files-virtioserial-y += hw/char/virtio-console.c

A
Andreas Färber 已提交
105 106 107
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
108 109
check-qtest-virtio-y += tests/virtio-balloon-test$(EXESUF)
gcov-files-virtio-y += i386-softmmu/hw/virtio/virtio-balloon.c
A
Andreas Färber 已提交
110 111
check-qtest-virtio-y += tests/virtio-blk-test$(EXESUF)
gcov-files-virtio-y += i386-softmmu/hw/block/virtio-blk.c
A
Andreas Färber 已提交
112 113
check-qtest-virtio-y += tests/virtio-rng-test$(EXESUF)
gcov-files-virtio-y += hw/virtio/virtio-rng.c
A
Andreas Färber 已提交
114 115
check-qtest-virtio-y += tests/virtio-scsi-test$(EXESUF)
gcov-files-virtio-y += i386-softmmu/hw/scsi/virtio-scsi.c
A
Andreas Färber 已提交
116 117 118 119 120
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 已提交
121 122
check-qtest-virtio-y += tests/virtio-serial-test$(EXESUF)
gcov-files-virtio-y += i386-softmmu/hw/char/virtio-serial-bus.c
123 124
check-qtest-virtio-y += $(check-qtest-virtioserial-y)
gcov-files-virtio-y += $(gcov-files-virtioserial-y)
A
Andreas Färber 已提交
125

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

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

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

E
Eric Blake 已提交
236 237 238 239 240
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 已提交
241
qapi-schema += alternate-empty.json
E
Eric Blake 已提交
242 243 244 245 246 247 248 249 250
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
251
qapi-schema += args-member-case.json
E
Eric Blake 已提交
252
qapi-schema += args-member-unknown.json
253
qapi-schema += args-name-clash.json
E
Eric Blake 已提交
254 255 256 257 258 259 260 261
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 已提交
262 263
qapi-schema += base-cycle-direct.json
qapi-schema += base-cycle-indirect.json
E
Eric Blake 已提交
264 265 266 267 268 269 270 271 272 273 274
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
275
qapi-schema += enum-member-case.json
E
Eric Blake 已提交
276 277 278 279 280 281 282 283 284 285 286 287
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
288
qapi-schema += flat-union-clash-member.json
E
Eric Blake 已提交
289
qapi-schema += flat-union-empty.json
E
Eric Blake 已提交
290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323
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
324
qapi-schema += reserved-command-q.json
325
qapi-schema += reserved-enum-q.json
326 327
qapi-schema += reserved-member-has.json
qapi-schema += reserved-member-q.json
E
Eric Blake 已提交
328
qapi-schema += reserved-member-u.json
329
qapi-schema += reserved-member-underscore.json
330 331
qapi-schema += reserved-type-kind.json
qapi-schema += reserved-type-list.json
E
Eric Blake 已提交
332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348
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
349
qapi-schema += union-branch-case.json
350 351
qapi-schema += union-clash-branches.json
qapi-schema += union-clash-data.json
E
Eric Blake 已提交
352
qapi-schema += union-empty.json
E
Eric Blake 已提交
353 354 355 356 357 358
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))
359

360
GENERATED_HEADERS += tests/test-qapi-types.h tests/test-qapi-visit.h \
361 362
	tests/test-qmp-commands.h tests/test-qapi-event.h \
	tests/test-qmp-introspect.h
P
Paolo Bonzini 已提交
363 364 365 366 367 368

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 \
369
	tests/test-qmp-commands.o tests/test-visitor-serialization.o \
370
	tests/test-x86-cpuid.o tests/test-mul64.o tests/test-int128.o \
P
Paolo Bonzini 已提交
371
	tests/test-opts-visitor.o tests/test-qmp-event.o \
M
Mike Day 已提交
372
	tests/rcutorture.o tests/test-rcu-list.o
P
Paolo Bonzini 已提交
373 374

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

377 378 379

# Deps that are common to various different sets of tests below
test-util-obj-y = libqemuutil.a libqemustub.a
380
test-qom-obj-y = $(qom-obj-y) $(test-util-obj-y)
381
test-qapi-obj-y = tests/test-qapi-visit.o tests/test-qapi-types.o \
382
	tests/test-qapi-event.o tests/test-qmp-introspect.o \
383
	$(test-qom-obj-y)
384
test-crypto-obj-y = $(crypto-obj-y) $(test-qom-obj-y)
385
test-block-obj-y = $(block-obj-y) $(test-crypto-obj-y)
386
test-io-obj-y = $(io-obj-y) $(test-crypto-obj-y)
387 388 389 390 391 392 393 394 395 396 397 398 399

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 已提交
400
tests/test-blockjob-txn$(EXESUF): tests/test-blockjob-txn.o $(test-block-obj-y) $(test-util-obj-y)
401 402 403
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)
404
tests/test-x86-cpuid$(EXESUF): tests/test-x86-cpuid.o
405
tests/test-xbzrle$(EXESUF): tests/test-xbzrle.o migration/xbzrle.o page_cache.o $(test-util-obj-y)
406
tests/test-cutils$(EXESUF): tests/test-cutils.o util/cutils.o
407
tests/test-int128$(EXESUF): tests/test-int128.o
408 409
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 已提交
410

411
tests/test-qdev-global-props$(EXESUF): tests/test-qdev-global-props.o \
412
	hw/core/qdev.o hw/core/qdev-properties.o hw/core/hotplug.o\
413
	hw/core/irq.o \
414
	hw/core/fw-path-provider.o \
415
	$(test-qapi-obj-y)
416
tests/test-vmstate$(EXESUF): tests/test-vmstate.o \
417
	migration/vmstate.o migration/qemu-file.o migration/qemu-file-buf.o \
418
        migration/qemu-file-unix.o qjson.o \
419
	$(test-qom-obj-y)
420
tests/test-timed-average$(EXESUF): tests/test-timed-average.o qemu-timer.o \
421
	$(test-util-obj-y)
P
Paolo Bonzini 已提交
422 423

tests/test-qapi-types.c tests/test-qapi-types.h :\
424
$(SRC_PATH)/tests/qapi-schema/qapi-schema-test.json $(SRC_PATH)/scripts/qapi-types.py $(qapi-py)
425
	$(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-types.py \
426
		$(gen-out-type) -o tests -p "test-" $<, \
427
		"  GEN   $@")
P
Paolo Bonzini 已提交
428
tests/test-qapi-visit.c tests/test-qapi-visit.h :\
429
$(SRC_PATH)/tests/qapi-schema/qapi-schema-test.json $(SRC_PATH)/scripts/qapi-visit.py $(qapi-py)
430
	$(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-visit.py \
431
		$(gen-out-type) -o tests -p "test-" $<, \
432
		"  GEN   $@")
P
Paolo Bonzini 已提交
433
tests/test-qmp-commands.h tests/test-qmp-marshal.c :\
434
$(SRC_PATH)/tests/qapi-schema/qapi-schema-test.json $(SRC_PATH)/scripts/qapi-commands.py $(qapi-py)
435
	$(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-commands.py \
436
		$(gen-out-type) -o tests -p "test-" $<, \
437
		"  GEN   $@")
438
tests/test-qapi-event.c tests/test-qapi-event.h :\
439
$(SRC_PATH)/tests/qapi-schema/qapi-schema-test.json $(SRC_PATH)/scripts/qapi-event.py $(qapi-py)
440
	$(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-event.py \
441
		$(gen-out-type) -o tests -p "test-" $<, \
442
		"  GEN   $@")
443 444 445 446 447
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   $@")
448

449 450 451 452 453 454 455 456 457
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)
458

459 460
tests/test-mul64$(EXESUF): tests/test-mul64.o $(test-util-obj-y)
tests/test-bitops$(EXESUF): tests/test-bitops.o $(test-util-obj-y)
461 462
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)
463 464 465 466 467 468

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)
469 470
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)
471 472

tests/test-crypto-tlssession.o-cflags := $(TASN1_CFLAGS)
473 474
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)
475
tests/test-io-task$(EXESUF): tests/test-io-task.o $(test-io-obj-y)
476 477
tests/test-io-channel-socket$(EXESUF): tests/test-io-channel-socket.o \
        tests/io-channel-helpers.o $(test-io-obj-y)
478

479
libqos-obj-y = tests/libqos/pci.o tests/libqos/fw_cfg.o tests/libqos/malloc.o
J
John Snow 已提交
480
libqos-obj-y += tests/libqos/i2c.o tests/libqos/libqos.o
481
libqos-pc-obj-y = $(libqos-obj-y) tests/libqos/pci-pc.o
J
John Snow 已提交
482
libqos-pc-obj-y += tests/libqos/malloc-pc.o tests/libqos/libqos-pc.o
J
John Snow 已提交
483
libqos-pc-obj-y += tests/libqos/ahci.o
A
Andreas Färber 已提交
484
libqos-omap-obj-y = $(libqos-obj-y) tests/libqos/i2c-omap.o
485
libqos-imx-obj-y = $(libqos-obj-y) tests/libqos/i2c-imx.o
486
libqos-usb-obj-y = $(libqos-pc-obj-y) tests/libqos/usb.o
M
Marc Marí 已提交
487
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
488

489
tests/device-introspect-test$(EXESUF): tests/device-introspect-test.o
490 491
tests/rtc-test$(EXESUF): tests/rtc-test.o
tests/m48t59-test$(EXESUF): tests/m48t59-test.o
492
tests/endianness-test$(EXESUF): tests/endianness-test.o
493
tests/spapr-phb-test$(EXESUF): tests/spapr-phb-test.o $(libqos-obj-y)
494
tests/fdc-test$(EXESUF): tests/fdc-test.o
K
Kevin Wolf 已提交
495
tests/ide-test$(EXESUF): tests/ide-test.o $(libqos-pc-obj-y)
J
John Snow 已提交
496
tests/ahci-test$(EXESUF): tests/ahci-test.o $(libqos-pc-obj-y)
497
tests/hd-geo-test$(EXESUF): tests/hd-geo-test.o
498
tests/boot-order-test$(EXESUF): tests/boot-order-test.o $(libqos-obj-y)
499
tests/bios-tables-test$(EXESUF): tests/bios-tables-test.o $(libqos-obj-y)
A
Andreas Färber 已提交
500
tests/tmp105-test$(EXESUF): tests/tmp105-test.o $(libqos-omap-obj-y)
501
tests/ds1338-test$(EXESUF): tests/ds1338-test.o $(libqos-imx-obj-y)
502
tests/i440fx-test$(EXESUF): tests/i440fx-test.o $(libqos-pc-obj-y)
G
Gerd Hoffmann 已提交
503
tests/q35-test$(EXESUF): tests/q35-test.o $(libqos-pc-obj-y)
A
Anthony Liguori 已提交
504
tests/fw_cfg-test$(EXESUF): tests/fw_cfg-test.o $(libqos-pc-obj-y)
A
Andreas Färber 已提交
505
tests/e1000-test$(EXESUF): tests/e1000-test.o
506
tests/rtl8139-test$(EXESUF): tests/rtl8139-test.o $(libqos-pc-obj-y)
A
Andreas Färber 已提交
507
tests/pcnet-test$(EXESUF): tests/pcnet-test.o
A
Andreas Färber 已提交
508
tests/eepro100-test$(EXESUF): tests/eepro100-test.o
A
Andreas Färber 已提交
509
tests/vmxnet3-test$(EXESUF): tests/vmxnet3-test.o
A
Andreas Färber 已提交
510
tests/ne2000-test$(EXESUF): tests/ne2000-test.o
P
Paolo Bonzini 已提交
511
tests/wdt_ib700-test$(EXESUF): tests/wdt_ib700-test.o
512
tests/tco-test$(EXESUF): tests/tco-test.o $(libqos-pc-obj-y)
513
tests/virtio-balloon-test$(EXESUF): tests/virtio-balloon-test.o
514
tests/virtio-blk-test$(EXESUF): tests/virtio-blk-test.o $(libqos-virtio-obj-y)
515
tests/virtio-net-test$(EXESUF): tests/virtio-net-test.o $(libqos-pc-obj-y) $(libqos-virtio-obj-y)
516
tests/virtio-rng-test$(EXESUF): tests/virtio-rng-test.o $(libqos-pc-obj-y)
517
tests/virtio-scsi-test$(EXESUF): tests/virtio-scsi-test.o $(libqos-virtio-obj-y)
A
Andreas Färber 已提交
518
tests/virtio-9p-test$(EXESUF): tests/virtio-9p-test.o
A
Andreas Färber 已提交
519
tests/virtio-serial-test$(EXESUF): tests/virtio-serial-test.o
520
tests/virtio-console-test$(EXESUF): tests/virtio-console-test.o
A
Andreas Färber 已提交
521
tests/tpci200-test$(EXESUF): tests/tpci200-test.o
G
Gerd Hoffmann 已提交
522
tests/display-vga-test$(EXESUF): tests/display-vga-test.o
A
Andreas Färber 已提交
523
tests/ipoctal232-test$(EXESUF): tests/ipoctal232-test.o
A
Andreas Färber 已提交
524
tests/qom-test$(EXESUF): tests/qom-test.o
525
tests/drive_del-test$(EXESUF): tests/drive_del-test.o $(libqos-pc-obj-y)
526
tests/qdev-monitor-test$(EXESUF): tests/qdev-monitor-test.o $(libqos-pc-obj-y)
A
Andreas Färber 已提交
527
tests/nvme-test$(EXESUF): tests/nvme-test.o
A
Andreas Färber 已提交
528
tests/pvpanic-test$(EXESUF): tests/pvpanic-test.o
A
Andreas Färber 已提交
529
tests/i82801b11-test$(EXESUF): tests/i82801b11-test.o
A
Andreas Färber 已提交
530
tests/ac97-test$(EXESUF): tests/ac97-test.o
A
Andreas Färber 已提交
531
tests/es1370-test$(EXESUF): tests/es1370-test.o
A
Andreas Färber 已提交
532
tests/intel-hda-test$(EXESUF): tests/intel-hda-test.o
A
Andreas Färber 已提交
533
tests/ioh3420-test$(EXESUF): tests/ioh3420-test.o
534
tests/usb-hcd-ohci-test$(EXESUF): tests/usb-hcd-ohci-test.o $(libqos-usb-obj-y)
535
tests/usb-hcd-uhci-test$(EXESUF): tests/usb-hcd-uhci-test.o $(libqos-usb-obj-y)
536
tests/usb-hcd-ehci-test$(EXESUF): tests/usb-hcd-ehci-test.o $(libqos-usb-obj-y)
537
tests/usb-hcd-xhci-test$(EXESUF): tests/usb-hcd-xhci-test.o $(libqos-usb-obj-y)
A
Andreas Färber 已提交
538
tests/pc-cpu-test$(EXESUF): tests/pc-cpu-test.o
N
Nikolay Nikolaev 已提交
539
tests/vhost-user-test$(EXESUF): tests/vhost-user-test.o qemu-char.o qemu-timer.o $(qtest-obj-y)
540
tests/qemu-iotests/socket_scm_helper$(EXESUF): tests/qemu-iotests/socket_scm_helper.o
541 542
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)
543
tests/test-netfilter$(EXESUF): tests/test-netfilter.o $(qtest-obj-y)
M
Marc-André Lureau 已提交
544
tests/ivshmem-test$(EXESUF): tests/ivshmem-test.o contrib/ivshmem-server/ivshmem-server.o $(libqos-pc-obj-y)
545
tests/vhost-user-bridge$(EXESUF): tests/vhost-user-bridge.o
B
Blue Swirl 已提交
546

N
Nikolay Nikolaev 已提交
547 548 549
ifeq ($(CONFIG_POSIX),y)
LIBS += -lutil
endif
N
Nikolay Nikolaev 已提交
550

551 552 553
# QTest rules

TARGETS=$(patsubst %-softmmu,%, $(filter %-softmmu,$(TARGET_DIRS)))
554
ifeq ($(CONFIG_POSIX),y)
M
Markus Armbruster 已提交
555
QTEST_TARGETS = $(TARGETS)
556
check-qtest-y=$(foreach TARGET,$(TARGETS), $(check-qtest-$(TARGET)-y))
M
Markus Armbruster 已提交
557 558 559
check-qtest-y += $(check-qtest-generic-y)
else
QTEST_TARGETS =
560
endif
561

562
qtest-obj-y = tests/libqtest.o $(test-util-obj-y)
563 564
$(check-qtest-y): $(qtest-obj-y)

565 566
tests/test-qga: tests/test-qga.o $(qtest-obj-y)

P
Paolo Bonzini 已提交
567 568 569 570 571
.PHONY: check-help
check-help:
	@echo "Regression testing targets:"
	@echo
	@echo " make check                Run all tests"
572 573
	@echo " make check-qtest-TARGET   Run qtest tests for given target"
	@echo " make check-qtest          Run qtest tests"
P
Paolo Bonzini 已提交
574
	@echo " make check-unit           Run qobject tests"
575
	@echo " make check-qapi-schema    Run QAPI schema tests"
P
Paolo Bonzini 已提交
576 577
	@echo " make check-block          Run block tests"
	@echo " make check-report.html    Generates an HTML test report"
W
Wenchao Xia 已提交
578
	@echo " make check-clean          Clean the tests"
P
Paolo Bonzini 已提交
579 580 581 582 583 584 585
	@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."
586

P
Paolo Bonzini 已提交
587 588
SPEED = quick
GTESTER_OPTIONS = -k $(if $(V),--verbose,-q)
B
Blue Swirl 已提交
589
GCOV_OPTIONS = -n $(if $(V),-f,)
590

P
Paolo Bonzini 已提交
591
# gtester tests, possibly with verbose output
592

593 594
.PHONY: $(patsubst %, check-qtest-%, $(QTEST_TARGETS))
$(patsubst %, check-qtest-%, $(QTEST_TARGETS)): check-qtest-%: $(check-qtest-y)
B
Blue Swirl 已提交
595
	$(if $(CONFIG_GCOV),@rm -f *.gcda */*.gcda */*/*.gcda */*/*/*.gcda,)
596
	$(call quiet-command,QTEST_QEMU_BINARY=$*-softmmu/qemu-system-$* \
597
		QTEST_QEMU_IMG=qemu-img$(EXESUF) \
598
		MALLOC_PERTURB_=$${MALLOC_PERTURB_:-$$((RANDOM % 255 + 1))} \
M
Markus Armbruster 已提交
599
		gtester $(GTESTER_OPTIONS) -m=$(SPEED) $(check-qtest-$*-y) $(check-qtest-generic-y),"GTESTER $@")
600
	$(if $(CONFIG_GCOV),@for f in $(gcov-files-$*-y) $(gcov-files-generic-y); do \
B
Blue Swirl 已提交
601 602 603
	  echo Gcov report for $$f:;\
	  $(GCOV) $(GCOV_OPTIONS) $$f -o `dirname $$f`; \
	done,)
604

P
Paolo Bonzini 已提交
605 606
.PHONY: $(patsubst %, check-%, $(check-unit-y))
$(patsubst %, check-%, $(check-unit-y)): check-%: %
B
Blue Swirl 已提交
607
	$(if $(CONFIG_GCOV),@rm -f *.gcda */*.gcda */*/*.gcda */*/*/*.gcda,)
608 609 610
	$(call quiet-command, \
		MALLOC_PERTURB_=$${MALLOC_PERTURB_:-$$((RANDOM % 255 + 1))} \
		gtester $(GTESTER_OPTIONS) -m=$(SPEED) $*,"GTESTER $*")
611
	$(if $(CONFIG_GCOV),@for f in $(gcov-files-$(subst tests/,,$*)-y) $(gcov-files-generic-y); do \
B
Blue Swirl 已提交
612 613 614
	  echo Gcov report for $$f:;\
	  $(GCOV) $(GCOV_OPTIONS) $$f -o `dirname $$f`; \
	done,)
615

P
Paolo Bonzini 已提交
616
# gtester tests with XML output
K
Kevin Wolf 已提交
617

618 619
$(patsubst %, check-report-qtest-%.xml, $(QTEST_TARGETS)): check-report-qtest-%.xml: $(check-qtest-y)
	$(call quiet-command,QTEST_QEMU_BINARY=$*-softmmu/qemu-system-$* \
620
		QTEST_QEMU_IMG=qemu-img$(EXESUF) \
621
	  gtester -q $(GTESTER_OPTIONS) -o $@ -m=$(SPEED) $(check-qtest-$*-y) $(check-qtest-generic-y),"GTESTER $@")
622

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

P
Paolo Bonzini 已提交
626
# Reports and overall runs
K
Kevin Wolf 已提交
627

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

P
Paolo Bonzini 已提交
631
check-report.html: check-report.xml
S
Stefan Weil 已提交
632
	$(call quiet-command,gtester-report $< > $@, "  GEN   $@")
P
Paolo Bonzini 已提交
633 634 635 636


# Other tests

637 638
QEMU_IOTESTS_HELPERS-$(CONFIG_LINUX) = tests/qemu-iotests/socket_scm_helper$(EXESUF)

P
Paolo Bonzini 已提交
639
.PHONY: check-tests/qemu-iotests-quick.sh
640
check-tests/qemu-iotests-quick.sh: tests/qemu-iotests-quick.sh qemu-img$(EXESUF) qemu-io$(EXESUF) $(QEMU_IOTESTS_HELPERS-y)
P
Paolo Bonzini 已提交
641 642
	$<

643 644 645 646 647
.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
648 649
	$(call quiet-command, PYTHONPATH=$(SRC_PATH)/scripts \
		$(PYTHON) $(SRC_PATH)/tests/qapi-schema/test-qapi.py \
650
		$^ >$*.test.out 2>$*.test.err; \
651 652
		echo $$? >$*.test.exit, \
		"  TEST  $*.out")
653
	@diff -q $(SRC_PATH)/$*.out $*.test.out
654 655
	@# 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 -
656
	@diff -q $(SRC_PATH)/$*.exit $*.test.exit
657

P
Paolo Bonzini 已提交
658 659
# Consolidated targets

W
Wenchao Xia 已提交
660
.PHONY: check-qapi-schema check-qtest check-unit check check-clean
661
check-qapi-schema: $(patsubst %,check-%, $(check-qapi-schema-y))
662
check-qtest: $(patsubst %,check-qtest-%, $(QTEST_TARGETS))
P
Paolo Bonzini 已提交
663 664
check-unit: $(patsubst %,check-%, $(check-unit-y))
check-block: $(patsubst %,check-%, $(check-block-y))
665
check: check-qapi-schema check-unit check-qtest
W
Wenchao Xia 已提交
666 667
check-clean:
	$(MAKE) -C tests/tcg clean
A
Andreas Färber 已提交
668
	rm -rf $(check-unit-y) tests/*.o $(QEMU_IOTESTS_HELPERS-y)
669
	rm -rf $(sort $(foreach target,$(SYSEMU_TARGET_LIST), $(check-qtest-$(target)-y)) $(check-qtest-generic-y))
W
Wenchao Xia 已提交
670 671

clean: check-clean
672

673 674 675 676
# Build the help program automatically

all: $(QEMU_IOTESTS_HELPERS-y)

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