Makefile.include 37.6 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 277 278 279 280
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
281

282
check-qtest-sh4-y = tests/endianness-test$(EXESUF)
283

284
check-qtest-sh4eb-y = tests/endianness-test$(EXESUF)
285 286 287 288 289

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

290 291
check-qtest-sparc64-y = tests/endianness-test$(EXESUF)
#check-qtest-sparc64-y += tests/m48t59-test$(EXESUF)
292 293 294 295
#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)

296
check-qtest-arm-y = tests/tmp105-test$(EXESUF)
T
Thomas Huth 已提交
297
check-qtest-arm-y += tests/ds1338-test$(EXESUF)
C
Cédric Le Goater 已提交
298
check-qtest-arm-y += tests/m25p80-test$(EXESUF)
299
gcov-files-arm-y += hw/misc/tmp105.c
M
Marc Marí 已提交
300 301
check-qtest-arm-y += tests/virtio-blk-test$(EXESUF)
gcov-files-arm-y += arm-softmmu/hw/block/virtio-blk.c
302

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

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

307 308
check-qtest-s390x-y = tests/boot-serial-test$(EXESUF)

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

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

442
GENERATED_HEADERS += tests/test-qapi-types.h tests/test-qapi-visit.h \
443 444
	tests/test-qmp-commands.h tests/test-qapi-event.h \
	tests/test-qmp-introspect.h
P
Paolo Bonzini 已提交
445 446

test-obj-y = tests/check-qint.o tests/check-qstring.o tests/check-qdict.o \
E
Eric Blake 已提交
447 448
	tests/check-qlist.o tests/check-qfloat.o tests/check-qnull.o \
	tests/check-qjson.o \
P
Paolo Bonzini 已提交
449 450
	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 已提交
451
	tests/test-clone-visitor.o \
P
Paolo Bonzini 已提交
452
	tests/test-qmp-input-visitor.o tests/test-qmp-input-strict.o \
453
	tests/test-qmp-commands.o tests/test-visitor-serialization.o \
454
	tests/test-x86-cpuid.o tests/test-mul64.o tests/test-int128.o \
P
Paolo Bonzini 已提交
455
	tests/test-opts-visitor.o tests/test-qmp-event.o \
E
Emilio G. Cota 已提交
456
	tests/rcutorture.o tests/test-rcu-list.o \
E
Emilio G. Cota 已提交
457
	tests/test-qdist.o \
458
	tests/test-qht.o tests/qht-bench.o tests/test-qht-par.o
P
Paolo Bonzini 已提交
459 460

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

463 464 465

# Deps that are common to various different sets of tests below
test-util-obj-y = libqemuutil.a libqemustub.a
466
test-qom-obj-y = $(qom-obj-y) $(test-util-obj-y)
467
test-qapi-obj-y = tests/test-qapi-visit.o tests/test-qapi-types.o \
468
	tests/test-qapi-event.o tests/test-qmp-introspect.o \
469
	$(test-qom-obj-y)
470
test-crypto-obj-y = $(crypto-obj-y) $(test-qom-obj-y)
471
test-io-obj-y = $(io-obj-y) $(test-crypto-obj-y)
472
test-block-obj-y = $(block-obj-y) $(test-io-obj-y)
473 474 475 476 477 478

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 已提交
479
tests/check-qnull$(EXESUF): tests/check-qnull.o $(test-util-obj-y)
480 481 482 483 484 485 486
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 已提交
487
tests/test-blockjob$(EXESUF): tests/test-blockjob.o $(test-block-obj-y) $(test-util-obj-y)
S
Stefan Hajnoczi 已提交
488
tests/test-blockjob-txn$(EXESUF): tests/test-blockjob-txn.o $(test-block-obj-y) $(test-util-obj-y)
489 490 491
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)
492
tests/test-x86-cpuid$(EXESUF): tests/test-x86-cpuid.o
493
tests/test-xbzrle$(EXESUF): tests/test-xbzrle.o migration/xbzrle.o page_cache.o $(test-util-obj-y)
494
tests/test-cutils$(EXESUF): tests/test-cutils.o util/cutils.o
495
tests/test-int128$(EXESUF): tests/test-int128.o
496 497
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 已提交
498
tests/test-qdist$(EXESUF): tests/test-qdist.o $(test-util-obj-y)
E
Emilio G. Cota 已提交
499
tests/test-qht$(EXESUF): tests/test-qht.o $(test-util-obj-y)
500
tests/test-qht-par$(EXESUF): tests/test-qht-par.o tests/qht-bench$(EXESUF) $(test-util-obj-y)
501
tests/qht-bench$(EXESUF): tests/qht-bench.o $(test-util-obj-y)
502
tests/test-bufferiszero$(EXESUF): tests/test-bufferiszero.o $(test-util-obj-y)
P
Paolo Bonzini 已提交
503

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

519 520
tests/test-logging$(EXESUF): tests/test-logging.o $(test-util-obj-y)

521 522 523
tests/test-replication$(EXESUF): tests/test-replication.o $(test-util-obj-y) \
	$(test-block-obj-y)

P
Paolo Bonzini 已提交
524
tests/test-qapi-types.c tests/test-qapi-types.h :\
525
$(SRC_PATH)/tests/qapi-schema/qapi-schema-test.json $(SRC_PATH)/scripts/qapi-types.py $(qapi-py)
526
	$(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-types.py \
527
		$(gen-out-type) -o tests -p "test-" $<, \
528
		"GEN","$@")
P
Paolo Bonzini 已提交
529
tests/test-qapi-visit.c tests/test-qapi-visit.h :\
530
$(SRC_PATH)/tests/qapi-schema/qapi-schema-test.json $(SRC_PATH)/scripts/qapi-visit.py $(qapi-py)
531
	$(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-visit.py \
532
		$(gen-out-type) -o tests -p "test-" $<, \
533
		"GEN","$@")
P
Paolo Bonzini 已提交
534
tests/test-qmp-commands.h tests/test-qmp-marshal.c :\
535
$(SRC_PATH)/tests/qapi-schema/qapi-schema-test.json $(SRC_PATH)/scripts/qapi-commands.py $(qapi-py)
536
	$(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-commands.py \
537
		$(gen-out-type) -o tests -p "test-" $<, \
538
		"GEN","$@")
539
tests/test-qapi-event.c tests/test-qapi-event.h :\
540
$(SRC_PATH)/tests/qapi-schema/qapi-schema-test.json $(SRC_PATH)/scripts/qapi-event.py $(qapi-py)
541
	$(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-event.py \
542
		$(gen-out-type) -o tests -p "test-" $<, \
543
		"GEN","$@")
544 545 546 547
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-" $<, \
548
		"GEN","$@")
549

550 551 552 553
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 已提交
554
tests/test-clone-visitor$(EXESUF): tests/test-clone-visitor.o $(test-qapi-obj-y)
555 556 557 558 559
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)
560

561 562
tests/test-mul64$(EXESUF): tests/test-mul64.o $(test-util-obj-y)
tests/test-bitops$(EXESUF): tests/test-bitops.o $(test-util-obj-y)
563 564
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)
565
tests/test-crypto-secret$(EXESUF): tests/test-crypto-secret.o $(test-crypto-obj-y)
566
tests/test-crypto-xts$(EXESUF): tests/test-crypto-xts.o $(test-crypto-obj-y)
567 568 569 570 571 572

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)
573 574
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)
575 576

tests/test-crypto-tlssession.o-cflags := $(TASN1_CFLAGS)
577 578
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)
579
tests/test-io-task$(EXESUF): tests/test-io-task.o $(test-io-obj-y)
580 581
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 已提交
582 583
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 已提交
584 585 586
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)
587 588
tests/test-io-channel-command$(EXESUF): tests/test-io-channel-command.o \
        tests/io-channel-helpers.o $(test-io-obj-y)
589 590
tests/test-io-channel-buffer$(EXESUF): tests/test-io-channel-buffer.o \
        tests/io-channel-helpers.o $(test-io-obj-y)
591
tests/test-crypto-pbkdf$(EXESUF): tests/test-crypto-pbkdf.o $(test-crypto-obj-y)
592
tests/test-crypto-ivgen$(EXESUF): tests/test-crypto-ivgen.o $(test-crypto-obj-y)
593
tests/test-crypto-afsplit$(EXESUF): tests/test-crypto-afsplit.o $(test-crypto-obj-y)
594
tests/test-crypto-block$(EXESUF): tests/test-crypto-block.o $(test-crypto-obj-y)
595

596
libqos-obj-y = tests/libqos/pci.o tests/libqos/fw_cfg.o tests/libqos/malloc.o
J
John Snow 已提交
597
libqos-obj-y += tests/libqos/i2c.o tests/libqos/libqos.o
598 599
libqos-spapr-obj-y = $(libqos-obj-y) tests/libqos/malloc-spapr.o
libqos-spapr-obj-y += tests/libqos/libqos-spapr.o
600
libqos-spapr-obj-y += tests/libqos/rtas.o
L
Laurent Vivier 已提交
601
libqos-spapr-obj-y += tests/libqos/pci-spapr.o
602
libqos-pc-obj-y = $(libqos-obj-y) tests/libqos/pci-pc.o
J
John Snow 已提交
603
libqos-pc-obj-y += tests/libqos/malloc-pc.o tests/libqos/libqos-pc.o
J
John Snow 已提交
604
libqos-pc-obj-y += tests/libqos/ahci.o
A
Andreas Färber 已提交
605
libqos-omap-obj-y = $(libqos-obj-y) tests/libqos/i2c-omap.o
606
libqos-imx-obj-y = $(libqos-obj-y) tests/libqos/i2c-imx.o
607
libqos-usb-obj-y = $(libqos-spapr-obj-y) $(libqos-pc-obj-y) tests/libqos/usb.o
M
Marc Marí 已提交
608
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
609

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

683
tests/migration/stress$(EXESUF): tests/migration/stress.o
684
	$(call quiet-command, $(LINKPROG) -static -O3 $(PTHREAD_LIB) -o $@ $< ,"LINK","$(TARGET_DIR)$@")
685 686 687 688 689 690 691 692 693 694

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 已提交
695 696 697
ifeq ($(CONFIG_POSIX),y)
LIBS += -lutil
endif
N
Nikolay Nikolaev 已提交
698

699 700 701
# QTest rules

TARGETS=$(patsubst %-softmmu,%, $(filter %-softmmu,$(TARGET_DIRS)))
702
ifeq ($(CONFIG_POSIX),y)
M
Markus Armbruster 已提交
703
QTEST_TARGETS = $(TARGETS)
704
check-qtest-y=$(foreach TARGET,$(TARGETS), $(check-qtest-$(TARGET)-y))
M
Markus Armbruster 已提交
705 706 707
check-qtest-y += $(check-qtest-generic-y)
else
QTEST_TARGETS =
708
endif
709

710
qtest-obj-y = tests/libqtest.o $(test-util-obj-y)
711 712
$(check-qtest-y): $(qtest-obj-y)

713 714
tests/test-qga: tests/test-qga.o $(qtest-obj-y)

P
Paolo Bonzini 已提交
715 716 717 718 719
.PHONY: check-help
check-help:
	@echo "Regression testing targets:"
	@echo
	@echo " make check                Run all tests"
720 721
	@echo " make check-qtest-TARGET   Run qtest tests for given target"
	@echo " make check-qtest          Run qtest tests"
P
Paolo Bonzini 已提交
722
	@echo " make check-unit           Run qobject tests"
723
	@echo " make check-qapi-schema    Run QAPI schema tests"
P
Paolo Bonzini 已提交
724 725
	@echo " make check-block          Run block tests"
	@echo " make check-report.html    Generates an HTML test report"
W
Wenchao Xia 已提交
726
	@echo " make check-clean          Clean the tests"
P
Paolo Bonzini 已提交
727 728 729 730 731 732 733
	@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."
734

P
Paolo Bonzini 已提交
735 736
SPEED = quick
GTESTER_OPTIONS = -k $(if $(V),--verbose,-q)
B
Blue Swirl 已提交
737
GCOV_OPTIONS = -n $(if $(V),-f,)
738

P
Paolo Bonzini 已提交
739
# gtester tests, possibly with verbose output
740

741 742
.PHONY: $(patsubst %, check-qtest-%, $(QTEST_TARGETS))
$(patsubst %, check-qtest-%, $(QTEST_TARGETS)): check-qtest-%: $(check-qtest-y)
B
Blue Swirl 已提交
743
	$(if $(CONFIG_GCOV),@rm -f *.gcda */*.gcda */*/*.gcda */*/*/*.gcda,)
744
	$(call quiet-command,QTEST_QEMU_BINARY=$*-softmmu/qemu-system-$* \
745
		QTEST_QEMU_IMG=qemu-img$(EXESUF) \
746
		MALLOC_PERTURB_=$${MALLOC_PERTURB_:-$$((RANDOM % 255 + 1))} \
747
		gtester $(GTESTER_OPTIONS) -m=$(SPEED) $(check-qtest-$*-y) $(check-qtest-generic-y),"GTESTER","$@")
748
	$(if $(CONFIG_GCOV),@for f in $(gcov-files-$*-y) $(gcov-files-generic-y); do \
B
Blue Swirl 已提交
749 750 751
	  echo Gcov report for $$f:;\
	  $(GCOV) $(GCOV_OPTIONS) $$f -o `dirname $$f`; \
	done,)
752

P
Paolo Bonzini 已提交
753 754
.PHONY: $(patsubst %, check-%, $(check-unit-y))
$(patsubst %, check-%, $(check-unit-y)): check-%: %
B
Blue Swirl 已提交
755
	$(if $(CONFIG_GCOV),@rm -f *.gcda */*.gcda */*/*.gcda */*/*/*.gcda,)
756 757
	$(call quiet-command, \
		MALLOC_PERTURB_=$${MALLOC_PERTURB_:-$$((RANDOM % 255 + 1))} \
758
		gtester $(GTESTER_OPTIONS) -m=$(SPEED) $*,"GTESTER","$*")
759
	$(if $(CONFIG_GCOV),@for f in $(gcov-files-$(subst tests/,,$*)-y) $(gcov-files-generic-y); do \
B
Blue Swirl 已提交
760 761 762
	  echo Gcov report for $$f:;\
	  $(GCOV) $(GCOV_OPTIONS) $$f -o `dirname $$f`; \
	done,)
763

P
Paolo Bonzini 已提交
764
# gtester tests with XML output
K
Kevin Wolf 已提交
765

766 767
$(patsubst %, check-report-qtest-%.xml, $(QTEST_TARGETS)): check-report-qtest-%.xml: $(check-qtest-y)
	$(call quiet-command,QTEST_QEMU_BINARY=$*-softmmu/qemu-system-$* \
768
		QTEST_QEMU_IMG=qemu-img$(EXESUF) \
769
	  gtester -q $(GTESTER_OPTIONS) -o $@ -m=$(SPEED) $(check-qtest-$*-y) $(check-qtest-generic-y),"GTESTER","$@")
770

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

P
Paolo Bonzini 已提交
774
# Reports and overall runs
K
Kevin Wolf 已提交
775

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

P
Paolo Bonzini 已提交
779
check-report.html: check-report.xml
780
	$(call quiet-command,gtester-report $< > $@,"GEN","$@")
P
Paolo Bonzini 已提交
781 782 783 784


# Other tests

785 786
QEMU_IOTESTS_HELPERS-$(CONFIG_LINUX) = tests/qemu-iotests/socket_scm_helper$(EXESUF)

P
Paolo Bonzini 已提交
787
.PHONY: check-tests/qemu-iotests-quick.sh
788
check-tests/qemu-iotests-quick.sh: tests/qemu-iotests-quick.sh qemu-img$(EXESUF) qemu-io$(EXESUF) $(QEMU_IOTESTS_HELPERS-y)
P
Paolo Bonzini 已提交
789 790
	$<

791 792 793 794 795
.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
796 797
	$(call quiet-command, PYTHONPATH=$(SRC_PATH)/scripts \
		$(PYTHON) $(SRC_PATH)/tests/qapi-schema/test-qapi.py \
798
		$^ >$*.test.out 2>$*.test.err; \
799
		echo $$? >$*.test.exit, \
800
		"TEST","$*.out")
801
	@diff -q $(SRC_PATH)/$*.out $*.test.out
802 803
	@# 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 -
804
	@diff -q $(SRC_PATH)/$*.exit $*.test.exit
805

P
Paolo Bonzini 已提交
806 807
# Consolidated targets

W
Wenchao Xia 已提交
808
.PHONY: check-qapi-schema check-qtest check-unit check check-clean
809
check-qapi-schema: $(patsubst %,check-%, $(check-qapi-schema-y))
810
check-qtest: $(patsubst %,check-qtest-%, $(QTEST_TARGETS))
P
Paolo Bonzini 已提交
811 812
check-unit: $(patsubst %,check-%, $(check-unit-y))
check-block: $(patsubst %,check-%, $(check-block-y))
813
check: check-qapi-schema check-unit check-qtest
W
Wenchao Xia 已提交
814 815
check-clean:
	$(MAKE) -C tests/tcg clean
A
Andreas Färber 已提交
816
	rm -rf $(check-unit-y) tests/*.o $(QEMU_IOTESTS_HELPERS-y)
817
	rm -rf $(sort $(foreach target,$(SYSEMU_TARGET_LIST), $(check-qtest-$(target)-y)) $(check-qtest-generic-y))
W
Wenchao Xia 已提交
818 819

clean: check-clean
820

821 822 823 824
# Build the help program automatically

all: $(QEMU_IOTESTS_HELPERS-y)

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