Makefile.include 38.5 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)
B
Benoît Canet 已提交
48
check-unit-y += tests/test-throttle$(EXESUF)
B
Blue Swirl 已提交
49 50
gcov-files-test-aio-$(CONFIG_WIN32) = aio-win32.c
gcov-files-test-aio-$(CONFIG_POSIX) = aio-posix.c
P
Paolo Bonzini 已提交
51
check-unit-y += tests/test-thread-pool$(EXESUF)
B
Blue Swirl 已提交
52
gcov-files-test-thread-pool-y = thread-pool.c
53 54
gcov-files-test-hbitmap-y = util/hbitmap.c
check-unit-y += tests/test-hbitmap$(EXESUF)
S
Stefan Hajnoczi 已提交
55
gcov-files-test-hbitmap-y = blockjob.c
A
Alberto Garcia 已提交
56
check-unit-y += tests/test-blockjob$(EXESUF)
S
Stefan Hajnoczi 已提交
57
check-unit-y += tests/test-blockjob-txn$(EXESUF)
58 59 60
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 =
61
ifeq ($(CONFIG_SOFTMMU),y)
O
Orit Wasserman 已提交
62
check-unit-y += tests/test-xbzrle$(EXESUF)
63 64 65
gcov-files-test-xbzrle-y = migration/xbzrle.c
check-unit-$(CONFIG_POSIX) += tests/test-vmstate$(EXESUF)
endif
66 67
check-unit-y += tests/test-cutils$(EXESUF)
gcov-files-test-cutils-y += util/cutils.c
68 69
check-unit-y += tests/test-mul64$(EXESUF)
gcov-files-test-mul64-y = util/host-utils.c
70 71 72
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 已提交
73 74
check-unit-y += tests/rcutorture$(EXESUF)
gcov-files-rcutorture-y = util/rcu.c
M
Mike Day 已提交
75 76
check-unit-y += tests/test-rcu-list$(EXESUF)
gcov-files-test-rcu-list-y = util/rcu.c
E
Emilio G. Cota 已提交
77 78
check-unit-y += tests/test-qdist$(EXESUF)
gcov-files-test-qdist-y = util/qdist.c
E
Emilio G. Cota 已提交
79 80
check-unit-y += tests/test-qht$(EXESUF)
gcov-files-test-qht-y = util/qht.c
81 82
check-unit-y += tests/test-qht-par$(EXESUF)
gcov-files-test-qht-par-y = util/qht.c
83
check-unit-y += tests/test-bitops$(EXESUF)
A
Alex Bennée 已提交
84
check-unit-y += tests/test-bitcnt$(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-hmac$(EXESUF)
96
check-unit-y += tests/test-crypto-cipher$(EXESUF)
97
check-unit-y += tests/test-crypto-secret$(EXESUF)
98
check-unit-$(CONFIG_GNUTLS) += tests/test-crypto-tlscredsx509$(EXESUF)
99
check-unit-$(CONFIG_GNUTLS) += tests/test-crypto-tlssession$(EXESUF)
100 101 102
ifneq (,$(findstring qemu-ga,$(TOOLS)))
check-unit-$(CONFIG_LINUX) += tests/test-qga$(EXESUF)
endif
103
check-unit-y += tests/test-timed-average$(EXESUF)
104
check-unit-y += tests/test-io-task$(EXESUF)
105
check-unit-y += tests/test-io-channel-socket$(EXESUF)
D
Daniel P. Berrange 已提交
106
check-unit-y += tests/test-io-channel-file$(EXESUF)
D
Daniel P. Berrange 已提交
107
check-unit-$(CONFIG_GNUTLS) += tests/test-io-channel-tls$(EXESUF)
108
check-unit-y += tests/test-io-channel-command$(EXESUF)
109
check-unit-y += tests/test-io-channel-buffer$(EXESUF)
110
check-unit-y += tests/test-base64$(EXESUF)
111
check-unit-$(if $(CONFIG_NETTLE_KDF),y,$(CONFIG_GCRYPT_KDF)) += tests/test-crypto-pbkdf$(EXESUF)
112
check-unit-y += tests/test-crypto-ivgen$(EXESUF)
113
check-unit-y += tests/test-crypto-afsplit$(EXESUF)
114
check-unit-y += tests/test-crypto-xts$(EXESUF)
115
check-unit-y += tests/test-crypto-block$(EXESUF)
116 117
gcov-files-test-logging-y = tests/test-logging.c
check-unit-y += tests/test-logging$(EXESUF)
118
check-unit-$(CONFIG_REPLICATION) += tests/test-replication$(EXESUF)
119 120
check-unit-y += tests/test-bufferiszero$(EXESUF)
gcov-files-check-bufferiszero-y = util/bufferiszero.c
F
Fam Zheng 已提交
121
check-unit-y += tests/test-uuid$(EXESUF)
P
Paolo Bonzini 已提交
122 123
check-unit-y += tests/ptimer-test$(EXESUF)
gcov-files-ptimer-test-y = hw/core/ptimer.c
P
Paolo Bonzini 已提交
124 125 126

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

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

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

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

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

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

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

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

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

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

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

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

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

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

289
check-qtest-sh4-y = tests/endianness-test$(EXESUF)
290

291
check-qtest-sh4eb-y = tests/endianness-test$(EXESUF)
292 293 294 295 296

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

297 298
check-qtest-sparc64-y = tests/endianness-test$(EXESUF)
#check-qtest-sparc64-y += tests/m48t59-test$(EXESUF)
299 300 301 302
#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)

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

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

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

316 317
check-qtest-s390x-y = tests/boot-serial-test$(EXESUF)

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

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

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

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

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

472 473 474

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

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

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

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

531 532
tests/test-logging$(EXESUF): tests/test-logging.o $(test-util-obj-y)

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

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

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

573 574
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 已提交
575
tests/test-bitcnt$(EXESUF): tests/test-bitcnt.o $(test-util-obj-y)
576
tests/test-crypto-hash$(EXESUF): tests/test-crypto-hash.o $(test-crypto-obj-y)
577
tests/test-crypto-hmac$(EXESUF): tests/test-crypto-hmac.o $(test-crypto-obj-y)
578
tests/test-crypto-cipher$(EXESUF): tests/test-crypto-cipher.o $(test-crypto-obj-y)
579
tests/test-crypto-secret$(EXESUF): tests/test-crypto-secret.o $(test-crypto-obj-y)
580
tests/test-crypto-xts$(EXESUF): tests/test-crypto-xts.o $(test-crypto-obj-y)
581 582 583 584 585 586

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)
587 588
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)
589 590

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

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

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

698
tests/migration/stress$(EXESUF): tests/migration/stress.o
699
	$(call quiet-command, $(LINKPROG) -static -O3 $(PTHREAD_LIB) -o $@ $< ,"LINK","$(TARGET_DIR)$@")
700 701 702 703 704 705 706 707 708 709

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 已提交
710 711 712
ifeq ($(CONFIG_POSIX),y)
LIBS += -lutil
endif
N
Nikolay Nikolaev 已提交
713

714 715 716
# QTest rules

TARGETS=$(patsubst %-softmmu,%, $(filter %-softmmu,$(TARGET_DIRS)))
717
ifeq ($(CONFIG_POSIX),y)
M
Markus Armbruster 已提交
718
QTEST_TARGETS = $(TARGETS)
719
check-qtest-y=$(foreach TARGET,$(TARGETS), $(check-qtest-$(TARGET)-y))
M
Markus Armbruster 已提交
720 721 722
check-qtest-y += $(check-qtest-generic-y)
else
QTEST_TARGETS =
723
endif
724

725
qtest-obj-y = tests/libqtest.o $(test-util-obj-y)
726 727
$(check-qtest-y): $(qtest-obj-y)

728 729
tests/test-qga: tests/test-qga.o $(qtest-obj-y)

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

P
Paolo Bonzini 已提交
750 751
SPEED = quick
GTESTER_OPTIONS = -k $(if $(V),--verbose,-q)
B
Blue Swirl 已提交
752
GCOV_OPTIONS = -n $(if $(V),-f,)
753

P
Paolo Bonzini 已提交
754
# gtester tests, possibly with verbose output
755

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

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

P
Paolo Bonzini 已提交
779
# gtester tests with XML output
K
Kevin Wolf 已提交
780

781 782
$(patsubst %, check-report-qtest-%.xml, $(QTEST_TARGETS)): check-report-qtest-%.xml: $(check-qtest-y)
	$(call quiet-command,QTEST_QEMU_BINARY=$*-softmmu/qemu-system-$* \
783
		QTEST_QEMU_IMG=qemu-img$(EXESUF) \
784
	  gtester -q $(GTESTER_OPTIONS) -o $@ -m=$(SPEED) $(check-qtest-$*-y) $(check-qtest-generic-y),"GTESTER","$@")
785

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

P
Paolo Bonzini 已提交
789
# Reports and overall runs
K
Kevin Wolf 已提交
790

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

P
Paolo Bonzini 已提交
794
check-report.html: check-report.xml
795
	$(call quiet-command,gtester-report $< > $@,"GEN","$@")
P
Paolo Bonzini 已提交
796 797 798 799


# Other tests

800 801
QEMU_IOTESTS_HELPERS-$(CONFIG_LINUX) = tests/qemu-iotests/socket_scm_helper$(EXESUF)

P
Paolo Bonzini 已提交
802
.PHONY: check-tests/qemu-iotests-quick.sh
803
check-tests/qemu-iotests-quick.sh: tests/qemu-iotests-quick.sh qemu-img$(EXESUF) qemu-io$(EXESUF) $(QEMU_IOTESTS_HELPERS-y)
P
Paolo Bonzini 已提交
804 805
	$<

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

P
Paolo Bonzini 已提交
821 822
# Consolidated targets

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

clean: check-clean
835

836 837 838 839
# Build the help program automatically

all: $(QEMU_IOTESTS_HELPERS-y)

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