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

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

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

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

132
gcov-files-ipack-y += hw/ipack/ipack.c
A
Andreas Färber 已提交
133 134 135
check-qtest-ipack-y += tests/ipoctal232-test$(EXESUF)
gcov-files-ipack-y += hw/char/ipoctal232.c

136 137 138
check-qtest-virtioserial-y += tests/virtio-console-test$(EXESUF)
gcov-files-virtioserial-y += hw/char/virtio-console.c

A
Andreas Färber 已提交
139 140 141
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
142 143
check-qtest-virtio-y += tests/virtio-balloon-test$(EXESUF)
gcov-files-virtio-y += i386-softmmu/hw/virtio/virtio-balloon.c
A
Andreas Färber 已提交
144 145
check-qtest-virtio-y += tests/virtio-blk-test$(EXESUF)
gcov-files-virtio-y += i386-softmmu/hw/block/virtio-blk.c
A
Andreas Färber 已提交
146 147
check-qtest-virtio-y += tests/virtio-rng-test$(EXESUF)
gcov-files-virtio-y += hw/virtio/virtio-rng.c
A
Andreas Färber 已提交
148 149
check-qtest-virtio-y += tests/virtio-scsi-test$(EXESUF)
gcov-files-virtio-y += i386-softmmu/hw/scsi/virtio-scsi.c
A
Andreas Färber 已提交
150 151 152 153 154
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 已提交
155 156
check-qtest-virtio-y += tests/virtio-serial-test$(EXESUF)
gcov-files-virtio-y += i386-softmmu/hw/char/virtio-serial-bus.c
157 158
check-qtest-virtio-y += $(check-qtest-virtioserial-y)
gcov-files-virtio-y += $(gcov-files-virtioserial-y)
A
Andreas Färber 已提交
159

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

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

255 256
check-qtest-alpha-y = tests/boot-serial-test$(EXESUF)

257
check-qtest-mips-y = tests/endianness-test$(EXESUF)
258

259
check-qtest-mips64-y = tests/endianness-test$(EXESUF)
260

261
check-qtest-mips64el-y = tests/endianness-test$(EXESUF)
262

263
check-qtest-ppc-y = tests/endianness-test$(EXESUF)
264 265 266
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)
267
check-qtest-ppc-y += tests/boot-serial-test$(EXESUF)
268 269 270 271 272 273 274 275

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)
check-qtest-ppc64-y += tests/drive_del-test$(EXESUF)
check-qtest-ppc64-y += tests/postcopy-test$(EXESUF)
276
check-qtest-ppc64-y += tests/boot-serial-test$(EXESUF)
277
check-qtest-ppc64-y += tests/rtas-test$(EXESUF)
278
check-qtest-ppc64-y += tests/pxe-test$(EXESUF)
279 280 281 282 283 284
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
285

286
check-qtest-sh4-y = tests/endianness-test$(EXESUF)
287

288
check-qtest-sh4eb-y = tests/endianness-test$(EXESUF)
289 290 291 292 293

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

294 295
check-qtest-sparc64-y = tests/endianness-test$(EXESUF)
#check-qtest-sparc64-y += tests/m48t59-test$(EXESUF)
296 297 298 299
#gcov-files-sparc64-y += hw/timer/m48t59.c
#Disabled for now, triggers a TCG bug on 32-bit hosts
#check-qtest-sparc64-y += tests/prom-env-test$(EXESUF)

300
check-qtest-arm-y = tests/tmp105-test$(EXESUF)
T
Thomas Huth 已提交
301
check-qtest-arm-y += tests/ds1338-test$(EXESUF)
C
Cédric Le Goater 已提交
302
check-qtest-arm-y += tests/m25p80-test$(EXESUF)
303
gcov-files-arm-y += hw/misc/tmp105.c
M
Marc Marí 已提交
304 305
check-qtest-arm-y += tests/virtio-blk-test$(EXESUF)
gcov-files-arm-y += arm-softmmu/hw/block/virtio-blk.c
306 307
check-qtest-arm-y += tests/test-arm-mptimer$(EXESUF)
gcov-files-arm-y += hw/timer/arm_mptimer.c
308

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

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

313 314
check-qtest-s390x-y = tests/boot-serial-test$(EXESUF)

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

317
qapi-schema += alternate-any.json
E
Eric Blake 已提交
318 319 320 321 322
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 已提交
323
qapi-schema += alternate-empty.json
E
Eric Blake 已提交
324 325 326 327 328 329
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
330 331 332 333
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 已提交
334 335 336
qapi-schema += args-int.json
qapi-schema += args-invalid.json
qapi-schema += args-member-array-bad.json
337
qapi-schema += args-member-case.json
E
Eric Blake 已提交
338
qapi-schema += args-member-unknown.json
339
qapi-schema += args-name-clash.json
E
Eric Blake 已提交
340 341 342 343 344 345 346 347
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 已提交
348 349
qapi-schema += base-cycle-direct.json
qapi-schema += base-cycle-indirect.json
E
Eric Blake 已提交
350 351 352 353 354 355 356 357 358 359 360
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
361
qapi-schema += enum-member-case.json
E
Eric Blake 已提交
362 363 364 365 366
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
367
qapi-schema += event-boxed-empty.json
E
Eric Blake 已提交
368 369 370 371 372 373 374
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
375
qapi-schema += flat-union-clash-member.json
E
Eric Blake 已提交
376
qapi-schema += flat-union-empty.json
377
qapi-schema += flat-union-incomplete-branch.json
E
Eric Blake 已提交
378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411
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
412
qapi-schema += reserved-command-q.json
413
qapi-schema += reserved-enum-q.json
414 415
qapi-schema += reserved-member-has.json
qapi-schema += reserved-member-q.json
E
Eric Blake 已提交
416
qapi-schema += reserved-member-u.json
417
qapi-schema += reserved-member-underscore.json
418 419
qapi-schema += reserved-type-kind.json
qapi-schema += reserved-type-list.json
E
Eric Blake 已提交
420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436
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
437
qapi-schema += union-branch-case.json
438
qapi-schema += union-clash-branches.json
E
Eric Blake 已提交
439
qapi-schema += union-empty.json
E
Eric Blake 已提交
440 441 442 443 444 445
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))
446

447
GENERATED_HEADERS += tests/test-qapi-types.h tests/test-qapi-visit.h \
448 449
	tests/test-qmp-commands.h tests/test-qapi-event.h \
	tests/test-qmp-introspect.h
P
Paolo Bonzini 已提交
450 451

test-obj-y = tests/check-qint.o tests/check-qstring.o tests/check-qdict.o \
E
Eric Blake 已提交
452 453
	tests/check-qlist.o tests/check-qfloat.o tests/check-qnull.o \
	tests/check-qjson.o \
P
Paolo Bonzini 已提交
454
	tests/test-coroutine.o tests/test-string-output-visitor.o \
455
	tests/test-string-input-visitor.o tests/test-qobject-output-visitor.o \
E
Eric Blake 已提交
456
	tests/test-clone-visitor.o \
457
	tests/test-qobject-input-visitor.o tests/test-qobject-input-strict.o \
458
	tests/test-qmp-commands.o tests/test-visitor-serialization.o \
459
	tests/test-x86-cpuid.o tests/test-mul64.o tests/test-int128.o \
P
Paolo Bonzini 已提交
460
	tests/test-opts-visitor.o tests/test-qmp-event.o \
E
Emilio G. Cota 已提交
461
	tests/rcutorture.o tests/test-rcu-list.o \
E
Emilio G. Cota 已提交
462
	tests/test-qdist.o \
E
Emilio G. Cota 已提交
463 464
	tests/test-qht.o tests/qht-bench.o tests/test-qht-par.o \
	tests/atomic_add-bench.o
P
Paolo Bonzini 已提交
465 466

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

469 470 471

# Deps that are common to various different sets of tests below
test-util-obj-y = libqemuutil.a libqemustub.a
472
test-qom-obj-y = $(qom-obj-y) $(test-util-obj-y)
473
test-qapi-obj-y = tests/test-qapi-visit.o tests/test-qapi-types.o \
474
	tests/test-qapi-event.o tests/test-qmp-introspect.o \
475
	$(test-qom-obj-y)
476
test-crypto-obj-y = $(crypto-obj-y) $(test-qom-obj-y)
477
test-io-obj-y = $(io-obj-y) $(test-crypto-obj-y)
478
test-block-obj-y = $(block-obj-y) $(test-io-obj-y)
479 480 481 482 483 484

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 已提交
485
tests/check-qnull$(EXESUF): tests/check-qnull.o $(test-util-obj-y)
486 487 488
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)
489 490

tests/test-char$(EXESUF): tests/test-char.o qemu-char.o qemu-timer.o $(test-util-obj-y) $(qtest-obj-y) $(test-io-obj-y)
491 492 493 494
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)
A
Alberto Garcia 已提交
495
tests/test-blockjob$(EXESUF): tests/test-blockjob.o $(test-block-obj-y) $(test-util-obj-y)
S
Stefan Hajnoczi 已提交
496
tests/test-blockjob-txn$(EXESUF): tests/test-blockjob-txn.o $(test-block-obj-y) $(test-util-obj-y)
497 498 499
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)
500
tests/test-x86-cpuid$(EXESUF): tests/test-x86-cpuid.o
501
tests/test-xbzrle$(EXESUF): tests/test-xbzrle.o migration/xbzrle.o page_cache.o $(test-util-obj-y)
502
tests/test-cutils$(EXESUF): tests/test-cutils.o util/cutils.o
503
tests/test-int128$(EXESUF): tests/test-int128.o
504 505
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 已提交
506
tests/test-qdist$(EXESUF): tests/test-qdist.o $(test-util-obj-y)
E
Emilio G. Cota 已提交
507
tests/test-qht$(EXESUF): tests/test-qht.o $(test-util-obj-y)
508
tests/test-qht-par$(EXESUF): tests/test-qht-par.o tests/qht-bench$(EXESUF) $(test-util-obj-y)
509
tests/qht-bench$(EXESUF): tests/qht-bench.o $(test-util-obj-y)
510
tests/test-bufferiszero$(EXESUF): tests/test-bufferiszero.o $(test-util-obj-y)
E
Emilio G. Cota 已提交
511
tests/atomic_add-bench$(EXESUF): tests/atomic_add-bench.o $(test-util-obj-y)
P
Paolo Bonzini 已提交
512

513
tests/test-qdev-global-props$(EXESUF): tests/test-qdev-global-props.o \
514
	hw/core/qdev.o hw/core/qdev-properties.o hw/core/hotplug.o\
515
	hw/core/bus.o \
516
	hw/core/irq.o \
517
	hw/core/fw-path-provider.o \
518
	$(test-qapi-obj-y)
519
tests/test-vmstate$(EXESUF): tests/test-vmstate.o \
520
	migration/vmstate.o migration/qemu-file.o \
521 522
        migration/qemu-file-channel.o migration/qjson.o \
	$(test-io-obj-y)
523
tests/test-timed-average$(EXESUF): tests/test-timed-average.o qemu-timer.o \
524
	$(test-util-obj-y)
525 526
tests/test-base64$(EXESUF): tests/test-base64.o \
	libqemuutil.a libqemustub.a
P
Paolo Bonzini 已提交
527
tests/ptimer-test$(EXESUF): tests/ptimer-test.o tests/ptimer-test-stubs.o hw/core/ptimer.o libqemustub.a
P
Paolo Bonzini 已提交
528

529 530
tests/test-logging$(EXESUF): tests/test-logging.o $(test-util-obj-y)

531 532 533
tests/test-replication$(EXESUF): tests/test-replication.o $(test-util-obj-y) \
	$(test-block-obj-y)

P
Paolo Bonzini 已提交
534
tests/test-qapi-types.c tests/test-qapi-types.h :\
535
$(SRC_PATH)/tests/qapi-schema/qapi-schema-test.json $(SRC_PATH)/scripts/qapi-types.py $(qapi-py)
536
	$(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-types.py \
537
		$(gen-out-type) -o tests -p "test-" $<, \
538
		"GEN","$@")
P
Paolo Bonzini 已提交
539
tests/test-qapi-visit.c tests/test-qapi-visit.h :\
540
$(SRC_PATH)/tests/qapi-schema/qapi-schema-test.json $(SRC_PATH)/scripts/qapi-visit.py $(qapi-py)
541
	$(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-visit.py \
542
		$(gen-out-type) -o tests -p "test-" $<, \
543
		"GEN","$@")
P
Paolo Bonzini 已提交
544
tests/test-qmp-commands.h tests/test-qmp-marshal.c :\
545
$(SRC_PATH)/tests/qapi-schema/qapi-schema-test.json $(SRC_PATH)/scripts/qapi-commands.py $(qapi-py)
546
	$(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-commands.py \
547
		$(gen-out-type) -o tests -p "test-" $<, \
548
		"GEN","$@")
549
tests/test-qapi-event.c tests/test-qapi-event.h :\
550
$(SRC_PATH)/tests/qapi-schema/qapi-schema-test.json $(SRC_PATH)/scripts/qapi-event.py $(qapi-py)
551
	$(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-event.py \
552
		$(gen-out-type) -o tests -p "test-" $<, \
553
		"GEN","$@")
554 555 556 557
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-" $<, \
558
		"GEN","$@")
559

560 561 562
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)
563
tests/test-qobject-output-visitor$(EXESUF): tests/test-qobject-output-visitor.o $(test-qapi-obj-y)
E
Eric Blake 已提交
564
tests/test-clone-visitor$(EXESUF): tests/test-clone-visitor.o $(test-qapi-obj-y)
565 566
tests/test-qobject-input-visitor$(EXESUF): tests/test-qobject-input-visitor.o $(test-qapi-obj-y)
tests/test-qobject-input-strict$(EXESUF): tests/test-qobject-input-strict.o $(test-qapi-obj-y)
567 568 569
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)
570

571 572
tests/test-mul64$(EXESUF): tests/test-mul64.o $(test-util-obj-y)
tests/test-bitops$(EXESUF): tests/test-bitops.o $(test-util-obj-y)
573 574
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)
575
tests/test-crypto-secret$(EXESUF): tests/test-crypto-secret.o $(test-crypto-obj-y)
576
tests/test-crypto-xts$(EXESUF): tests/test-crypto-xts.o $(test-crypto-obj-y)
577 578 579 580 581 582

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)
583 584
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)
585 586

tests/test-crypto-tlssession.o-cflags := $(TASN1_CFLAGS)
587 588
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)
589
tests/test-io-task$(EXESUF): tests/test-io-task.o $(test-io-obj-y)
590 591
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 已提交
592 593
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 已提交
594 595 596
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)
597 598
tests/test-io-channel-command$(EXESUF): tests/test-io-channel-command.o \
        tests/io-channel-helpers.o $(test-io-obj-y)
599 600
tests/test-io-channel-buffer$(EXESUF): tests/test-io-channel-buffer.o \
        tests/io-channel-helpers.o $(test-io-obj-y)
601
tests/test-crypto-pbkdf$(EXESUF): tests/test-crypto-pbkdf.o $(test-crypto-obj-y)
602
tests/test-crypto-ivgen$(EXESUF): tests/test-crypto-ivgen.o $(test-crypto-obj-y)
603
tests/test-crypto-afsplit$(EXESUF): tests/test-crypto-afsplit.o $(test-crypto-obj-y)
604
tests/test-crypto-block$(EXESUF): tests/test-crypto-block.o $(test-crypto-obj-y)
605

606
libqos-obj-y = tests/libqos/pci.o tests/libqos/fw_cfg.o tests/libqos/malloc.o
J
John Snow 已提交
607
libqos-obj-y += tests/libqos/i2c.o tests/libqos/libqos.o
608 609
libqos-spapr-obj-y = $(libqos-obj-y) tests/libqos/malloc-spapr.o
libqos-spapr-obj-y += tests/libqos/libqos-spapr.o
610
libqos-spapr-obj-y += tests/libqos/rtas.o
L
Laurent Vivier 已提交
611
libqos-spapr-obj-y += tests/libqos/pci-spapr.o
612
libqos-pc-obj-y = $(libqos-obj-y) tests/libqos/pci-pc.o
J
John Snow 已提交
613
libqos-pc-obj-y += tests/libqos/malloc-pc.o tests/libqos/libqos-pc.o
J
John Snow 已提交
614
libqos-pc-obj-y += tests/libqos/ahci.o
A
Andreas Färber 已提交
615
libqos-omap-obj-y = $(libqos-obj-y) tests/libqos/i2c-omap.o
616
libqos-imx-obj-y = $(libqos-obj-y) tests/libqos/i2c-imx.o
617
libqos-usb-obj-y = $(libqos-spapr-obj-y) $(libqos-pc-obj-y) tests/libqos/usb.o
M
Marc Marí 已提交
618
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
619

620
tests/device-introspect-test$(EXESUF): tests/device-introspect-test.o
621 622
tests/rtc-test$(EXESUF): tests/rtc-test.o
tests/m48t59-test$(EXESUF): tests/m48t59-test.o
623
tests/endianness-test$(EXESUF): tests/endianness-test.o
624
tests/spapr-phb-test$(EXESUF): tests/spapr-phb-test.o $(libqos-obj-y)
625
tests/prom-env-test$(EXESUF): tests/prom-env-test.o $(libqos-obj-y)
626
tests/rtas-test$(EXESUF): tests/rtas-test.o $(libqos-spapr-obj-y)
627
tests/fdc-test$(EXESUF): tests/fdc-test.o
K
Kevin Wolf 已提交
628
tests/ide-test$(EXESUF): tests/ide-test.o $(libqos-pc-obj-y)
J
John Snow 已提交
629
tests/ahci-test$(EXESUF): tests/ahci-test.o $(libqos-pc-obj-y)
C
Corey Minyard 已提交
630 631
tests/ipmi-kcs-test$(EXESUF): tests/ipmi-kcs-test.o
tests/ipmi-bt-test$(EXESUF): tests/ipmi-bt-test.o
632
tests/hd-geo-test$(EXESUF): tests/hd-geo-test.o
633
tests/boot-order-test$(EXESUF): tests/boot-order-test.o $(libqos-obj-y)
634
tests/boot-serial-test$(EXESUF): tests/boot-serial-test.o $(libqos-obj-y)
635 636 637
tests/bios-tables-test$(EXESUF): tests/bios-tables-test.o \
	tests/boot-sector.o $(libqos-obj-y)
tests/pxe-test$(EXESUF): tests/pxe-test.o tests/boot-sector.o $(libqos-obj-y)
A
Andreas Färber 已提交
638
tests/tmp105-test$(EXESUF): tests/tmp105-test.o $(libqos-omap-obj-y)
639
tests/ds1338-test$(EXESUF): tests/ds1338-test.o $(libqos-imx-obj-y)
C
Cédric Le Goater 已提交
640
tests/m25p80-test$(EXESUF): tests/m25p80-test.o
641
tests/i440fx-test$(EXESUF): tests/i440fx-test.o $(libqos-pc-obj-y)
G
Gerd Hoffmann 已提交
642
tests/q35-test$(EXESUF): tests/q35-test.o $(libqos-pc-obj-y)
A
Anthony Liguori 已提交
643
tests/fw_cfg-test$(EXESUF): tests/fw_cfg-test.o $(libqos-pc-obj-y)
A
Andreas Färber 已提交
644
tests/e1000-test$(EXESUF): tests/e1000-test.o
645
tests/e1000e-test$(EXESUF): tests/e1000e-test.o $(libqos-pc-obj-y)
646
tests/rtl8139-test$(EXESUF): tests/rtl8139-test.o $(libqos-pc-obj-y)
A
Andreas Färber 已提交
647
tests/pcnet-test$(EXESUF): tests/pcnet-test.o
A
Andreas Färber 已提交
648
tests/eepro100-test$(EXESUF): tests/eepro100-test.o
A
Andreas Färber 已提交
649
tests/vmxnet3-test$(EXESUF): tests/vmxnet3-test.o
A
Andreas Färber 已提交
650
tests/ne2000-test$(EXESUF): tests/ne2000-test.o
P
Paolo Bonzini 已提交
651
tests/wdt_ib700-test$(EXESUF): tests/wdt_ib700-test.o
652
tests/tco-test$(EXESUF): tests/tco-test.o $(libqos-pc-obj-y)
653
tests/virtio-balloon-test$(EXESUF): tests/virtio-balloon-test.o
654
tests/virtio-blk-test$(EXESUF): tests/virtio-blk-test.o $(libqos-virtio-obj-y)
655
tests/virtio-net-test$(EXESUF): tests/virtio-net-test.o $(libqos-pc-obj-y) $(libqos-virtio-obj-y)
656
tests/virtio-rng-test$(EXESUF): tests/virtio-rng-test.o $(libqos-pc-obj-y)
657
tests/virtio-scsi-test$(EXESUF): tests/virtio-scsi-test.o $(libqos-virtio-obj-y)
658
tests/virtio-9p-test$(EXESUF): tests/virtio-9p-test.o $(libqos-virtio-obj-y)
A
Andreas Färber 已提交
659
tests/virtio-serial-test$(EXESUF): tests/virtio-serial-test.o
660
tests/virtio-console-test$(EXESUF): tests/virtio-console-test.o
A
Andreas Färber 已提交
661
tests/tpci200-test$(EXESUF): tests/tpci200-test.o
G
Gerd Hoffmann 已提交
662
tests/display-vga-test$(EXESUF): tests/display-vga-test.o
A
Andreas Färber 已提交
663
tests/ipoctal232-test$(EXESUF): tests/ipoctal232-test.o
A
Andreas Färber 已提交
664
tests/qom-test$(EXESUF): tests/qom-test.o
665
tests/drive_del-test$(EXESUF): tests/drive_del-test.o $(libqos-pc-obj-y)
666
tests/qdev-monitor-test$(EXESUF): tests/qdev-monitor-test.o $(libqos-pc-obj-y)
A
Andreas Färber 已提交
667
tests/nvme-test$(EXESUF): tests/nvme-test.o
A
Andreas Färber 已提交
668
tests/pvpanic-test$(EXESUF): tests/pvpanic-test.o
A
Andreas Färber 已提交
669
tests/i82801b11-test$(EXESUF): tests/i82801b11-test.o
A
Andreas Färber 已提交
670
tests/ac97-test$(EXESUF): tests/ac97-test.o
A
Andreas Färber 已提交
671
tests/es1370-test$(EXESUF): tests/es1370-test.o
A
Andreas Färber 已提交
672
tests/intel-hda-test$(EXESUF): tests/intel-hda-test.o
A
Andreas Färber 已提交
673
tests/ioh3420-test$(EXESUF): tests/ioh3420-test.o
674
tests/usb-hcd-ohci-test$(EXESUF): tests/usb-hcd-ohci-test.o $(libqos-usb-obj-y)
675
tests/usb-hcd-uhci-test$(EXESUF): tests/usb-hcd-uhci-test.o $(libqos-usb-obj-y)
676
tests/usb-hcd-ehci-test$(EXESUF): tests/usb-hcd-ehci-test.o $(libqos-usb-obj-y)
677
tests/usb-hcd-xhci-test$(EXESUF): tests/usb-hcd-xhci-test.o $(libqos-usb-obj-y)
A
Andreas Färber 已提交
678
tests/pc-cpu-test$(EXESUF): tests/pc-cpu-test.o
D
Dr. David Alan Gilbert 已提交
679
tests/postcopy-test$(EXESUF): tests/postcopy-test.o
680
tests/vhost-user-test$(EXESUF): tests/vhost-user-test.o qemu-char.o qemu-timer.o $(qtest-obj-y) $(test-io-obj-y) $(libqos-virtio-obj-y) $(libqos-pc-obj-y)
681
tests/qemu-iotests/socket_scm_helper$(EXESUF): tests/qemu-iotests/socket_scm_helper.o
682 683
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)
684
tests/test-netfilter$(EXESUF): tests/test-netfilter.o $(qtest-obj-y)
685
tests/test-filter-mirror$(EXESUF): tests/test-filter-mirror.o $(qtest-obj-y)
686
tests/test-filter-redirector$(EXESUF): tests/test-filter-redirector.o $(qtest-obj-y)
687
tests/test-x86-cpuid-compat$(EXESUF): tests/test-x86-cpuid-compat.o $(qtest-obj-y)
M
Marc-André Lureau 已提交
688
tests/ivshmem-test$(EXESUF): tests/ivshmem-test.o contrib/ivshmem-server/ivshmem-server.o $(libqos-pc-obj-y)
689
tests/vhost-user-bridge$(EXESUF): tests/vhost-user-bridge.o
F
Fam Zheng 已提交
690
tests/test-uuid$(EXESUF): tests/test-uuid.o $(test-util-obj-y)
691
tests/test-arm-mptimer$(EXESUF): tests/test-arm-mptimer.o
B
Blue Swirl 已提交
692

693
tests/migration/stress$(EXESUF): tests/migration/stress.o
694
	$(call quiet-command, $(LINKPROG) -static -O3 $(PTHREAD_LIB) -o $@ $< ,"LINK","$(TARGET_DIR)$@")
695 696 697 698 699 700 701 702 703 704

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 已提交
705 706 707
ifeq ($(CONFIG_POSIX),y)
LIBS += -lutil
endif
N
Nikolay Nikolaev 已提交
708

709 710 711
# QTest rules

TARGETS=$(patsubst %-softmmu,%, $(filter %-softmmu,$(TARGET_DIRS)))
712
ifeq ($(CONFIG_POSIX),y)
M
Markus Armbruster 已提交
713
QTEST_TARGETS = $(TARGETS)
714
check-qtest-y=$(foreach TARGET,$(TARGETS), $(check-qtest-$(TARGET)-y))
M
Markus Armbruster 已提交
715 716 717
check-qtest-y += $(check-qtest-generic-y)
else
QTEST_TARGETS =
718
endif
719

720
qtest-obj-y = tests/libqtest.o $(test-util-obj-y)
721 722
$(check-qtest-y): $(qtest-obj-y)

723 724
tests/test-qga: tests/test-qga.o $(qtest-obj-y)

P
Paolo Bonzini 已提交
725 726 727 728 729
.PHONY: check-help
check-help:
	@echo "Regression testing targets:"
	@echo
	@echo " make check                Run all tests"
730 731
	@echo " make check-qtest-TARGET   Run qtest tests for given target"
	@echo " make check-qtest          Run qtest tests"
P
Paolo Bonzini 已提交
732
	@echo " make check-unit           Run qobject tests"
733
	@echo " make check-qapi-schema    Run QAPI schema tests"
P
Paolo Bonzini 已提交
734 735
	@echo " make check-block          Run block tests"
	@echo " make check-report.html    Generates an HTML test report"
W
Wenchao Xia 已提交
736
	@echo " make check-clean          Clean the tests"
P
Paolo Bonzini 已提交
737 738 739 740 741 742 743
	@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."
744

P
Paolo Bonzini 已提交
745 746
SPEED = quick
GTESTER_OPTIONS = -k $(if $(V),--verbose,-q)
B
Blue Swirl 已提交
747
GCOV_OPTIONS = -n $(if $(V),-f,)
748

P
Paolo Bonzini 已提交
749
# gtester tests, possibly with verbose output
750

751 752
.PHONY: $(patsubst %, check-qtest-%, $(QTEST_TARGETS))
$(patsubst %, check-qtest-%, $(QTEST_TARGETS)): check-qtest-%: $(check-qtest-y)
B
Blue Swirl 已提交
753
	$(if $(CONFIG_GCOV),@rm -f *.gcda */*.gcda */*/*.gcda */*/*/*.gcda,)
754
	$(call quiet-command,QTEST_QEMU_BINARY=$*-softmmu/qemu-system-$* \
755
		QTEST_QEMU_IMG=qemu-img$(EXESUF) \
756
		MALLOC_PERTURB_=$${MALLOC_PERTURB_:-$$((RANDOM % 255 + 1))} \
757
		gtester $(GTESTER_OPTIONS) -m=$(SPEED) $(check-qtest-$*-y) $(check-qtest-generic-y),"GTESTER","$@")
758
	$(if $(CONFIG_GCOV),@for f in $(gcov-files-$*-y) $(gcov-files-generic-y); do \
B
Blue Swirl 已提交
759 760 761
	  echo Gcov report for $$f:;\
	  $(GCOV) $(GCOV_OPTIONS) $$f -o `dirname $$f`; \
	done,)
762

P
Paolo Bonzini 已提交
763 764
.PHONY: $(patsubst %, check-%, $(check-unit-y))
$(patsubst %, check-%, $(check-unit-y)): check-%: %
B
Blue Swirl 已提交
765
	$(if $(CONFIG_GCOV),@rm -f *.gcda */*.gcda */*/*.gcda */*/*/*.gcda,)
766 767
	$(call quiet-command, \
		MALLOC_PERTURB_=$${MALLOC_PERTURB_:-$$((RANDOM % 255 + 1))} \
768
		gtester $(GTESTER_OPTIONS) -m=$(SPEED) $*,"GTESTER","$*")
769
	$(if $(CONFIG_GCOV),@for f in $(gcov-files-$(subst tests/,,$*)-y) $(gcov-files-generic-y); do \
B
Blue Swirl 已提交
770 771 772
	  echo Gcov report for $$f:;\
	  $(GCOV) $(GCOV_OPTIONS) $$f -o `dirname $$f`; \
	done,)
773

P
Paolo Bonzini 已提交
774
# gtester tests with XML output
K
Kevin Wolf 已提交
775

776 777
$(patsubst %, check-report-qtest-%.xml, $(QTEST_TARGETS)): check-report-qtest-%.xml: $(check-qtest-y)
	$(call quiet-command,QTEST_QEMU_BINARY=$*-softmmu/qemu-system-$* \
778
		QTEST_QEMU_IMG=qemu-img$(EXESUF) \
779
	  gtester -q $(GTESTER_OPTIONS) -o $@ -m=$(SPEED) $(check-qtest-$*-y) $(check-qtest-generic-y),"GTESTER","$@")
780

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

P
Paolo Bonzini 已提交
784
# Reports and overall runs
K
Kevin Wolf 已提交
785

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

P
Paolo Bonzini 已提交
789
check-report.html: check-report.xml
790
	$(call quiet-command,gtester-report $< > $@,"GEN","$@")
P
Paolo Bonzini 已提交
791 792 793 794


# Other tests

795 796
QEMU_IOTESTS_HELPERS-$(CONFIG_LINUX) = tests/qemu-iotests/socket_scm_helper$(EXESUF)

P
Paolo Bonzini 已提交
797
.PHONY: check-tests/qemu-iotests-quick.sh
798
check-tests/qemu-iotests-quick.sh: tests/qemu-iotests-quick.sh qemu-img$(EXESUF) qemu-io$(EXESUF) $(QEMU_IOTESTS_HELPERS-y)
P
Paolo Bonzini 已提交
799 800
	$<

801 802 803 804 805
.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
806 807
	$(call quiet-command, PYTHONPATH=$(SRC_PATH)/scripts \
		$(PYTHON) $(SRC_PATH)/tests/qapi-schema/test-qapi.py \
808
		$^ >$*.test.out 2>$*.test.err; \
809
		echo $$? >$*.test.exit, \
810
		"TEST","$*.out")
811
	@diff -q $(SRC_PATH)/$*.out $*.test.out
812 813
	@# 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 -
814
	@diff -q $(SRC_PATH)/$*.exit $*.test.exit
815

P
Paolo Bonzini 已提交
816 817
# Consolidated targets

W
Wenchao Xia 已提交
818
.PHONY: check-qapi-schema check-qtest check-unit check check-clean
819
check-qapi-schema: $(patsubst %,check-%, $(check-qapi-schema-y))
820
check-qtest: $(patsubst %,check-qtest-%, $(QTEST_TARGETS))
P
Paolo Bonzini 已提交
821 822
check-unit: $(patsubst %,check-%, $(check-unit-y))
check-block: $(patsubst %,check-%, $(check-block-y))
823
check: check-qapi-schema check-unit check-qtest
W
Wenchao Xia 已提交
824 825
check-clean:
	$(MAKE) -C tests/tcg clean
A
Andreas Färber 已提交
826
	rm -rf $(check-unit-y) tests/*.o $(QEMU_IOTESTS_HELPERS-y)
827
	rm -rf $(sort $(foreach target,$(SYSEMU_TARGET_LIST), $(check-qtest-$(target)-y)) $(check-qtest-generic-y))
W
Wenchao Xia 已提交
828 829

clean: check-clean
830

831 832 833 834
# Build the help program automatically

all: $(QEMU_IOTESTS_HELPERS-y)

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