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

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

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

P
Paolo Bonzini 已提交
9
check-unit-y = tests/check-qdict$(EXESUF)
10
gcov-files-check-qdict-y = qobject/qdict.c
11
check-unit-y += tests/test-char$(EXESUF)
M
Marc-André Lureau 已提交
12
gcov-files-check-qdict-y = chardev/char.c
P
Paolo Bonzini 已提交
13
check-unit-y += tests/check-qfloat$(EXESUF)
14
gcov-files-check-qfloat-y = qobject/qfloat.c
P
Paolo Bonzini 已提交
15
check-unit-y += tests/check-qint$(EXESUF)
16
gcov-files-check-qint-y = qobject/qint.c
P
Paolo Bonzini 已提交
17
check-unit-y += tests/check-qstring$(EXESUF)
18
gcov-files-check-qstring-y = qobject/qstring.c
P
Paolo Bonzini 已提交
19
check-unit-y += tests/check-qlist$(EXESUF)
20
gcov-files-check-qlist-y = qobject/qlist.c
E
Eric Blake 已提交
21 22
check-unit-y += tests/check-qnull$(EXESUF)
gcov-files-check-qnull-y = qobject/qnull.c
P
Paolo Bonzini 已提交
23
check-unit-y += tests/check-qjson$(EXESUF)
24
gcov-files-check-qjson-y = qobject/qjson.c
25 26
check-unit-y += tests/test-qobject-output-visitor$(EXESUF)
gcov-files-test-qobject-output-visitor-y = qapi/qobject-output-visitor.c
E
Eric Blake 已提交
27 28
check-unit-y += tests/test-clone-visitor$(EXESUF)
gcov-files-test-clone-visitor-y = qapi/qapi-clone-visitor.c
29 30
check-unit-y += tests/test-qobject-input-visitor$(EXESUF)
gcov-files-test-qobject-input-visitor-y = qapi/qobject-input-visitor.c
P
Paolo Bonzini 已提交
31
check-unit-y += tests/test-qmp-commands$(EXESUF)
B
Blue Swirl 已提交
32
gcov-files-test-qmp-commands-y = qapi/qmp-dispatch.c
P
Paolo Bonzini 已提交
33
check-unit-y += tests/test-string-input-visitor$(EXESUF)
B
Blue Swirl 已提交
34
gcov-files-test-string-input-visitor-y = qapi/string-input-visitor.c
P
Paolo Bonzini 已提交
35
check-unit-y += tests/test-string-output-visitor$(EXESUF)
B
Blue Swirl 已提交
36
gcov-files-test-string-output-visitor-y = qapi/string-output-visitor.c
37 38
check-unit-y += tests/test-qmp-event$(EXESUF)
gcov-files-test-qmp-event-y += qapi/qmp-event.c
39 40
check-unit-y += tests/test-opts-visitor$(EXESUF)
gcov-files-test-opts-visitor-y = qapi/opts-visitor.c
P
Paolo Bonzini 已提交
41
check-unit-y += tests/test-coroutine$(EXESUF)
42
gcov-files-test-coroutine-y = coroutine-$(CONFIG_COROUTINE_BACKEND).c
43
check-unit-y += tests/test-visitor-serialization$(EXESUF)
M
Michael Tokarev 已提交
44
check-unit-y += tests/test-iov$(EXESUF)
45
gcov-files-test-iov-y = util/iov.c
P
Paolo Bonzini 已提交
46
check-unit-y += tests/test-aio$(EXESUF)
47 48 49
gcov-files-test-aio-y = util/async.c util/qemu-timer.o
gcov-files-test-aio-$(CONFIG_WIN32) += util/aio-win32.c
gcov-files-test-aio-$(CONFIG_POSIX) += util/aio-posix.c
50 51 52
check-unit-y += tests/test-aio-multithread$(EXESUF)
gcov-files-test-aio-multithread-y = $(gcov-files-test-aio-y)
gcov-files-test-aio-multithread-y += util/qemu-coroutine.c tests/iothread.c
B
Benoît Canet 已提交
53
check-unit-y += tests/test-throttle$(EXESUF)
P
Paolo Bonzini 已提交
54
check-unit-y += tests/test-thread-pool$(EXESUF)
B
Blue Swirl 已提交
55
gcov-files-test-thread-pool-y = thread-pool.c
56 57
gcov-files-test-hbitmap-y = util/hbitmap.c
check-unit-y += tests/test-hbitmap$(EXESUF)
S
Stefan Hajnoczi 已提交
58
gcov-files-test-hbitmap-y = blockjob.c
A
Alberto Garcia 已提交
59
check-unit-y += tests/test-blockjob$(EXESUF)
S
Stefan Hajnoczi 已提交
60
check-unit-y += tests/test-blockjob-txn$(EXESUF)
61 62 63
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 =
64
ifeq ($(CONFIG_SOFTMMU),y)
O
Orit Wasserman 已提交
65
check-unit-y += tests/test-xbzrle$(EXESUF)
66 67 68
gcov-files-test-xbzrle-y = migration/xbzrle.c
check-unit-$(CONFIG_POSIX) += tests/test-vmstate$(EXESUF)
endif
69 70
check-unit-y += tests/test-cutils$(EXESUF)
gcov-files-test-cutils-y += util/cutils.c
71 72
check-unit-y += tests/test-shift128$(EXESUF)
gcov-files-test-shift128-y = util/host-utils.c
73 74
check-unit-y += tests/test-mul64$(EXESUF)
gcov-files-test-mul64-y = util/host-utils.c
75 76 77
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 已提交
78 79
check-unit-y += tests/rcutorture$(EXESUF)
gcov-files-rcutorture-y = util/rcu.c
M
Mike Day 已提交
80 81
check-unit-y += tests/test-rcu-list$(EXESUF)
gcov-files-test-rcu-list-y = util/rcu.c
E
Emilio G. Cota 已提交
82 83
check-unit-y += tests/test-qdist$(EXESUF)
gcov-files-test-qdist-y = util/qdist.c
E
Emilio G. Cota 已提交
84 85
check-unit-y += tests/test-qht$(EXESUF)
gcov-files-test-qht-y = util/qht.c
86 87
check-unit-y += tests/test-qht-par$(EXESUF)
gcov-files-test-qht-par-y = util/qht.c
88
check-unit-y += tests/test-bitops$(EXESUF)
A
Alex Bennée 已提交
89
check-unit-y += tests/test-bitcnt$(EXESUF)
90
check-unit-$(CONFIG_HAS_GLIB_SUBPROCESS_TESTS) += tests/test-qdev-global-props$(EXESUF)
I
Igor Mammedov 已提交
91 92
check-unit-y += tests/check-qom-interface$(EXESUF)
gcov-files-check-qom-interface-y = qom/object.c
93 94
check-unit-y += tests/check-qom-proplist$(EXESUF)
gcov-files-check-qom-proplist-y = qom/object.c
L
Leandro Dorileo 已提交
95 96
check-unit-y += tests/test-qemu-opts$(EXESUF)
gcov-files-test-qemu-opts-y = qom/test-qemu-opts.c
97 98
check-unit-y += tests/test-write-threshold$(EXESUF)
gcov-files-test-write-threshold-y = block/write-threshold.c
99
check-unit-y += tests/test-crypto-hash$(EXESUF)
100
check-unit-y += tests/test-crypto-hmac$(EXESUF)
101
check-unit-y += tests/test-crypto-cipher$(EXESUF)
102
check-unit-y += tests/test-crypto-secret$(EXESUF)
103
check-unit-$(CONFIG_GNUTLS) += tests/test-crypto-tlscredsx509$(EXESUF)
104
check-unit-$(CONFIG_GNUTLS) += tests/test-crypto-tlssession$(EXESUF)
105 106 107
ifneq (,$(findstring qemu-ga,$(TOOLS)))
check-unit-$(CONFIG_LINUX) += tests/test-qga$(EXESUF)
endif
108
check-unit-y += tests/test-timed-average$(EXESUF)
109
check-unit-y += tests/test-io-task$(EXESUF)
110
check-unit-y += tests/test-io-channel-socket$(EXESUF)
D
Daniel P. Berrange 已提交
111
check-unit-y += tests/test-io-channel-file$(EXESUF)
D
Daniel P. Berrange 已提交
112
check-unit-$(CONFIG_GNUTLS) += tests/test-io-channel-tls$(EXESUF)
113
check-unit-y += tests/test-io-channel-command$(EXESUF)
114
check-unit-y += tests/test-io-channel-buffer$(EXESUF)
115
check-unit-y += tests/test-base64$(EXESUF)
116
check-unit-$(if $(CONFIG_NETTLE_KDF),y,$(CONFIG_GCRYPT_KDF)) += tests/test-crypto-pbkdf$(EXESUF)
117
check-unit-y += tests/test-crypto-ivgen$(EXESUF)
118
check-unit-y += tests/test-crypto-afsplit$(EXESUF)
119
check-unit-y += tests/test-crypto-xts$(EXESUF)
120
check-unit-y += tests/test-crypto-block$(EXESUF)
121 122
gcov-files-test-logging-y = tests/test-logging.c
check-unit-y += tests/test-logging$(EXESUF)
123
check-unit-$(CONFIG_REPLICATION) += tests/test-replication$(EXESUF)
124 125
check-unit-y += tests/test-bufferiszero$(EXESUF)
gcov-files-check-bufferiszero-y = util/bufferiszero.c
F
Fam Zheng 已提交
126
check-unit-y += tests/test-uuid$(EXESUF)
P
Paolo Bonzini 已提交
127 128
check-unit-y += tests/ptimer-test$(EXESUF)
gcov-files-ptimer-test-y = hw/core/ptimer.c
P
Paolo Bonzini 已提交
129 130 131

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

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

135 136 137
check-qtest-generic-y = tests/qmp-test$(EXESUF)
gcov-files-generic-y = monitor.c qapi/qmp-dispatch.c
check-qtest-generic-y += tests/device-introspect-test$(EXESUF)
138
gcov-files-generic-y = qdev-monitor.c qmp.c
M
Markus Armbruster 已提交
139

140
gcov-files-ipack-y += hw/ipack/ipack.c
A
Andreas Färber 已提交
141 142 143
check-qtest-ipack-y += tests/ipoctal232-test$(EXESUF)
gcov-files-ipack-y += hw/char/ipoctal232.c

144 145 146
check-qtest-virtioserial-y += tests/virtio-console-test$(EXESUF)
gcov-files-virtioserial-y += hw/char/virtio-console.c

A
Andreas Färber 已提交
147 148 149
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
150 151
check-qtest-virtio-y += tests/virtio-balloon-test$(EXESUF)
gcov-files-virtio-y += i386-softmmu/hw/virtio/virtio-balloon.c
A
Andreas Färber 已提交
152 153
check-qtest-virtio-y += tests/virtio-blk-test$(EXESUF)
gcov-files-virtio-y += i386-softmmu/hw/block/virtio-blk.c
A
Andreas Färber 已提交
154 155
check-qtest-virtio-y += tests/virtio-rng-test$(EXESUF)
gcov-files-virtio-y += hw/virtio/virtio-rng.c
A
Andreas Färber 已提交
156 157
check-qtest-virtio-y += tests/virtio-scsi-test$(EXESUF)
gcov-files-virtio-y += i386-softmmu/hw/scsi/virtio-scsi.c
A
Andreas Färber 已提交
158 159 160 161 162
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 已提交
163 164
check-qtest-virtio-y += tests/virtio-serial-test$(EXESUF)
gcov-files-virtio-y += i386-softmmu/hw/char/virtio-serial-bus.c
165 166
check-qtest-virtio-y += $(check-qtest-virtioserial-y)
gcov-files-virtio-y += $(gcov-files-virtioserial-y)
A
Andreas Färber 已提交
167

A
Andreas Färber 已提交
168 169
check-qtest-pci-y += tests/e1000-test$(EXESUF)
gcov-files-pci-y += hw/net/e1000.c
170 171
check-qtest-pci-y += tests/e1000e-test$(EXESUF)
gcov-files-pci-y += hw/net/e1000e.c hw/net/e1000e_core.c
A
Andreas Färber 已提交
172 173
check-qtest-pci-y += tests/rtl8139-test$(EXESUF)
gcov-files-pci-y += hw/net/rtl8139.c
A
Andreas Färber 已提交
174 175 176
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 已提交
177 178
check-qtest-pci-y += tests/eepro100-test$(EXESUF)
gcov-files-pci-y += hw/net/eepro100.c
A
Andreas Färber 已提交
179 180
check-qtest-pci-y += tests/ne2000-test$(EXESUF)
gcov-files-pci-y += hw/net/ne2000.c
A
Andreas Färber 已提交
181 182
check-qtest-pci-y += tests/nvme-test$(EXESUF)
gcov-files-pci-y += hw/block/nvme.c
A
Andreas Färber 已提交
183 184
check-qtest-pci-y += tests/ac97-test$(EXESUF)
gcov-files-pci-y += hw/audio/ac97.c
A
Andreas Färber 已提交
185 186
check-qtest-pci-y += tests/es1370-test$(EXESUF)
gcov-files-pci-y += hw/audio/es1370.c
A
Andreas Färber 已提交
187 188
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 已提交
189
check-qtest-pci-y += tests/tpci200-test$(EXESUF)
190
gcov-files-pci-y += hw/ipack/tpci200.c
A
Andreas Färber 已提交
191
check-qtest-pci-y += $(check-qtest-ipack-y)
192
gcov-files-pci-y += $(gcov-files-ipack-y)
G
Gerd Hoffmann 已提交
193 194 195 196
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
197 198 199
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 已提交
200 201
check-qtest-pci-y += tests/intel-hda-test$(EXESUF)
gcov-files-pci-y += hw/audio/intel-hda.c hw/audio/hda-codec.c
202
check-qtest-pci-$(CONFIG_EVENTFD) += tests/ivshmem-test$(EXESUF)
A
Andreas Färber 已提交
203
gcov-files-pci-y += hw/misc/ivshmem.c
A
Andreas Färber 已提交
204

205 206
check-qtest-i386-y = tests/endianness-test$(EXESUF)
check-qtest-i386-y += tests/fdc-test$(EXESUF)
207
gcov-files-i386-y = hw/block/fdc.c
K
Kevin Wolf 已提交
208
check-qtest-i386-y += tests/ide-test$(EXESUF)
209
check-qtest-i386-y += tests/ahci-test$(EXESUF)
210
check-qtest-i386-y += tests/hd-geo-test$(EXESUF)
211
gcov-files-i386-y += hw/block/hd-geometry.c
212
check-qtest-i386-y += tests/boot-order-test$(EXESUF)
213
check-qtest-i386-y += tests/bios-tables-test$(EXESUF)
214
check-qtest-i386-y += tests/boot-serial-test$(EXESUF)
215
check-qtest-i386-y += tests/pxe-test$(EXESUF)
216
check-qtest-i386-y += tests/rtc-test$(EXESUF)
C
Corey Minyard 已提交
217 218
check-qtest-i386-y += tests/ipmi-kcs-test$(EXESUF)
check-qtest-i386-y += tests/ipmi-bt-test$(EXESUF)
219
check-qtest-i386-y += tests/i440fx-test$(EXESUF)
A
Anthony Liguori 已提交
220
check-qtest-i386-y += tests/fw_cfg-test$(EXESUF)
221
check-qtest-i386-y += tests/drive_del-test$(EXESUF)
P
Paolo Bonzini 已提交
222
check-qtest-i386-y += tests/wdt_ib700-test$(EXESUF)
223
check-qtest-i386-y += tests/tco-test$(EXESUF)
P
Paolo Bonzini 已提交
224
gcov-files-i386-y += hw/watchdog/watchdog.c hw/watchdog/wdt_ib700.c
A
Andreas Färber 已提交
225 226
check-qtest-i386-y += $(check-qtest-pci-y)
gcov-files-i386-y += $(gcov-files-pci-y)
A
Andreas Färber 已提交
227 228
check-qtest-i386-y += tests/vmxnet3-test$(EXESUF)
gcov-files-i386-y += hw/net/vmxnet3.c
229 230
gcov-files-i386-y += hw/net/net_rx_pkt.c
gcov-files-i386-y += hw/net/net_tx_pkt.c
A
Andreas Färber 已提交
231 232
check-qtest-i386-y += tests/pvpanic-test$(EXESUF)
gcov-files-i386-y += i386-softmmu/hw/misc/pvpanic.c
A
Andreas Färber 已提交
233 234
check-qtest-i386-y += tests/i82801b11-test$(EXESUF)
gcov-files-i386-y += hw/pci-bridge/i82801b11.c
A
Andreas Färber 已提交
235 236
check-qtest-i386-y += tests/ioh3420-test$(EXESUF)
gcov-files-i386-y += hw/pci-bridge/ioh3420.c
G
Gonglei 已提交
237 238
check-qtest-i386-y += tests/usb-hcd-ohci-test$(EXESUF)
gcov-files-i386-y += hw/usb/hcd-ohci.c
G
Gonglei 已提交
239 240
check-qtest-i386-y += tests/usb-hcd-uhci-test$(EXESUF)
gcov-files-i386-y += hw/usb/hcd-uhci.c
A
Andreas Färber 已提交
241 242
check-qtest-i386-y += tests/usb-hcd-ehci-test$(EXESUF)
gcov-files-i386-y += hw/usb/hcd-ehci.c
G
Gerd Hoffmann 已提交
243 244
gcov-files-i386-y += hw/usb/dev-hid.c
gcov-files-i386-y += hw/usb/dev-storage.c
G
Gonglei 已提交
245 246
check-qtest-i386-y += tests/usb-hcd-xhci-test$(EXESUF)
gcov-files-i386-y += hw/usb/hcd-xhci.c
A
Andreas Färber 已提交
247
check-qtest-i386-y += tests/pc-cpu-test$(EXESUF)
G
Gerd Hoffmann 已提交
248 249
check-qtest-i386-y += tests/q35-test$(EXESUF)
gcov-files-i386-y += hw/pci-host/q35.c
250 251 252
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)
253
endif
254
check-qtest-i386-y += tests/test-netfilter$(EXESUF)
255
check-qtest-i386-y += tests/test-filter-mirror$(EXESUF)
256
check-qtest-i386-y += tests/test-filter-redirector$(EXESUF)
D
Dr. David Alan Gilbert 已提交
257
check-qtest-i386-y += tests/postcopy-test$(EXESUF)
258
check-qtest-i386-y += tests/test-x86-cpuid-compat$(EXESUF)
M
Marc-André Lureau 已提交
259
check-qtest-x86_64-y += $(check-qtest-i386-y)
260
gcov-files-i386-y += i386-softmmu/hw/timer/mc146818rtc.c
261
gcov-files-x86_64-y = $(subst i386-softmmu/,x86_64-softmmu/,$(gcov-files-i386-y))
262

263 264
check-qtest-alpha-y = tests/boot-serial-test$(EXESUF)

265
check-qtest-mips-y = tests/endianness-test$(EXESUF)
266

267
check-qtest-mips64-y = tests/endianness-test$(EXESUF)
268

269
check-qtest-mips64el-y = tests/endianness-test$(EXESUF)
270

271
check-qtest-ppc-y = tests/endianness-test$(EXESUF)
272 273 274
check-qtest-ppc-y += tests/boot-order-test$(EXESUF)
check-qtest-ppc-y += tests/prom-env-test$(EXESUF)
check-qtest-ppc-y += tests/drive_del-test$(EXESUF)
275
check-qtest-ppc-y += tests/boot-serial-test$(EXESUF)
276 277 278 279 280 281

check-qtest-ppc64-y = tests/spapr-phb-test$(EXESUF)
gcov-files-ppc64-y = ppc64-softmmu/hw/ppc/spapr_pci.c
check-qtest-ppc64-y += tests/endianness-test$(EXESUF)
check-qtest-ppc64-y += tests/boot-order-test$(EXESUF)
check-qtest-ppc64-y += tests/prom-env-test$(EXESUF)
282
check-qtest-ppc64-y += tests/pnv-xscom-test$(EXESUF)
283 284
check-qtest-ppc64-y += tests/drive_del-test$(EXESUF)
check-qtest-ppc64-y += tests/postcopy-test$(EXESUF)
285
check-qtest-ppc64-y += tests/boot-serial-test$(EXESUF)
286
check-qtest-ppc64-y += tests/rtas-test$(EXESUF)
287
check-qtest-ppc64-y += tests/pxe-test$(EXESUF)
288 289 290 291 292 293
check-qtest-ppc64-y += tests/usb-hcd-ohci-test$(EXESUF)
gcov-files-ppc64-y += hw/usb/hcd-ohci.c
check-qtest-ppc64-y += tests/usb-hcd-uhci-test$(EXESUF)
gcov-files-ppc64-y += hw/usb/hcd-uhci.c
check-qtest-ppc64-y += tests/usb-hcd-xhci-test$(EXESUF)
gcov-files-ppc64-y += hw/usb/hcd-xhci.c
294
check-qtest-ppc64-y += $(check-qtest-virtio-y)
295 296 297
check-qtest-ppc64-y += tests/test-netfilter$(EXESUF)
check-qtest-ppc64-y += tests/test-filter-mirror$(EXESUF)
check-qtest-ppc64-y += tests/test-filter-redirector$(EXESUF)
298
check-qtest-ppc64-y += tests/display-vga-test$(EXESUF)
299
check-qtest-ppc64-$(CONFIG_EVENTFD) += tests/ivshmem-test$(EXESUF)
300

301
check-qtest-sh4-y = tests/endianness-test$(EXESUF)
302

303
check-qtest-sh4eb-y = tests/endianness-test$(EXESUF)
304 305 306 307 308

check-qtest-sparc-y = tests/prom-env-test$(EXESUF)
#check-qtest-sparc-y += tests/m48t59-test$(EXESUF)
#gcov-files-sparc-y = hw/timer/m48t59.c

309 310
check-qtest-sparc64-y = tests/endianness-test$(EXESUF)
#check-qtest-sparc64-y += tests/m48t59-test$(EXESUF)
311
#gcov-files-sparc64-y += hw/timer/m48t59.c
312
check-qtest-sparc64-y += tests/prom-env-test$(EXESUF)
313

314
check-qtest-arm-y = tests/tmp105-test$(EXESUF)
T
Thomas Huth 已提交
315
check-qtest-arm-y += tests/ds1338-test$(EXESUF)
C
Cédric Le Goater 已提交
316
check-qtest-arm-y += tests/m25p80-test$(EXESUF)
317
gcov-files-arm-y += hw/misc/tmp105.c
M
Marc Marí 已提交
318 319
check-qtest-arm-y += tests/virtio-blk-test$(EXESUF)
gcov-files-arm-y += arm-softmmu/hw/block/virtio-blk.c
320 321
check-qtest-arm-y += tests/test-arm-mptimer$(EXESUF)
gcov-files-arm-y += hw/timer/arm_mptimer.c
322

A
Andreas Färber 已提交
323
check-qtest-microblazeel-y = $(check-qtest-microblaze-y)
324

A
Andreas Färber 已提交
325
check-qtest-xtensaeb-y = $(check-qtest-xtensa-y)
A
Anthony Liguori 已提交
326

327 328
check-qtest-s390x-y = tests/boot-serial-test$(EXESUF)

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

331
qapi-schema += alternate-any.json
E
Eric Blake 已提交
332 333 334 335 336
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 已提交
337
qapi-schema += alternate-empty.json
E
Eric Blake 已提交
338 339 340 341 342 343
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
344 345 346 347
qapi-schema += args-bad-boxed.json
qapi-schema += args-boxed-anon.json
qapi-schema += args-boxed-empty.json
qapi-schema += args-boxed-string.json
E
Eric Blake 已提交
348 349 350
qapi-schema += args-int.json
qapi-schema += args-invalid.json
qapi-schema += args-member-array-bad.json
351
qapi-schema += args-member-case.json
E
Eric Blake 已提交
352
qapi-schema += args-member-unknown.json
353
qapi-schema += args-name-clash.json
E
Eric Blake 已提交
354 355 356 357 358 359 360 361
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 已提交
362 363
qapi-schema += base-cycle-direct.json
qapi-schema += base-cycle-indirect.json
E
Eric Blake 已提交
364 365
qapi-schema += command-int.json
qapi-schema += comments.json
M
Marc-André Lureau 已提交
366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383
qapi-schema += doc-bad-args.json
qapi-schema += doc-bad-symbol.json
qapi-schema += doc-duplicated-arg.json
qapi-schema += doc-duplicated-return.json
qapi-schema += doc-duplicated-since.json
qapi-schema += doc-empty-arg.json
qapi-schema += doc-empty-section.json
qapi-schema += doc-empty-symbol.json
qapi-schema += doc-interleaved-section.json
qapi-schema += doc-invalid-end.json
qapi-schema += doc-invalid-end2.json
qapi-schema += doc-invalid-return.json
qapi-schema += doc-invalid-section.json
qapi-schema += doc-invalid-start.json
qapi-schema += doc-missing-colon.json
qapi-schema += doc-missing-expr.json
qapi-schema += doc-missing-space.json
qapi-schema += doc-optional.json
E
Eric Blake 已提交
384 385 386 387 388 389 390 391 392
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
393
qapi-schema += enum-member-case.json
E
Eric Blake 已提交
394 395 396 397 398
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
399
qapi-schema += event-boxed-empty.json
E
Eric Blake 已提交
400 401 402 403 404 405 406
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
407
qapi-schema += flat-union-clash-member.json
E
Eric Blake 已提交
408
qapi-schema += flat-union-empty.json
409
qapi-schema += flat-union-incomplete-branch.json
E
Eric Blake 已提交
410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443
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
444
qapi-schema += reserved-command-q.json
445
qapi-schema += reserved-enum-q.json
446 447
qapi-schema += reserved-member-has.json
qapi-schema += reserved-member-q.json
E
Eric Blake 已提交
448
qapi-schema += reserved-member-u.json
449
qapi-schema += reserved-member-underscore.json
450 451
qapi-schema += reserved-type-kind.json
qapi-schema += reserved-type-list.json
E
Eric Blake 已提交
452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468
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
469
qapi-schema += union-branch-case.json
470
qapi-schema += union-clash-branches.json
E
Eric Blake 已提交
471
qapi-schema += union-empty.json
E
Eric Blake 已提交
472 473 474 475 476
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
M
Marc-André Lureau 已提交
477 478


E
Eric Blake 已提交
479
check-qapi-schema-y := $(addprefix tests/qapi-schema/, $(qapi-schema))
480

481
GENERATED_HEADERS += tests/test-qapi-types.h tests/test-qapi-visit.h \
482 483
	tests/test-qmp-commands.h tests/test-qapi-event.h \
	tests/test-qmp-introspect.h
P
Paolo Bonzini 已提交
484 485

test-obj-y = tests/check-qint.o tests/check-qstring.o tests/check-qdict.o \
E
Eric Blake 已提交
486 487
	tests/check-qlist.o tests/check-qfloat.o tests/check-qnull.o \
	tests/check-qjson.o \
P
Paolo Bonzini 已提交
488
	tests/test-coroutine.o tests/test-string-output-visitor.o \
489
	tests/test-string-input-visitor.o tests/test-qobject-output-visitor.o \
E
Eric Blake 已提交
490
	tests/test-clone-visitor.o \
491
	tests/test-qobject-input-visitor.o \
492
	tests/test-qmp-commands.o tests/test-visitor-serialization.o \
493
	tests/test-x86-cpuid.o tests/test-mul64.o tests/test-int128.o \
P
Paolo Bonzini 已提交
494
	tests/test-opts-visitor.o tests/test-qmp-event.o \
E
Emilio G. Cota 已提交
495
	tests/rcutorture.o tests/test-rcu-list.o \
496
	tests/test-qdist.o tests/test-shift128.o \
E
Emilio G. Cota 已提交
497 498
	tests/test-qht.o tests/qht-bench.o tests/test-qht-par.o \
	tests/atomic_add-bench.o
P
Paolo Bonzini 已提交
499 500

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

503 504

# Deps that are common to various different sets of tests below
505
test-util-obj-y = $(trace-obj-y) libqemuutil.a libqemustub.a
506
test-qom-obj-y = $(qom-obj-y) $(test-util-obj-y)
507
test-qapi-obj-y = tests/test-qapi-visit.o tests/test-qapi-types.o \
508
	tests/test-qapi-event.o tests/test-qmp-introspect.o \
509
	$(test-qom-obj-y)
510
test-crypto-obj-y = $(crypto-obj-y) $(test-qom-obj-y)
511
test-io-obj-y = $(io-obj-y) $(test-crypto-obj-y)
512
test-block-obj-y = $(block-obj-y) $(test-io-obj-y) tests/iothread.o
513 514 515 516 517 518

tests/check-qint$(EXESUF): tests/check-qint.o $(test-util-obj-y)
tests/check-qstring$(EXESUF): tests/check-qstring.o $(test-util-obj-y)
tests/check-qdict$(EXESUF): tests/check-qdict.o $(test-util-obj-y)
tests/check-qlist$(EXESUF): tests/check-qlist.o $(test-util-obj-y)
tests/check-qfloat$(EXESUF): tests/check-qfloat.o $(test-util-obj-y)
E
Eric Blake 已提交
519
tests/check-qnull$(EXESUF): tests/check-qnull.o $(test-util-obj-y)
520 521 522
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)
523

524
tests/test-char$(EXESUF): tests/test-char.o $(test-util-obj-y) $(qtest-obj-y) $(test-io-obj-y) $(chardev-obj-y)
525 526
tests/test-coroutine$(EXESUF): tests/test-coroutine.o $(test-block-obj-y)
tests/test-aio$(EXESUF): tests/test-aio.o $(test-block-obj-y)
527
tests/test-aio-multithread$(EXESUF): tests/test-aio-multithread.o $(test-block-obj-y)
528
tests/test-throttle$(EXESUF): tests/test-throttle.o $(test-block-obj-y)
A
Alberto Garcia 已提交
529
tests/test-blockjob$(EXESUF): tests/test-blockjob.o $(test-block-obj-y) $(test-util-obj-y)
S
Stefan Hajnoczi 已提交
530
tests/test-blockjob-txn$(EXESUF): tests/test-blockjob-txn.o $(test-block-obj-y) $(test-util-obj-y)
531 532 533
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)
534
tests/test-x86-cpuid$(EXESUF): tests/test-x86-cpuid.o
535
tests/test-xbzrle$(EXESUF): tests/test-xbzrle.o migration/xbzrle.o page_cache.o $(test-util-obj-y)
536
tests/test-cutils$(EXESUF): tests/test-cutils.o util/cutils.o
537
tests/test-int128$(EXESUF): tests/test-int128.o
538 539
tests/rcutorture$(EXESUF): tests/rcutorture.o $(test-util-obj-y)
tests/test-rcu-list$(EXESUF): tests/test-rcu-list.o $(test-util-obj-y)
E
Emilio G. Cota 已提交
540
tests/test-qdist$(EXESUF): tests/test-qdist.o $(test-util-obj-y)
E
Emilio G. Cota 已提交
541
tests/test-qht$(EXESUF): tests/test-qht.o $(test-util-obj-y)
542
tests/test-qht-par$(EXESUF): tests/test-qht-par.o tests/qht-bench$(EXESUF) $(test-util-obj-y)
543
tests/qht-bench$(EXESUF): tests/qht-bench.o $(test-util-obj-y)
544
tests/test-bufferiszero$(EXESUF): tests/test-bufferiszero.o $(test-util-obj-y)
E
Emilio G. Cota 已提交
545
tests/atomic_add-bench$(EXESUF): tests/atomic_add-bench.o $(test-util-obj-y)
P
Paolo Bonzini 已提交
546

547
tests/test-qdev-global-props$(EXESUF): tests/test-qdev-global-props.o \
548
	hw/core/qdev.o hw/core/qdev-properties.o hw/core/hotplug.o\
549
	hw/core/bus.o \
550
	hw/core/irq.o \
551
	hw/core/fw-path-provider.o \
552
	hw/core/reset.o \
553
	$(test-qapi-obj-y)
554
tests/test-vmstate$(EXESUF): tests/test-vmstate.o \
555
	migration/vmstate.o migration/qemu-file.o \
556 557
        migration/qemu-file-channel.o migration/qjson.o \
	$(test-io-obj-y)
558
tests/test-timed-average$(EXESUF): tests/test-timed-average.o $(test-util-obj-y)
559 560
tests/test-base64$(EXESUF): tests/test-base64.o \
	libqemuutil.a libqemustub.a
P
Paolo Bonzini 已提交
561
tests/ptimer-test$(EXESUF): tests/ptimer-test.o tests/ptimer-test-stubs.o hw/core/ptimer.o libqemustub.a
P
Paolo Bonzini 已提交
562

563 564
tests/test-logging$(EXESUF): tests/test-logging.o $(test-util-obj-y)

565 566 567
tests/test-replication$(EXESUF): tests/test-replication.o $(test-util-obj-y) \
	$(test-block-obj-y)

P
Paolo Bonzini 已提交
568
tests/test-qapi-types.c tests/test-qapi-types.h :\
569
$(SRC_PATH)/tests/qapi-schema/qapi-schema-test.json $(SRC_PATH)/scripts/qapi-types.py $(qapi-py)
570
	$(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-types.py \
571
		$(gen-out-type) -o tests -p "test-" $<, \
572
		"GEN","$@")
P
Paolo Bonzini 已提交
573
tests/test-qapi-visit.c tests/test-qapi-visit.h :\
574
$(SRC_PATH)/tests/qapi-schema/qapi-schema-test.json $(SRC_PATH)/scripts/qapi-visit.py $(qapi-py)
575
	$(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-visit.py \
576
		$(gen-out-type) -o tests -p "test-" $<, \
577
		"GEN","$@")
P
Paolo Bonzini 已提交
578
tests/test-qmp-commands.h tests/test-qmp-marshal.c :\
579
$(SRC_PATH)/tests/qapi-schema/qapi-schema-test.json $(SRC_PATH)/scripts/qapi-commands.py $(qapi-py)
580
	$(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-commands.py \
581
		$(gen-out-type) -o tests -p "test-" $<, \
582
		"GEN","$@")
583
tests/test-qapi-event.c tests/test-qapi-event.h :\
584
$(SRC_PATH)/tests/qapi-schema/qapi-schema-test.json $(SRC_PATH)/scripts/qapi-event.py $(qapi-py)
585
	$(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-event.py \
586
		$(gen-out-type) -o tests -p "test-" $<, \
587
		"GEN","$@")
588 589 590 591
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-" $<, \
592
		"GEN","$@")
593

594 595 596
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)
597
tests/test-qobject-output-visitor$(EXESUF): tests/test-qobject-output-visitor.o $(test-qapi-obj-y)
E
Eric Blake 已提交
598
tests/test-clone-visitor$(EXESUF): tests/test-clone-visitor.o $(test-qapi-obj-y)
599
tests/test-qobject-input-visitor$(EXESUF): tests/test-qobject-input-visitor.o $(test-qapi-obj-y)
600 601 602
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)
603

604
tests/test-shift128$(EXESUF): tests/test-shift128.o $(test-util-obj-y)
605 606
tests/test-mul64$(EXESUF): tests/test-mul64.o $(test-util-obj-y)
tests/test-bitops$(EXESUF): tests/test-bitops.o $(test-util-obj-y)
A
Alex Bennée 已提交
607
tests/test-bitcnt$(EXESUF): tests/test-bitcnt.o $(test-util-obj-y)
608
tests/test-crypto-hash$(EXESUF): tests/test-crypto-hash.o $(test-crypto-obj-y)
609
tests/test-crypto-hmac$(EXESUF): tests/test-crypto-hmac.o $(test-crypto-obj-y)
610
tests/test-crypto-cipher$(EXESUF): tests/test-crypto-cipher.o $(test-crypto-obj-y)
611
tests/test-crypto-secret$(EXESUF): tests/test-crypto-secret.o $(test-crypto-obj-y)
612
tests/test-crypto-xts$(EXESUF): tests/test-crypto-xts.o $(test-crypto-obj-y)
613 614 615 616 617 618

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)
619 620
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)
621 622

tests/test-crypto-tlssession.o-cflags := $(TASN1_CFLAGS)
623 624
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)
625
tests/test-io-task$(EXESUF): tests/test-io-task.o $(test-io-obj-y)
626 627
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 已提交
628 629
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 已提交
630 631 632
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)
633 634
tests/test-io-channel-command$(EXESUF): tests/test-io-channel-command.o \
        tests/io-channel-helpers.o $(test-io-obj-y)
635 636
tests/test-io-channel-buffer$(EXESUF): tests/test-io-channel-buffer.o \
        tests/io-channel-helpers.o $(test-io-obj-y)
637
tests/test-crypto-pbkdf$(EXESUF): tests/test-crypto-pbkdf.o $(test-crypto-obj-y)
638
tests/test-crypto-ivgen$(EXESUF): tests/test-crypto-ivgen.o $(test-crypto-obj-y)
639
tests/test-crypto-afsplit$(EXESUF): tests/test-crypto-afsplit.o $(test-crypto-obj-y)
640
tests/test-crypto-block$(EXESUF): tests/test-crypto-block.o $(test-crypto-obj-y)
641

642
libqos-obj-y = tests/libqos/pci.o tests/libqos/fw_cfg.o tests/libqos/malloc.o
J
John Snow 已提交
643
libqos-obj-y += tests/libqos/i2c.o tests/libqos/libqos.o
644 645
libqos-spapr-obj-y = $(libqos-obj-y) tests/libqos/malloc-spapr.o
libqos-spapr-obj-y += tests/libqos/libqos-spapr.o
646
libqos-spapr-obj-y += tests/libqos/rtas.o
L
Laurent Vivier 已提交
647
libqos-spapr-obj-y += tests/libqos/pci-spapr.o
648
libqos-pc-obj-y = $(libqos-obj-y) tests/libqos/pci-pc.o
J
John Snow 已提交
649
libqos-pc-obj-y += tests/libqos/malloc-pc.o tests/libqos/libqos-pc.o
J
John Snow 已提交
650
libqos-pc-obj-y += tests/libqos/ahci.o
A
Andreas Färber 已提交
651
libqos-omap-obj-y = $(libqos-obj-y) tests/libqos/i2c-omap.o
652
libqos-imx-obj-y = $(libqos-obj-y) tests/libqos/i2c-imx.o
653
libqos-usb-obj-y = $(libqos-spapr-obj-y) $(libqos-pc-obj-y) tests/libqos/usb.o
654
libqos-virtio-obj-y = $(libqos-spapr-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
655

656
tests/qmp-test$(EXESUF): tests/qmp-test.o
657
tests/device-introspect-test$(EXESUF): tests/device-introspect-test.o
658 659
tests/rtc-test$(EXESUF): tests/rtc-test.o
tests/m48t59-test$(EXESUF): tests/m48t59-test.o
660
tests/endianness-test$(EXESUF): tests/endianness-test.o
661
tests/spapr-phb-test$(EXESUF): tests/spapr-phb-test.o $(libqos-obj-y)
662
tests/prom-env-test$(EXESUF): tests/prom-env-test.o $(libqos-obj-y)
663
tests/rtas-test$(EXESUF): tests/rtas-test.o $(libqos-spapr-obj-y)
664
tests/fdc-test$(EXESUF): tests/fdc-test.o
K
Kevin Wolf 已提交
665
tests/ide-test$(EXESUF): tests/ide-test.o $(libqos-pc-obj-y)
J
John Snow 已提交
666
tests/ahci-test$(EXESUF): tests/ahci-test.o $(libqos-pc-obj-y)
C
Corey Minyard 已提交
667 668
tests/ipmi-kcs-test$(EXESUF): tests/ipmi-kcs-test.o
tests/ipmi-bt-test$(EXESUF): tests/ipmi-bt-test.o
669
tests/hd-geo-test$(EXESUF): tests/hd-geo-test.o
670
tests/boot-order-test$(EXESUF): tests/boot-order-test.o $(libqos-obj-y)
671
tests/boot-serial-test$(EXESUF): tests/boot-serial-test.o $(libqos-obj-y)
672
tests/bios-tables-test$(EXESUF): tests/bios-tables-test.o \
673
	tests/boot-sector.o tests/acpi-utils.o $(libqos-obj-y)
674
tests/pxe-test$(EXESUF): tests/pxe-test.o tests/boot-sector.o $(libqos-obj-y)
A
Andreas Färber 已提交
675
tests/tmp105-test$(EXESUF): tests/tmp105-test.o $(libqos-omap-obj-y)
676
tests/ds1338-test$(EXESUF): tests/ds1338-test.o $(libqos-imx-obj-y)
C
Cédric Le Goater 已提交
677
tests/m25p80-test$(EXESUF): tests/m25p80-test.o
678
tests/i440fx-test$(EXESUF): tests/i440fx-test.o $(libqos-pc-obj-y)
G
Gerd Hoffmann 已提交
679
tests/q35-test$(EXESUF): tests/q35-test.o $(libqos-pc-obj-y)
A
Anthony Liguori 已提交
680
tests/fw_cfg-test$(EXESUF): tests/fw_cfg-test.o $(libqos-pc-obj-y)
A
Andreas Färber 已提交
681
tests/e1000-test$(EXESUF): tests/e1000-test.o
682
tests/e1000e-test$(EXESUF): tests/e1000e-test.o $(libqos-pc-obj-y)
683
tests/rtl8139-test$(EXESUF): tests/rtl8139-test.o $(libqos-pc-obj-y)
A
Andreas Färber 已提交
684
tests/pcnet-test$(EXESUF): tests/pcnet-test.o
685
tests/pnv-xscom-test$(EXESUF): tests/pnv-xscom-test.o
A
Andreas Färber 已提交
686
tests/eepro100-test$(EXESUF): tests/eepro100-test.o
A
Andreas Färber 已提交
687
tests/vmxnet3-test$(EXESUF): tests/vmxnet3-test.o
A
Andreas Färber 已提交
688
tests/ne2000-test$(EXESUF): tests/ne2000-test.o
P
Paolo Bonzini 已提交
689
tests/wdt_ib700-test$(EXESUF): tests/wdt_ib700-test.o
690
tests/tco-test$(EXESUF): tests/tco-test.o $(libqos-pc-obj-y)
691
tests/virtio-balloon-test$(EXESUF): tests/virtio-balloon-test.o
692
tests/virtio-blk-test$(EXESUF): tests/virtio-blk-test.o $(libqos-virtio-obj-y)
693
tests/virtio-net-test$(EXESUF): tests/virtio-net-test.o $(libqos-pc-obj-y) $(libqos-virtio-obj-y)
694
tests/virtio-rng-test$(EXESUF): tests/virtio-rng-test.o $(libqos-pc-obj-y)
695
tests/virtio-scsi-test$(EXESUF): tests/virtio-scsi-test.o $(libqos-virtio-obj-y)
696
tests/virtio-9p-test$(EXESUF): tests/virtio-9p-test.o $(libqos-virtio-obj-y)
A
Andreas Färber 已提交
697
tests/virtio-serial-test$(EXESUF): tests/virtio-serial-test.o
698
tests/virtio-console-test$(EXESUF): tests/virtio-console-test.o
A
Andreas Färber 已提交
699
tests/tpci200-test$(EXESUF): tests/tpci200-test.o
G
Gerd Hoffmann 已提交
700
tests/display-vga-test$(EXESUF): tests/display-vga-test.o
A
Andreas Färber 已提交
701
tests/ipoctal232-test$(EXESUF): tests/ipoctal232-test.o
A
Andreas Färber 已提交
702
tests/qom-test$(EXESUF): tests/qom-test.o
703
tests/drive_del-test$(EXESUF): tests/drive_del-test.o $(libqos-pc-obj-y)
704
tests/qdev-monitor-test$(EXESUF): tests/qdev-monitor-test.o $(libqos-pc-obj-y)
A
Andreas Färber 已提交
705
tests/nvme-test$(EXESUF): tests/nvme-test.o
A
Andreas Färber 已提交
706
tests/pvpanic-test$(EXESUF): tests/pvpanic-test.o
A
Andreas Färber 已提交
707
tests/i82801b11-test$(EXESUF): tests/i82801b11-test.o
A
Andreas Färber 已提交
708
tests/ac97-test$(EXESUF): tests/ac97-test.o
A
Andreas Färber 已提交
709
tests/es1370-test$(EXESUF): tests/es1370-test.o
A
Andreas Färber 已提交
710
tests/intel-hda-test$(EXESUF): tests/intel-hda-test.o
A
Andreas Färber 已提交
711
tests/ioh3420-test$(EXESUF): tests/ioh3420-test.o
712
tests/usb-hcd-ohci-test$(EXESUF): tests/usb-hcd-ohci-test.o $(libqos-usb-obj-y)
713
tests/usb-hcd-uhci-test$(EXESUF): tests/usb-hcd-uhci-test.o $(libqos-usb-obj-y)
714
tests/usb-hcd-ehci-test$(EXESUF): tests/usb-hcd-ehci-test.o $(libqos-usb-obj-y)
715
tests/usb-hcd-xhci-test$(EXESUF): tests/usb-hcd-xhci-test.o $(libqos-usb-obj-y)
A
Andreas Färber 已提交
716
tests/pc-cpu-test$(EXESUF): tests/pc-cpu-test.o
D
Dr. David Alan Gilbert 已提交
717
tests/postcopy-test$(EXESUF): tests/postcopy-test.o
718
tests/vhost-user-test$(EXESUF): tests/vhost-user-test.o $(test-util-obj-y) \
M
Marc-André Lureau 已提交
719 720
	$(qtest-obj-y) $(test-io-obj-y) $(libqos-virtio-obj-y) $(libqos-pc-obj-y) \
	$(chardev-obj-y)
721
tests/qemu-iotests/socket_scm_helper$(EXESUF): tests/qemu-iotests/socket_scm_helper.o
722 723
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)
724
tests/test-netfilter$(EXESUF): tests/test-netfilter.o $(qtest-obj-y)
725
tests/test-filter-mirror$(EXESUF): tests/test-filter-mirror.o $(qtest-obj-y)
726
tests/test-filter-redirector$(EXESUF): tests/test-filter-redirector.o $(qtest-obj-y)
727
tests/test-x86-cpuid-compat$(EXESUF): tests/test-x86-cpuid-compat.o $(qtest-obj-y)
728
tests/ivshmem-test$(EXESUF): tests/ivshmem-test.o contrib/ivshmem-server/ivshmem-server.o $(libqos-pc-obj-y) $(libqos-spapr-obj-y)
729
tests/vhost-user-bridge$(EXESUF): tests/vhost-user-bridge.o contrib/libvhost-user/libvhost-user.o $(test-util-obj-y)
F
Fam Zheng 已提交
730
tests/test-uuid$(EXESUF): tests/test-uuid.o $(test-util-obj-y)
731
tests/test-arm-mptimer$(EXESUF): tests/test-arm-mptimer.o
B
Blue Swirl 已提交
732

733
tests/migration/stress$(EXESUF): tests/migration/stress.o
734
	$(call quiet-command, $(LINKPROG) -static -O3 $(PTHREAD_LIB) -o $@ $< ,"LINK","$(TARGET_DIR)$@")
735 736 737 738 739 740 741 742 743 744

INITRD_WORK_DIR=tests/migration/initrd

tests/migration/initrd-stress.img: tests/migration/stress$(EXESUF)
	mkdir -p $(INITRD_WORK_DIR)
	cp $< $(INITRD_WORK_DIR)/init
	(cd $(INITRD_WORK_DIR) && (find | cpio --quiet -o -H newc | gzip -9)) > $@
	rm $(INITRD_WORK_DIR)/init
	rmdir $(INITRD_WORK_DIR)

N
Nikolay Nikolaev 已提交
745 746 747
ifeq ($(CONFIG_POSIX),y)
LIBS += -lutil
endif
N
Nikolay Nikolaev 已提交
748

749 750 751
# QTest rules

TARGETS=$(patsubst %-softmmu,%, $(filter %-softmmu,$(TARGET_DIRS)))
752
ifeq ($(CONFIG_POSIX),y)
M
Markus Armbruster 已提交
753
QTEST_TARGETS = $(TARGETS)
754
check-qtest-y=$(foreach TARGET,$(TARGETS), $(check-qtest-$(TARGET)-y))
M
Markus Armbruster 已提交
755 756 757
check-qtest-y += $(check-qtest-generic-y)
else
QTEST_TARGETS =
758
endif
759

760
qtest-obj-y = tests/libqtest.o $(test-util-obj-y)
761 762
$(check-qtest-y): $(qtest-obj-y)

763 764
tests/test-qga: tests/test-qga.o $(qtest-obj-y)

P
Paolo Bonzini 已提交
765 766 767 768 769
.PHONY: check-help
check-help:
	@echo "Regression testing targets:"
	@echo
	@echo " make check                Run all tests"
770 771
	@echo " make check-qtest-TARGET   Run qtest tests for given target"
	@echo " make check-qtest          Run qtest tests"
P
Paolo Bonzini 已提交
772
	@echo " make check-unit           Run qobject tests"
773
	@echo " make check-qapi-schema    Run QAPI schema tests"
P
Paolo Bonzini 已提交
774 775
	@echo " make check-block          Run block tests"
	@echo " make check-report.html    Generates an HTML test report"
W
Wenchao Xia 已提交
776
	@echo " make check-clean          Clean the tests"
P
Paolo Bonzini 已提交
777 778 779 780 781 782 783
	@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."
784

P
Paolo Bonzini 已提交
785 786
SPEED = quick
GTESTER_OPTIONS = -k $(if $(V),--verbose,-q)
B
Blue Swirl 已提交
787
GCOV_OPTIONS = -n $(if $(V),-f,)
788

P
Paolo Bonzini 已提交
789
# gtester tests, possibly with verbose output
790

791 792
.PHONY: $(patsubst %, check-qtest-%, $(QTEST_TARGETS))
$(patsubst %, check-qtest-%, $(QTEST_TARGETS)): check-qtest-%: $(check-qtest-y)
B
Blue Swirl 已提交
793
	$(if $(CONFIG_GCOV),@rm -f *.gcda */*.gcda */*/*.gcda */*/*/*.gcda,)
794
	$(call quiet-command,QTEST_QEMU_BINARY=$*-softmmu/qemu-system-$* \
795
		QTEST_QEMU_IMG=qemu-img$(EXESUF) \
796
		MALLOC_PERTURB_=$${MALLOC_PERTURB_:-$$((RANDOM % 255 + 1))} \
797
		gtester $(GTESTER_OPTIONS) -m=$(SPEED) $(check-qtest-$*-y) $(check-qtest-generic-y),"GTESTER","$@")
798
	$(if $(CONFIG_GCOV),@for f in $(gcov-files-$*-y) $(gcov-files-generic-y); do \
B
Blue Swirl 已提交
799 800 801
	  echo Gcov report for $$f:;\
	  $(GCOV) $(GCOV_OPTIONS) $$f -o `dirname $$f`; \
	done,)
802

P
Paolo Bonzini 已提交
803 804
.PHONY: $(patsubst %, check-%, $(check-unit-y))
$(patsubst %, check-%, $(check-unit-y)): check-%: %
B
Blue Swirl 已提交
805
	$(if $(CONFIG_GCOV),@rm -f *.gcda */*.gcda */*/*.gcda */*/*/*.gcda,)
806 807
	$(call quiet-command, \
		MALLOC_PERTURB_=$${MALLOC_PERTURB_:-$$((RANDOM % 255 + 1))} \
808
		gtester $(GTESTER_OPTIONS) -m=$(SPEED) $*,"GTESTER","$*")
809
	$(if $(CONFIG_GCOV),@for f in $(gcov-files-$(subst tests/,,$*)-y) $(gcov-files-generic-y); do \
B
Blue Swirl 已提交
810 811 812
	  echo Gcov report for $$f:;\
	  $(GCOV) $(GCOV_OPTIONS) $$f -o `dirname $$f`; \
	done,)
813

P
Paolo Bonzini 已提交
814
# gtester tests with XML output
K
Kevin Wolf 已提交
815

816 817
$(patsubst %, check-report-qtest-%.xml, $(QTEST_TARGETS)): check-report-qtest-%.xml: $(check-qtest-y)
	$(call quiet-command,QTEST_QEMU_BINARY=$*-softmmu/qemu-system-$* \
818
		QTEST_QEMU_IMG=qemu-img$(EXESUF) \
819
	  gtester -q $(GTESTER_OPTIONS) -o $@ -m=$(SPEED) $(check-qtest-$*-y) $(check-qtest-generic-y),"GTESTER","$@")
820

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

P
Paolo Bonzini 已提交
824
# Reports and overall runs
K
Kevin Wolf 已提交
825

826
check-report.xml: $(patsubst %,check-report-qtest-%.xml, $(QTEST_TARGETS)) check-report-unit.xml
827
	$(call quiet-command,$(SRC_PATH)/scripts/gtester-cat $^ > $@,"GEN","$@")
K
Kevin Wolf 已提交
828

P
Paolo Bonzini 已提交
829
check-report.html: check-report.xml
830
	$(call quiet-command,gtester-report $< > $@,"GEN","$@")
P
Paolo Bonzini 已提交
831 832 833 834


# Other tests

835 836
QEMU_IOTESTS_HELPERS-$(CONFIG_LINUX) = tests/qemu-iotests/socket_scm_helper$(EXESUF)

P
Paolo Bonzini 已提交
837
.PHONY: check-tests/qemu-iotests-quick.sh
838
check-tests/qemu-iotests-quick.sh: tests/qemu-iotests-quick.sh qemu-img$(EXESUF) qemu-io$(EXESUF) $(QEMU_IOTESTS_HELPERS-y)
P
Paolo Bonzini 已提交
839 840
	$<

841 842 843 844 845
.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
846 847
	$(call quiet-command, PYTHONPATH=$(SRC_PATH)/scripts \
		$(PYTHON) $(SRC_PATH)/tests/qapi-schema/test-qapi.py \
848
		$^ >$*.test.out 2>$*.test.err; \
849
		echo $$? >$*.test.exit, \
850
		"TEST","$*.out")
851
	@diff -q $(SRC_PATH)/$*.out $*.test.out
852 853
	@# 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 -
854
	@diff -q $(SRC_PATH)/$*.exit $*.test.exit
855

P
Paolo Bonzini 已提交
856 857
# Consolidated targets

W
Wenchao Xia 已提交
858
.PHONY: check-qapi-schema check-qtest check-unit check check-clean
859
check-qapi-schema: $(patsubst %,check-%, $(check-qapi-schema-y))
860
check-qtest: $(patsubst %,check-qtest-%, $(QTEST_TARGETS))
P
Paolo Bonzini 已提交
861 862
check-unit: $(patsubst %,check-%, $(check-unit-y))
check-block: $(patsubst %,check-%, $(check-block-y))
863
check: check-qapi-schema check-unit check-qtest
W
Wenchao Xia 已提交
864 865
check-clean:
	$(MAKE) -C tests/tcg clean
A
Andreas Färber 已提交
866
	rm -rf $(check-unit-y) tests/*.o $(QEMU_IOTESTS_HELPERS-y)
867
	rm -rf $(sort $(foreach target,$(SYSEMU_TARGET_LIST), $(check-qtest-$(target)-y)) $(check-qtest-generic-y))
W
Wenchao Xia 已提交
868 869

clean: check-clean
870

871 872 873 874
# Build the help program automatically

all: $(QEMU_IOTESTS_HELPERS-y)

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