Makefile 29.8 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)
50 51 52
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 =
53
ifeq ($(CONFIG_SOFTMMU),y)
O
Orit Wasserman 已提交
54
check-unit-y += tests/test-xbzrle$(EXESUF)
55 56 57
gcov-files-test-xbzrle-y = migration/xbzrle.c
check-unit-$(CONFIG_POSIX) += tests/test-vmstate$(EXESUF)
endif
58 59
check-unit-y += tests/test-cutils$(EXESUF)
gcov-files-test-cutils-y += util/cutils.c
60 61
check-unit-y += tests/test-mul64$(EXESUF)
gcov-files-test-mul64-y = util/host-utils.c
62 63 64
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 已提交
65 66
check-unit-y += tests/rcutorture$(EXESUF)
gcov-files-rcutorture-y = util/rcu.c
M
Mike Day 已提交
67 68
check-unit-y += tests/test-rcu-list$(EXESUF)
gcov-files-test-rcu-list-y = util/rcu.c
69
check-unit-y += tests/test-bitops$(EXESUF)
70
check-unit-$(CONFIG_HAS_GLIB_SUBPROCESS_TESTS) += tests/test-qdev-global-props$(EXESUF)
I
Igor Mammedov 已提交
71 72
check-unit-y += tests/check-qom-interface$(EXESUF)
gcov-files-check-qom-interface-y = qom/object.c
73 74
check-unit-y += tests/check-qom-proplist$(EXESUF)
gcov-files-check-qom-proplist-y = qom/object.c
L
Leandro Dorileo 已提交
75 76
check-unit-y += tests/test-qemu-opts$(EXESUF)
gcov-files-test-qemu-opts-y = qom/test-qemu-opts.c
77 78
check-unit-y += tests/test-write-threshold$(EXESUF)
gcov-files-test-write-threshold-y = block/write-threshold.c
79
check-unit-$(CONFIG_GNUTLS_HASH) += tests/test-crypto-hash$(EXESUF)
80
check-unit-y += tests/test-crypto-cipher$(EXESUF)
81
check-unit-$(CONFIG_GNUTLS) += tests/test-crypto-tlscredsx509$(EXESUF)
82
check-unit-$(CONFIG_GNUTLS) += tests/test-crypto-tlssession$(EXESUF)
83
check-unit-$(CONFIG_LINUX) += tests/test-qga$(EXESUF)
P
Paolo Bonzini 已提交
84 85 86

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

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

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

93
gcov-files-ipack-y += hw/ipack/ipack.c
A
Andreas Färber 已提交
94 95 96
check-qtest-ipack-y += tests/ipoctal232-test$(EXESUF)
gcov-files-ipack-y += hw/char/ipoctal232.c

97 98 99
check-qtest-virtioserial-y += tests/virtio-console-test$(EXESUF)
gcov-files-virtioserial-y += hw/char/virtio-console.c

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

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

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

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

E
Eric Blake 已提交
230 231 232 233 234
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 已提交
235
qapi-schema += alternate-empty.json
E
Eric Blake 已提交
236 237 238 239 240 241 242 243 244 245
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
qapi-schema += args-member-unknown.json
246
qapi-schema += args-name-clash.json
E
Eric Blake 已提交
247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279
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
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
qapi-schema += enum-max-member.json
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-max.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
280 281 282
qapi-schema += flat-union-clash-branch.json
qapi-schema += flat-union-clash-member.json
qapi-schema += flat-union-clash-type.json
E
Eric Blake 已提交
283
qapi-schema += flat-union-empty.json
E
Eric Blake 已提交
284 285 286 287 288 289 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
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
318 319 320
qapi-schema += reserved-command-q.json
qapi-schema += reserved-member-has.json
qapi-schema += reserved-member-q.json
E
Eric Blake 已提交
321
qapi-schema += reserved-member-u.json
322 323
qapi-schema += reserved-type-kind.json
qapi-schema += reserved-type-list.json
E
Eric Blake 已提交
324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341
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-bad-branch.json
qapi-schema += union-base-no-discriminator.json
342 343 344
qapi-schema += union-clash-branches.json
qapi-schema += union-clash-data.json
qapi-schema += union-clash-type.json
E
Eric Blake 已提交
345
qapi-schema += union-empty.json
E
Eric Blake 已提交
346 347 348 349 350 351 352
qapi-schema += union-invalid-base.json
qapi-schema += union-max.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))
353

354
GENERATED_HEADERS += tests/test-qapi-types.h tests/test-qapi-visit.h \
355 356
	tests/test-qmp-commands.h tests/test-qapi-event.h \
	tests/test-qmp-introspect.h
P
Paolo Bonzini 已提交
357 358 359 360 361 362

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 \
363
	tests/test-qmp-commands.o tests/test-visitor-serialization.o \
364
	tests/test-x86-cpuid.o tests/test-mul64.o tests/test-int128.o \
P
Paolo Bonzini 已提交
365
	tests/test-opts-visitor.o tests/test-qmp-event.o \
M
Mike Day 已提交
366
	tests/rcutorture.o tests/test-rcu-list.o
P
Paolo Bonzini 已提交
367 368

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

371 372 373

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

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)
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)
396
tests/test-x86-cpuid$(EXESUF): tests/test-x86-cpuid.o
397
tests/test-xbzrle$(EXESUF): tests/test-xbzrle.o migration/xbzrle.o page_cache.o $(test-util-obj-y)
398
tests/test-cutils$(EXESUF): tests/test-cutils.o util/cutils.o
399
tests/test-int128$(EXESUF): tests/test-int128.o
400 401
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 已提交
402

403
tests/test-qdev-global-props$(EXESUF): tests/test-qdev-global-props.o \
404
	hw/core/qdev.o hw/core/qdev-properties.o hw/core/hotplug.o\
405
	hw/core/irq.o \
406
	hw/core/fw-path-provider.o \
407
	$(test-qapi-obj-y)
408
tests/test-vmstate$(EXESUF): tests/test-vmstate.o \
409
	migration/vmstate.o migration/qemu-file.o migration/qemu-file-buf.o \
410
        migration/qemu-file-unix.o qjson.o \
411
	$(test-qom-obj-y)
P
Paolo Bonzini 已提交
412 413

tests/test-qapi-types.c tests/test-qapi-types.h :\
414
$(SRC_PATH)/tests/qapi-schema/qapi-schema-test.json $(SRC_PATH)/scripts/qapi-types.py $(qapi-py)
415
	$(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-types.py \
416
		$(gen-out-type) -o tests -p "test-" $<, \
417
		"  GEN   $@")
P
Paolo Bonzini 已提交
418
tests/test-qapi-visit.c tests/test-qapi-visit.h :\
419
$(SRC_PATH)/tests/qapi-schema/qapi-schema-test.json $(SRC_PATH)/scripts/qapi-visit.py $(qapi-py)
420
	$(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-visit.py \
421
		$(gen-out-type) -o tests -p "test-" $<, \
422
		"  GEN   $@")
P
Paolo Bonzini 已提交
423
tests/test-qmp-commands.h tests/test-qmp-marshal.c :\
424
$(SRC_PATH)/tests/qapi-schema/qapi-schema-test.json $(SRC_PATH)/scripts/qapi-commands.py $(qapi-py)
425
	$(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-commands.py \
426
		$(gen-out-type) -o tests -p "test-" $<, \
427
		"  GEN   $@")
428
tests/test-qapi-event.c tests/test-qapi-event.h :\
429
$(SRC_PATH)/tests/qapi-schema/qapi-schema-test.json $(SRC_PATH)/scripts/qapi-event.py $(qapi-py)
430
	$(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-event.py \
431
		$(gen-out-type) -o tests -p "test-" $<, \
432
		"  GEN   $@")
433 434 435 436 437
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   $@")
438

439 440 441 442 443 444 445 446 447
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)
448

449 450
tests/test-mul64$(EXESUF): tests/test-mul64.o $(test-util-obj-y)
tests/test-bitops$(EXESUF): tests/test-bitops.o $(test-util-obj-y)
451 452
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)
453 454 455 456 457 458

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)
459 460
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)
461 462

tests/test-crypto-tlssession.o-cflags := $(TASN1_CFLAGS)
463 464
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)
465

466
libqos-obj-y = tests/libqos/pci.o tests/libqos/fw_cfg.o tests/libqos/malloc.o
J
John Snow 已提交
467
libqos-obj-y += tests/libqos/i2c.o tests/libqos/libqos.o
468
libqos-pc-obj-y = $(libqos-obj-y) tests/libqos/pci-pc.o
J
John Snow 已提交
469
libqos-pc-obj-y += tests/libqos/malloc-pc.o tests/libqos/libqos-pc.o
J
John Snow 已提交
470
libqos-pc-obj-y += tests/libqos/ahci.o
A
Andreas Färber 已提交
471
libqos-omap-obj-y = $(libqos-obj-y) tests/libqos/i2c-omap.o
472
libqos-imx-obj-y = $(libqos-obj-y) tests/libqos/i2c-imx.o
473
libqos-usb-obj-y = $(libqos-pc-obj-y) tests/libqos/usb.o
M
Marc Marí 已提交
474
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
475

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

N
Nikolay Nikolaev 已提交
534 535 536
ifeq ($(CONFIG_POSIX),y)
LIBS += -lutil
endif
N
Nikolay Nikolaev 已提交
537

538 539 540
# QTest rules

TARGETS=$(patsubst %-softmmu,%, $(filter %-softmmu,$(TARGET_DIRS)))
541
ifeq ($(CONFIG_POSIX),y)
M
Markus Armbruster 已提交
542
QTEST_TARGETS = $(TARGETS)
543
check-qtest-y=$(foreach TARGET,$(TARGETS), $(check-qtest-$(TARGET)-y))
M
Markus Armbruster 已提交
544 545 546
check-qtest-y += $(check-qtest-generic-y)
else
QTEST_TARGETS =
547
endif
548

549
qtest-obj-y = tests/libqtest.o $(test-util-obj-y)
550 551
$(check-qtest-y): $(qtest-obj-y)

552 553
tests/test-qga: tests/test-qga.o $(qtest-obj-y)

P
Paolo Bonzini 已提交
554 555 556 557 558
.PHONY: check-help
check-help:
	@echo "Regression testing targets:"
	@echo
	@echo " make check                Run all tests"
559 560
	@echo " make check-qtest-TARGET   Run qtest tests for given target"
	@echo " make check-qtest          Run qtest tests"
P
Paolo Bonzini 已提交
561
	@echo " make check-unit           Run qobject tests"
562
	@echo " make check-qapi-schema    Run QAPI schema tests"
P
Paolo Bonzini 已提交
563 564
	@echo " make check-block          Run block tests"
	@echo " make check-report.html    Generates an HTML test report"
W
Wenchao Xia 已提交
565
	@echo " make check-clean          Clean the tests"
P
Paolo Bonzini 已提交
566 567 568 569 570 571 572
	@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."
573

P
Paolo Bonzini 已提交
574 575
SPEED = quick
GTESTER_OPTIONS = -k $(if $(V),--verbose,-q)
B
Blue Swirl 已提交
576
GCOV_OPTIONS = -n $(if $(V),-f,)
577

P
Paolo Bonzini 已提交
578
# gtester tests, possibly with verbose output
579

580 581
.PHONY: $(patsubst %, check-qtest-%, $(QTEST_TARGETS))
$(patsubst %, check-qtest-%, $(QTEST_TARGETS)): check-qtest-%: $(check-qtest-y)
B
Blue Swirl 已提交
582
	$(if $(CONFIG_GCOV),@rm -f *.gcda */*.gcda */*/*.gcda */*/*/*.gcda,)
583
	$(call quiet-command,QTEST_QEMU_BINARY=$*-softmmu/qemu-system-$* \
584
		QTEST_QEMU_IMG=qemu-img$(EXESUF) \
585
		MALLOC_PERTURB_=$${MALLOC_PERTURB_:-$$((RANDOM % 255 + 1))} \
M
Markus Armbruster 已提交
586
		gtester $(GTESTER_OPTIONS) -m=$(SPEED) $(check-qtest-$*-y) $(check-qtest-generic-y),"GTESTER $@")
587
	$(if $(CONFIG_GCOV),@for f in $(gcov-files-$*-y) $(gcov-files-generic-y); do \
B
Blue Swirl 已提交
588 589 590
	  echo Gcov report for $$f:;\
	  $(GCOV) $(GCOV_OPTIONS) $$f -o `dirname $$f`; \
	done,)
591

P
Paolo Bonzini 已提交
592 593
.PHONY: $(patsubst %, check-%, $(check-unit-y))
$(patsubst %, check-%, $(check-unit-y)): check-%: %
B
Blue Swirl 已提交
594
	$(if $(CONFIG_GCOV),@rm -f *.gcda */*.gcda */*/*.gcda */*/*/*.gcda,)
595 596 597
	$(call quiet-command, \
		MALLOC_PERTURB_=$${MALLOC_PERTURB_:-$$((RANDOM % 255 + 1))} \
		gtester $(GTESTER_OPTIONS) -m=$(SPEED) $*,"GTESTER $*")
598
	$(if $(CONFIG_GCOV),@for f in $(gcov-files-$(subst tests/,,$*)-y) $(gcov-files-generic-y); do \
B
Blue Swirl 已提交
599 600 601
	  echo Gcov report for $$f:;\
	  $(GCOV) $(GCOV_OPTIONS) $$f -o `dirname $$f`; \
	done,)
602

P
Paolo Bonzini 已提交
603
# gtester tests with XML output
K
Kevin Wolf 已提交
604

605 606
$(patsubst %, check-report-qtest-%.xml, $(QTEST_TARGETS)): check-report-qtest-%.xml: $(check-qtest-y)
	$(call quiet-command,QTEST_QEMU_BINARY=$*-softmmu/qemu-system-$* \
607
		QTEST_QEMU_IMG=qemu-img$(EXESUF) \
608 609
	  gtester -q $(GTESTER_OPTIONS) -o $@ -m=$(SPEED) $(check-qtest-$*-y),"GTESTER $@")

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

P
Paolo Bonzini 已提交
613
# Reports and overall runs
K
Kevin Wolf 已提交
614

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

P
Paolo Bonzini 已提交
618
check-report.html: check-report.xml
S
Stefan Weil 已提交
619
	$(call quiet-command,gtester-report $< > $@, "  GEN   $@")
P
Paolo Bonzini 已提交
620 621 622 623


# Other tests

624 625
QEMU_IOTESTS_HELPERS-$(CONFIG_LINUX) = tests/qemu-iotests/socket_scm_helper$(EXESUF)

P
Paolo Bonzini 已提交
626
.PHONY: check-tests/qemu-iotests-quick.sh
627
check-tests/qemu-iotests-quick.sh: tests/qemu-iotests-quick.sh qemu-img$(EXESUF) qemu-io$(EXESUF) $(QEMU_IOTESTS_HELPERS-y)
P
Paolo Bonzini 已提交
628 629
	$<

630 631 632 633 634
.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
635 636
	$(call quiet-command, PYTHONPATH=$(SRC_PATH)/scripts \
		$(PYTHON) $(SRC_PATH)/tests/qapi-schema/test-qapi.py \
637
		$^ >$*.test.out 2>$*.test.err; \
638 639
		echo $$? >$*.test.exit, \
		"  TEST  $*.out")
640
	@diff -q $(SRC_PATH)/$*.out $*.test.out
641 642
	@# 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 -
643
	@diff -q $(SRC_PATH)/$*.exit $*.test.exit
644

P
Paolo Bonzini 已提交
645 646
# Consolidated targets

W
Wenchao Xia 已提交
647
.PHONY: check-qapi-schema check-qtest check-unit check check-clean
648
check-qapi-schema: $(patsubst %,check-%, $(check-qapi-schema-y))
649
check-qtest: $(patsubst %,check-qtest-%, $(QTEST_TARGETS))
P
Paolo Bonzini 已提交
650 651
check-unit: $(patsubst %,check-%, $(check-unit-y))
check-block: $(patsubst %,check-%, $(check-block-y))
652
check: check-qapi-schema check-unit check-qtest
W
Wenchao Xia 已提交
653 654
check-clean:
	$(MAKE) -C tests/tcg clean
A
Andreas Färber 已提交
655 656
	rm -rf $(check-unit-y) tests/*.o $(QEMU_IOTESTS_HELPERS-y)
	rm -rf $(sort $(foreach target,$(SYSEMU_TARGET_LIST), $(check-qtest-$(target)-y)))
W
Wenchao Xia 已提交
657 658

clean: check-clean
659

660 661 662 663
# Build the help program automatically

all: $(QEMU_IOTESTS_HELPERS-y)

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