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

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

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

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

128
gcov-files-ipack-y += hw/ipack/ipack.c
A
Andreas Färber 已提交
129 130 131
check-qtest-ipack-y += tests/ipoctal232-test$(EXESUF)
gcov-files-ipack-y += hw/char/ipoctal232.c

132 133 134
check-qtest-virtioserial-y += tests/virtio-console-test$(EXESUF)
gcov-files-virtioserial-y += hw/char/virtio-console.c

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

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

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

251 252
check-qtest-alpha-y = tests/boot-serial-test$(EXESUF)

253
check-qtest-mips-y = tests/endianness-test$(EXESUF)
254

255
check-qtest-mips64-y = tests/endianness-test$(EXESUF)
256

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

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

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)
272
check-qtest-ppc64-y += tests/boot-serial-test$(EXESUF)
273
check-qtest-ppc64-y += tests/rtas-test$(EXESUF)
274
check-qtest-ppc64-y += tests/pxe-test$(EXESUF)
275

276
check-qtest-sh4-y = tests/endianness-test$(EXESUF)
277

278
check-qtest-sh4eb-y = tests/endianness-test$(EXESUF)
279 280 281 282 283

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

284 285
check-qtest-sparc64-y = tests/endianness-test$(EXESUF)
#check-qtest-sparc64-y += tests/m48t59-test$(EXESUF)
286 287 288 289
#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)

290
check-qtest-arm-y = tests/tmp105-test$(EXESUF)
T
Thomas Huth 已提交
291
check-qtest-arm-y += tests/ds1338-test$(EXESUF)
292
gcov-files-arm-y += hw/misc/tmp105.c
M
Marc Marí 已提交
293 294
check-qtest-arm-y += tests/virtio-blk-test$(EXESUF)
gcov-files-arm-y += arm-softmmu/hw/block/virtio-blk.c
295

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

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

300 301
check-qtest-s390x-y = tests/boot-serial-test$(EXESUF)

M
Markus Armbruster 已提交
302
check-qtest-generic-y += tests/qom-test$(EXESUF)
D
Dmitry Osipenko 已提交
303
check-qtest-generic-y += tests/ptimer-test$(EXESUF)
304

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

435
GENERATED_HEADERS += tests/test-qapi-types.h tests/test-qapi-visit.h \
436 437
	tests/test-qmp-commands.h tests/test-qapi-event.h \
	tests/test-qmp-introspect.h
P
Paolo Bonzini 已提交
438 439

test-obj-y = tests/check-qint.o tests/check-qstring.o tests/check-qdict.o \
E
Eric Blake 已提交
440 441
	tests/check-qlist.o tests/check-qfloat.o tests/check-qnull.o \
	tests/check-qjson.o \
P
Paolo Bonzini 已提交
442 443
	tests/test-coroutine.o tests/test-string-output-visitor.o \
	tests/test-string-input-visitor.o tests/test-qmp-output-visitor.o \
E
Eric Blake 已提交
444
	tests/test-clone-visitor.o \
P
Paolo Bonzini 已提交
445
	tests/test-qmp-input-visitor.o tests/test-qmp-input-strict.o \
446
	tests/test-qmp-commands.o tests/test-visitor-serialization.o \
447
	tests/test-x86-cpuid.o tests/test-mul64.o tests/test-int128.o \
P
Paolo Bonzini 已提交
448
	tests/test-opts-visitor.o tests/test-qmp-event.o \
E
Emilio G. Cota 已提交
449
	tests/rcutorture.o tests/test-rcu-list.o \
E
Emilio G. Cota 已提交
450
	tests/test-qdist.o \
451
	tests/test-qht.o tests/qht-bench.o tests/test-qht-par.o
P
Paolo Bonzini 已提交
452 453

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

456 457 458

# Deps that are common to various different sets of tests below
test-util-obj-y = libqemuutil.a libqemustub.a
459
test-qom-obj-y = $(qom-obj-y) $(test-util-obj-y)
460
test-qapi-obj-y = tests/test-qapi-visit.o tests/test-qapi-types.o \
461
	tests/test-qapi-event.o tests/test-qmp-introspect.o \
462
	$(test-qom-obj-y)
463
test-crypto-obj-y = $(crypto-obj-y) $(test-qom-obj-y)
464
test-io-obj-y = $(io-obj-y) $(test-crypto-obj-y)
465
test-block-obj-y = $(block-obj-y) $(test-io-obj-y)
466 467 468 469 470 471

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 已提交
472
tests/check-qnull$(EXESUF): tests/check-qnull.o $(test-util-obj-y)
473 474 475 476 477 478 479
tests/check-qjson$(EXESUF): tests/check-qjson.o $(test-util-obj-y)
tests/check-qom-interface$(EXESUF): tests/check-qom-interface.o $(test-qom-obj-y)
tests/check-qom-proplist$(EXESUF): tests/check-qom-proplist.o $(test-qom-obj-y)
tests/test-coroutine$(EXESUF): tests/test-coroutine.o $(test-block-obj-y)
tests/test-aio$(EXESUF): tests/test-aio.o $(test-block-obj-y)
tests/test-rfifolock$(EXESUF): tests/test-rfifolock.o $(test-util-obj-y)
tests/test-throttle$(EXESUF): tests/test-throttle.o $(test-block-obj-y)
A
Alberto Garcia 已提交
480
tests/test-blockjob$(EXESUF): tests/test-blockjob.o $(test-block-obj-y) $(test-util-obj-y)
S
Stefan Hajnoczi 已提交
481
tests/test-blockjob-txn$(EXESUF): tests/test-blockjob-txn.o $(test-block-obj-y) $(test-util-obj-y)
482 483 484
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)
485
tests/test-x86-cpuid$(EXESUF): tests/test-x86-cpuid.o
486
tests/test-xbzrle$(EXESUF): tests/test-xbzrle.o migration/xbzrle.o page_cache.o $(test-util-obj-y)
487
tests/test-cutils$(EXESUF): tests/test-cutils.o util/cutils.o
488
tests/test-int128$(EXESUF): tests/test-int128.o
489 490
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 已提交
491
tests/test-qdist$(EXESUF): tests/test-qdist.o $(test-util-obj-y)
E
Emilio G. Cota 已提交
492
tests/test-qht$(EXESUF): tests/test-qht.o $(test-util-obj-y)
493
tests/test-qht-par$(EXESUF): tests/test-qht-par.o tests/qht-bench$(EXESUF) $(test-util-obj-y)
494
tests/qht-bench$(EXESUF): tests/qht-bench.o $(test-util-obj-y)
495
tests/test-bufferiszero$(EXESUF): tests/test-bufferiszero.o $(test-util-obj-y)
P
Paolo Bonzini 已提交
496

497
tests/test-qdev-global-props$(EXESUF): tests/test-qdev-global-props.o \
498
	hw/core/qdev.o hw/core/qdev-properties.o hw/core/hotplug.o\
499
	hw/core/bus.o \
500
	hw/core/irq.o \
501
	hw/core/fw-path-provider.o \
502
	$(test-qapi-obj-y)
503
tests/test-vmstate$(EXESUF): tests/test-vmstate.o \
504
	migration/vmstate.o migration/qemu-file.o \
505 506
        migration/qemu-file-channel.o migration/qjson.o \
	$(test-io-obj-y)
507
tests/test-timed-average$(EXESUF): tests/test-timed-average.o qemu-timer.o \
508
	$(test-util-obj-y)
509 510
tests/test-base64$(EXESUF): tests/test-base64.o \
	libqemuutil.a libqemustub.a
P
Paolo Bonzini 已提交
511

512 513
tests/test-logging$(EXESUF): tests/test-logging.o $(test-util-obj-y)

514 515 516
tests/test-replication$(EXESUF): tests/test-replication.o $(test-util-obj-y) \
	$(test-block-obj-y)

P
Paolo Bonzini 已提交
517
tests/test-qapi-types.c tests/test-qapi-types.h :\
518
$(SRC_PATH)/tests/qapi-schema/qapi-schema-test.json $(SRC_PATH)/scripts/qapi-types.py $(qapi-py)
519
	$(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-types.py \
520
		$(gen-out-type) -o tests -p "test-" $<, \
521
		"  GEN   $@")
P
Paolo Bonzini 已提交
522
tests/test-qapi-visit.c tests/test-qapi-visit.h :\
523
$(SRC_PATH)/tests/qapi-schema/qapi-schema-test.json $(SRC_PATH)/scripts/qapi-visit.py $(qapi-py)
524
	$(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-visit.py \
525
		$(gen-out-type) -o tests -p "test-" $<, \
526
		"  GEN   $@")
P
Paolo Bonzini 已提交
527
tests/test-qmp-commands.h tests/test-qmp-marshal.c :\
528
$(SRC_PATH)/tests/qapi-schema/qapi-schema-test.json $(SRC_PATH)/scripts/qapi-commands.py $(qapi-py)
529
	$(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-commands.py \
530
		$(gen-out-type) -o tests -p "test-" $<, \
531
		"  GEN   $@")
532
tests/test-qapi-event.c tests/test-qapi-event.h :\
533
$(SRC_PATH)/tests/qapi-schema/qapi-schema-test.json $(SRC_PATH)/scripts/qapi-event.py $(qapi-py)
534
	$(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-event.py \
535
		$(gen-out-type) -o tests -p "test-" $<, \
536
		"  GEN   $@")
537 538 539 540 541
tests/test-qmp-introspect.c tests/test-qmp-introspect.h :\
$(SRC_PATH)/tests/qapi-schema/qapi-schema-test.json $(SRC_PATH)/scripts/qapi-introspect.py $(qapi-py)
	$(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-introspect.py \
		$(gen-out-type) -o tests -p "test-" $<, \
		"  GEN   $@")
542

543 544 545 546
tests/test-string-output-visitor$(EXESUF): tests/test-string-output-visitor.o $(test-qapi-obj-y)
tests/test-string-input-visitor$(EXESUF): tests/test-string-input-visitor.o $(test-qapi-obj-y)
tests/test-qmp-event$(EXESUF): tests/test-qmp-event.o $(test-qapi-obj-y)
tests/test-qmp-output-visitor$(EXESUF): tests/test-qmp-output-visitor.o $(test-qapi-obj-y)
E
Eric Blake 已提交
547
tests/test-clone-visitor$(EXESUF): tests/test-clone-visitor.o $(test-qapi-obj-y)
548 549 550 551 552
tests/test-qmp-input-visitor$(EXESUF): tests/test-qmp-input-visitor.o $(test-qapi-obj-y)
tests/test-qmp-input-strict$(EXESUF): tests/test-qmp-input-strict.o $(test-qapi-obj-y)
tests/test-qmp-commands$(EXESUF): tests/test-qmp-commands.o tests/test-qmp-marshal.o $(test-qapi-obj-y)
tests/test-visitor-serialization$(EXESUF): tests/test-visitor-serialization.o $(test-qapi-obj-y)
tests/test-opts-visitor$(EXESUF): tests/test-opts-visitor.o $(test-qapi-obj-y)
553

554 555
tests/test-mul64$(EXESUF): tests/test-mul64.o $(test-util-obj-y)
tests/test-bitops$(EXESUF): tests/test-bitops.o $(test-util-obj-y)
556 557
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)
558
tests/test-crypto-secret$(EXESUF): tests/test-crypto-secret.o $(test-crypto-obj-y)
559
tests/test-crypto-xts$(EXESUF): tests/test-crypto-xts.o $(test-crypto-obj-y)
560 561 562 563 564 565

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)
566 567
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)
568 569

tests/test-crypto-tlssession.o-cflags := $(TASN1_CFLAGS)
570 571
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)
572
tests/test-io-task$(EXESUF): tests/test-io-task.o $(test-io-obj-y)
573 574
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 已提交
575 576
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 已提交
577 578 579
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)
580 581
tests/test-io-channel-command$(EXESUF): tests/test-io-channel-command.o \
        tests/io-channel-helpers.o $(test-io-obj-y)
582 583
tests/test-io-channel-buffer$(EXESUF): tests/test-io-channel-buffer.o \
        tests/io-channel-helpers.o $(test-io-obj-y)
584
tests/test-crypto-pbkdf$(EXESUF): tests/test-crypto-pbkdf.o $(test-crypto-obj-y)
585
tests/test-crypto-ivgen$(EXESUF): tests/test-crypto-ivgen.o $(test-crypto-obj-y)
586
tests/test-crypto-afsplit$(EXESUF): tests/test-crypto-afsplit.o $(test-crypto-obj-y)
587
tests/test-crypto-block$(EXESUF): tests/test-crypto-block.o $(test-crypto-obj-y)
588

589
libqos-obj-y = tests/libqos/pci.o tests/libqos/fw_cfg.o tests/libqos/malloc.o
J
John Snow 已提交
590
libqos-obj-y += tests/libqos/i2c.o tests/libqos/libqos.o
591 592
libqos-spapr-obj-y = $(libqos-obj-y) tests/libqos/malloc-spapr.o
libqos-spapr-obj-y += tests/libqos/libqos-spapr.o
593
libqos-spapr-obj-y += tests/libqos/rtas.o
594
libqos-pc-obj-y = $(libqos-obj-y) tests/libqos/pci-pc.o
J
John Snow 已提交
595
libqos-pc-obj-y += tests/libqos/malloc-pc.o tests/libqos/libqos-pc.o
J
John Snow 已提交
596
libqos-pc-obj-y += tests/libqos/ahci.o
A
Andreas Färber 已提交
597
libqos-omap-obj-y = $(libqos-obj-y) tests/libqos/i2c-omap.o
598
libqos-imx-obj-y = $(libqos-obj-y) tests/libqos/i2c-imx.o
599
libqos-usb-obj-y = $(libqos-pc-obj-y) tests/libqos/usb.o
M
Marc Marí 已提交
600
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
601

602
tests/device-introspect-test$(EXESUF): tests/device-introspect-test.o
603 604
tests/rtc-test$(EXESUF): tests/rtc-test.o
tests/m48t59-test$(EXESUF): tests/m48t59-test.o
605
tests/endianness-test$(EXESUF): tests/endianness-test.o
606
tests/spapr-phb-test$(EXESUF): tests/spapr-phb-test.o $(libqos-obj-y)
607
tests/prom-env-test$(EXESUF): tests/prom-env-test.o $(libqos-obj-y)
608
tests/rtas-test$(EXESUF): tests/rtas-test.o $(libqos-spapr-obj-y)
609
tests/fdc-test$(EXESUF): tests/fdc-test.o
K
Kevin Wolf 已提交
610
tests/ide-test$(EXESUF): tests/ide-test.o $(libqos-pc-obj-y)
J
John Snow 已提交
611
tests/ahci-test$(EXESUF): tests/ahci-test.o $(libqos-pc-obj-y)
C
Corey Minyard 已提交
612 613
tests/ipmi-kcs-test$(EXESUF): tests/ipmi-kcs-test.o
tests/ipmi-bt-test$(EXESUF): tests/ipmi-bt-test.o
614
tests/hd-geo-test$(EXESUF): tests/hd-geo-test.o
615
tests/boot-order-test$(EXESUF): tests/boot-order-test.o $(libqos-obj-y)
616
tests/boot-serial-test$(EXESUF): tests/boot-serial-test.o $(libqos-obj-y)
617 618 619
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 已提交
620
tests/tmp105-test$(EXESUF): tests/tmp105-test.o $(libqos-omap-obj-y)
621
tests/ds1338-test$(EXESUF): tests/ds1338-test.o $(libqos-imx-obj-y)
622
tests/i440fx-test$(EXESUF): tests/i440fx-test.o $(libqos-pc-obj-y)
G
Gerd Hoffmann 已提交
623
tests/q35-test$(EXESUF): tests/q35-test.o $(libqos-pc-obj-y)
A
Anthony Liguori 已提交
624
tests/fw_cfg-test$(EXESUF): tests/fw_cfg-test.o $(libqos-pc-obj-y)
A
Andreas Färber 已提交
625
tests/e1000-test$(EXESUF): tests/e1000-test.o
626
tests/e1000e-test$(EXESUF): tests/e1000e-test.o $(libqos-pc-obj-y)
627
tests/rtl8139-test$(EXESUF): tests/rtl8139-test.o $(libqos-pc-obj-y)
A
Andreas Färber 已提交
628
tests/pcnet-test$(EXESUF): tests/pcnet-test.o
A
Andreas Färber 已提交
629
tests/eepro100-test$(EXESUF): tests/eepro100-test.o
A
Andreas Färber 已提交
630
tests/vmxnet3-test$(EXESUF): tests/vmxnet3-test.o
A
Andreas Färber 已提交
631
tests/ne2000-test$(EXESUF): tests/ne2000-test.o
P
Paolo Bonzini 已提交
632
tests/wdt_ib700-test$(EXESUF): tests/wdt_ib700-test.o
633
tests/tco-test$(EXESUF): tests/tco-test.o $(libqos-pc-obj-y)
634
tests/virtio-balloon-test$(EXESUF): tests/virtio-balloon-test.o
635
tests/virtio-blk-test$(EXESUF): tests/virtio-blk-test.o $(libqos-virtio-obj-y)
636
tests/virtio-net-test$(EXESUF): tests/virtio-net-test.o $(libqos-pc-obj-y) $(libqos-virtio-obj-y)
637
tests/virtio-rng-test$(EXESUF): tests/virtio-rng-test.o $(libqos-pc-obj-y)
638
tests/virtio-scsi-test$(EXESUF): tests/virtio-scsi-test.o $(libqos-virtio-obj-y)
639
tests/virtio-9p-test$(EXESUF): tests/virtio-9p-test.o $(libqos-virtio-obj-y)
A
Andreas Färber 已提交
640
tests/virtio-serial-test$(EXESUF): tests/virtio-serial-test.o
641
tests/virtio-console-test$(EXESUF): tests/virtio-console-test.o
A
Andreas Färber 已提交
642
tests/tpci200-test$(EXESUF): tests/tpci200-test.o
G
Gerd Hoffmann 已提交
643
tests/display-vga-test$(EXESUF): tests/display-vga-test.o
A
Andreas Färber 已提交
644
tests/ipoctal232-test$(EXESUF): tests/ipoctal232-test.o
A
Andreas Färber 已提交
645
tests/qom-test$(EXESUF): tests/qom-test.o
646
tests/drive_del-test$(EXESUF): tests/drive_del-test.o $(libqos-pc-obj-y)
647
tests/qdev-monitor-test$(EXESUF): tests/qdev-monitor-test.o $(libqos-pc-obj-y)
A
Andreas Färber 已提交
648
tests/nvme-test$(EXESUF): tests/nvme-test.o
A
Andreas Färber 已提交
649
tests/pvpanic-test$(EXESUF): tests/pvpanic-test.o
A
Andreas Färber 已提交
650
tests/i82801b11-test$(EXESUF): tests/i82801b11-test.o
A
Andreas Färber 已提交
651
tests/ac97-test$(EXESUF): tests/ac97-test.o
A
Andreas Färber 已提交
652
tests/es1370-test$(EXESUF): tests/es1370-test.o
A
Andreas Färber 已提交
653
tests/intel-hda-test$(EXESUF): tests/intel-hda-test.o
A
Andreas Färber 已提交
654
tests/ioh3420-test$(EXESUF): tests/ioh3420-test.o
655
tests/usb-hcd-ohci-test$(EXESUF): tests/usb-hcd-ohci-test.o $(libqos-usb-obj-y)
656
tests/usb-hcd-uhci-test$(EXESUF): tests/usb-hcd-uhci-test.o $(libqos-usb-obj-y)
657
tests/usb-hcd-ehci-test$(EXESUF): tests/usb-hcd-ehci-test.o $(libqos-usb-obj-y)
658
tests/usb-hcd-xhci-test$(EXESUF): tests/usb-hcd-xhci-test.o $(libqos-usb-obj-y)
A
Andreas Färber 已提交
659
tests/pc-cpu-test$(EXESUF): tests/pc-cpu-test.o
D
Dr. David Alan Gilbert 已提交
660
tests/postcopy-test$(EXESUF): tests/postcopy-test.o
661
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)
662
tests/qemu-iotests/socket_scm_helper$(EXESUF): tests/qemu-iotests/socket_scm_helper.o
663 664
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)
665
tests/test-netfilter$(EXESUF): tests/test-netfilter.o $(qtest-obj-y)
666
tests/test-filter-mirror$(EXESUF): tests/test-filter-mirror.o $(qtest-obj-y)
667
tests/test-filter-redirector$(EXESUF): tests/test-filter-redirector.o $(qtest-obj-y)
668
tests/test-x86-cpuid-compat$(EXESUF): tests/test-x86-cpuid-compat.o $(qtest-obj-y)
M
Marc-André Lureau 已提交
669
tests/ivshmem-test$(EXESUF): tests/ivshmem-test.o contrib/ivshmem-server/ivshmem-server.o $(libqos-pc-obj-y)
670
tests/vhost-user-bridge$(EXESUF): tests/vhost-user-bridge.o
D
Dmitry Osipenko 已提交
671
tests/ptimer-test$(EXESUF): tests/ptimer-test.o tests/ptimer-test-stubs.o hw/core/ptimer.o
F
Fam Zheng 已提交
672
tests/test-uuid$(EXESUF): tests/test-uuid.o $(test-util-obj-y)
B
Blue Swirl 已提交
673

674 675 676 677 678 679 680 681 682 683 684 685
tests/migration/stress$(EXESUF): tests/migration/stress.o
	$(call quiet-command, $(LINKPROG) -static -O3 $(PTHREAD_LIB) -o $@ $< ,"  LINK  $(TARGET_DIR)$@")

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 已提交
686 687 688
ifeq ($(CONFIG_POSIX),y)
LIBS += -lutil
endif
N
Nikolay Nikolaev 已提交
689

690 691 692
# QTest rules

TARGETS=$(patsubst %-softmmu,%, $(filter %-softmmu,$(TARGET_DIRS)))
693
ifeq ($(CONFIG_POSIX),y)
M
Markus Armbruster 已提交
694
QTEST_TARGETS = $(TARGETS)
695
check-qtest-y=$(foreach TARGET,$(TARGETS), $(check-qtest-$(TARGET)-y))
M
Markus Armbruster 已提交
696 697 698
check-qtest-y += $(check-qtest-generic-y)
else
QTEST_TARGETS =
699
endif
700

701
qtest-obj-y = tests/libqtest.o $(test-util-obj-y)
702 703
$(check-qtest-y): $(qtest-obj-y)

704 705
tests/test-qga: tests/test-qga.o $(qtest-obj-y)

P
Paolo Bonzini 已提交
706 707 708 709 710
.PHONY: check-help
check-help:
	@echo "Regression testing targets:"
	@echo
	@echo " make check                Run all tests"
711 712
	@echo " make check-qtest-TARGET   Run qtest tests for given target"
	@echo " make check-qtest          Run qtest tests"
P
Paolo Bonzini 已提交
713
	@echo " make check-unit           Run qobject tests"
714
	@echo " make check-qapi-schema    Run QAPI schema tests"
P
Paolo Bonzini 已提交
715 716
	@echo " make check-block          Run block tests"
	@echo " make check-report.html    Generates an HTML test report"
W
Wenchao Xia 已提交
717
	@echo " make check-clean          Clean the tests"
P
Paolo Bonzini 已提交
718 719 720 721 722 723 724
	@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."
725

P
Paolo Bonzini 已提交
726 727
SPEED = quick
GTESTER_OPTIONS = -k $(if $(V),--verbose,-q)
B
Blue Swirl 已提交
728
GCOV_OPTIONS = -n $(if $(V),-f,)
729

P
Paolo Bonzini 已提交
730
# gtester tests, possibly with verbose output
731

732 733
.PHONY: $(patsubst %, check-qtest-%, $(QTEST_TARGETS))
$(patsubst %, check-qtest-%, $(QTEST_TARGETS)): check-qtest-%: $(check-qtest-y)
B
Blue Swirl 已提交
734
	$(if $(CONFIG_GCOV),@rm -f *.gcda */*.gcda */*/*.gcda */*/*/*.gcda,)
735
	$(call quiet-command,QTEST_QEMU_BINARY=$*-softmmu/qemu-system-$* \
736
		QTEST_QEMU_IMG=qemu-img$(EXESUF) \
737
		MALLOC_PERTURB_=$${MALLOC_PERTURB_:-$$((RANDOM % 255 + 1))} \
M
Markus Armbruster 已提交
738
		gtester $(GTESTER_OPTIONS) -m=$(SPEED) $(check-qtest-$*-y) $(check-qtest-generic-y),"GTESTER $@")
739
	$(if $(CONFIG_GCOV),@for f in $(gcov-files-$*-y) $(gcov-files-generic-y); do \
B
Blue Swirl 已提交
740 741 742
	  echo Gcov report for $$f:;\
	  $(GCOV) $(GCOV_OPTIONS) $$f -o `dirname $$f`; \
	done,)
743

P
Paolo Bonzini 已提交
744 745
.PHONY: $(patsubst %, check-%, $(check-unit-y))
$(patsubst %, check-%, $(check-unit-y)): check-%: %
B
Blue Swirl 已提交
746
	$(if $(CONFIG_GCOV),@rm -f *.gcda */*.gcda */*/*.gcda */*/*/*.gcda,)
747 748 749
	$(call quiet-command, \
		MALLOC_PERTURB_=$${MALLOC_PERTURB_:-$$((RANDOM % 255 + 1))} \
		gtester $(GTESTER_OPTIONS) -m=$(SPEED) $*,"GTESTER $*")
750
	$(if $(CONFIG_GCOV),@for f in $(gcov-files-$(subst tests/,,$*)-y) $(gcov-files-generic-y); do \
B
Blue Swirl 已提交
751 752 753
	  echo Gcov report for $$f:;\
	  $(GCOV) $(GCOV_OPTIONS) $$f -o `dirname $$f`; \
	done,)
754

P
Paolo Bonzini 已提交
755
# gtester tests with XML output
K
Kevin Wolf 已提交
756

757 758
$(patsubst %, check-report-qtest-%.xml, $(QTEST_TARGETS)): check-report-qtest-%.xml: $(check-qtest-y)
	$(call quiet-command,QTEST_QEMU_BINARY=$*-softmmu/qemu-system-$* \
759
		QTEST_QEMU_IMG=qemu-img$(EXESUF) \
760
	  gtester -q $(GTESTER_OPTIONS) -o $@ -m=$(SPEED) $(check-qtest-$*-y) $(check-qtest-generic-y),"GTESTER $@")
761

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

P
Paolo Bonzini 已提交
765
# Reports and overall runs
K
Kevin Wolf 已提交
766

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

P
Paolo Bonzini 已提交
770
check-report.html: check-report.xml
S
Stefan Weil 已提交
771
	$(call quiet-command,gtester-report $< > $@, "  GEN   $@")
P
Paolo Bonzini 已提交
772 773 774 775


# Other tests

776 777
QEMU_IOTESTS_HELPERS-$(CONFIG_LINUX) = tests/qemu-iotests/socket_scm_helper$(EXESUF)

P
Paolo Bonzini 已提交
778
.PHONY: check-tests/qemu-iotests-quick.sh
779
check-tests/qemu-iotests-quick.sh: tests/qemu-iotests-quick.sh qemu-img$(EXESUF) qemu-io$(EXESUF) $(QEMU_IOTESTS_HELPERS-y)
P
Paolo Bonzini 已提交
780 781
	$<

782 783 784 785 786
.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
787 788
	$(call quiet-command, PYTHONPATH=$(SRC_PATH)/scripts \
		$(PYTHON) $(SRC_PATH)/tests/qapi-schema/test-qapi.py \
789
		$^ >$*.test.out 2>$*.test.err; \
790 791
		echo $$? >$*.test.exit, \
		"  TEST  $*.out")
792
	@diff -q $(SRC_PATH)/$*.out $*.test.out
793 794
	@# 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 -
795
	@diff -q $(SRC_PATH)/$*.exit $*.test.exit
796

P
Paolo Bonzini 已提交
797 798
# Consolidated targets

W
Wenchao Xia 已提交
799
.PHONY: check-qapi-schema check-qtest check-unit check check-clean
800
check-qapi-schema: $(patsubst %,check-%, $(check-qapi-schema-y))
801
check-qtest: $(patsubst %,check-qtest-%, $(QTEST_TARGETS))
P
Paolo Bonzini 已提交
802 803
check-unit: $(patsubst %,check-%, $(check-unit-y))
check-block: $(patsubst %,check-%, $(check-block-y))
804
check: check-qapi-schema check-unit check-qtest
W
Wenchao Xia 已提交
805 806
check-clean:
	$(MAKE) -C tests/tcg clean
A
Andreas Färber 已提交
807
	rm -rf $(check-unit-y) tests/*.o $(QEMU_IOTESTS_HELPERS-y)
808
	rm -rf $(sort $(foreach target,$(SYSEMU_TARGET_LIST), $(check-qtest-$(target)-y)) $(check-qtest-generic-y))
W
Wenchao Xia 已提交
809 810

clean: check-clean
811

812 813 814 815
# Build the help program automatically

all: $(QEMU_IOTESTS_HELPERS-y)

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