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

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

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

P
Paolo Bonzini 已提交
9
check-unit-y = tests/check-qdict$(EXESUF)
10
gcov-files-check-qdict-y = qobject/qdict.c
11
check-unit-y += tests/test-char$(EXESUF)
M
Marc-André Lureau 已提交
12
gcov-files-check-qdict-y = chardev/char.c
P
Paolo Bonzini 已提交
13
check-unit-y += tests/check-qfloat$(EXESUF)
14
gcov-files-check-qfloat-y = qobject/qfloat.c
P
Paolo Bonzini 已提交
15
check-unit-y += tests/check-qint$(EXESUF)
16
gcov-files-check-qint-y = qobject/qint.c
P
Paolo Bonzini 已提交
17
check-unit-y += tests/check-qstring$(EXESUF)
18
gcov-files-check-qstring-y = qobject/qstring.c
P
Paolo Bonzini 已提交
19
check-unit-y += tests/check-qlist$(EXESUF)
20
gcov-files-check-qlist-y = qobject/qlist.c
E
Eric Blake 已提交
21 22
check-unit-y += tests/check-qnull$(EXESUF)
gcov-files-check-qnull-y = qobject/qnull.c
P
Paolo Bonzini 已提交
23
check-unit-y += tests/check-qjson$(EXESUF)
24
gcov-files-check-qjson-y = qobject/qjson.c
25 26
check-unit-y += tests/test-qobject-output-visitor$(EXESUF)
gcov-files-test-qobject-output-visitor-y = qapi/qobject-output-visitor.c
E
Eric Blake 已提交
27 28
check-unit-y += tests/test-clone-visitor$(EXESUF)
gcov-files-test-clone-visitor-y = qapi/qapi-clone-visitor.c
29 30 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-shift128$(EXESUF)
gcov-files-test-shift128-y = util/host-utils.c
70 71
check-unit-y += tests/test-mul64$(EXESUF)
gcov-files-test-mul64-y = util/host-utils.c
72 73 74
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 已提交
75 76
check-unit-y += tests/rcutorture$(EXESUF)
gcov-files-rcutorture-y = util/rcu.c
M
Mike Day 已提交
77 78
check-unit-y += tests/test-rcu-list$(EXESUF)
gcov-files-test-rcu-list-y = util/rcu.c
E
Emilio G. Cota 已提交
79 80
check-unit-y += tests/test-qdist$(EXESUF)
gcov-files-test-qdist-y = util/qdist.c
E
Emilio G. Cota 已提交
81 82
check-unit-y += tests/test-qht$(EXESUF)
gcov-files-test-qht-y = util/qht.c
83 84
check-unit-y += tests/test-qht-par$(EXESUF)
gcov-files-test-qht-par-y = util/qht.c
85
check-unit-y += tests/test-bitops$(EXESUF)
A
Alex Bennée 已提交
86
check-unit-y += tests/test-bitcnt$(EXESUF)
87
check-unit-$(CONFIG_HAS_GLIB_SUBPROCESS_TESTS) += tests/test-qdev-global-props$(EXESUF)
I
Igor Mammedov 已提交
88 89
check-unit-y += tests/check-qom-interface$(EXESUF)
gcov-files-check-qom-interface-y = qom/object.c
90 91
check-unit-y += tests/check-qom-proplist$(EXESUF)
gcov-files-check-qom-proplist-y = qom/object.c
L
Leandro Dorileo 已提交
92 93
check-unit-y += tests/test-qemu-opts$(EXESUF)
gcov-files-test-qemu-opts-y = qom/test-qemu-opts.c
94 95
check-unit-y += tests/test-write-threshold$(EXESUF)
gcov-files-test-write-threshold-y = block/write-threshold.c
96
check-unit-y += tests/test-crypto-hash$(EXESUF)
97
check-unit-y += tests/test-crypto-hmac$(EXESUF)
98
check-unit-y += tests/test-crypto-cipher$(EXESUF)
99
check-unit-y += tests/test-crypto-secret$(EXESUF)
100
check-unit-$(CONFIG_GNUTLS) += tests/test-crypto-tlscredsx509$(EXESUF)
101
check-unit-$(CONFIG_GNUTLS) += tests/test-crypto-tlssession$(EXESUF)
102 103 104
ifneq (,$(findstring qemu-ga,$(TOOLS)))
check-unit-$(CONFIG_LINUX) += tests/test-qga$(EXESUF)
endif
105
check-unit-y += tests/test-timed-average$(EXESUF)
106
check-unit-y += tests/test-io-task$(EXESUF)
107
check-unit-y += tests/test-io-channel-socket$(EXESUF)
D
Daniel P. Berrange 已提交
108
check-unit-y += tests/test-io-channel-file$(EXESUF)
D
Daniel P. Berrange 已提交
109
check-unit-$(CONFIG_GNUTLS) += tests/test-io-channel-tls$(EXESUF)
110
check-unit-y += tests/test-io-channel-command$(EXESUF)
111
check-unit-y += tests/test-io-channel-buffer$(EXESUF)
112
check-unit-y += tests/test-base64$(EXESUF)
113
check-unit-$(if $(CONFIG_NETTLE_KDF),y,$(CONFIG_GCRYPT_KDF)) += tests/test-crypto-pbkdf$(EXESUF)
114
check-unit-y += tests/test-crypto-ivgen$(EXESUF)
115
check-unit-y += tests/test-crypto-afsplit$(EXESUF)
116
check-unit-y += tests/test-crypto-xts$(EXESUF)
117
check-unit-y += tests/test-crypto-block$(EXESUF)
118 119
gcov-files-test-logging-y = tests/test-logging.c
check-unit-y += tests/test-logging$(EXESUF)
120
check-unit-$(CONFIG_REPLICATION) += tests/test-replication$(EXESUF)
121 122
check-unit-y += tests/test-bufferiszero$(EXESUF)
gcov-files-check-bufferiszero-y = util/bufferiszero.c
F
Fam Zheng 已提交
123
check-unit-y += tests/test-uuid$(EXESUF)
P
Paolo Bonzini 已提交
124 125
check-unit-y += tests/ptimer-test$(EXESUF)
gcov-files-ptimer-test-y = hw/core/ptimer.c
P
Paolo Bonzini 已提交
126 127 128

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

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

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

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

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

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

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

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

258 259
check-qtest-alpha-y = tests/boot-serial-test$(EXESUF)

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

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

264
check-qtest-mips64el-y = tests/endianness-test$(EXESUF)
265

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

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)
277
check-qtest-ppc64-y += tests/pnv-xscom-test$(EXESUF)
278 279
check-qtest-ppc64-y += tests/drive_del-test$(EXESUF)
check-qtest-ppc64-y += tests/postcopy-test$(EXESUF)
280
check-qtest-ppc64-y += tests/boot-serial-test$(EXESUF)
281
check-qtest-ppc64-y += tests/rtas-test$(EXESUF)
282
check-qtest-ppc64-y += tests/pxe-test$(EXESUF)
283 284 285 286 287 288
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
289
check-qtest-ppc64-y += $(check-qtest-virtio-y)
290 291 292
check-qtest-ppc64-y += tests/test-netfilter$(EXESUF)
check-qtest-ppc64-y += tests/test-filter-mirror$(EXESUF)
check-qtest-ppc64-y += tests/test-filter-redirector$(EXESUF)
293
check-qtest-ppc64-y += tests/display-vga-test$(EXESUF)
294
check-qtest-ppc64-$(CONFIG_EVENTFD) += tests/ivshmem-test$(EXESUF)
295

296
check-qtest-sh4-y = tests/endianness-test$(EXESUF)
297

298
check-qtest-sh4eb-y = tests/endianness-test$(EXESUF)
299 300 301 302 303

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

304 305
check-qtest-sparc64-y = tests/endianness-test$(EXESUF)
#check-qtest-sparc64-y += tests/m48t59-test$(EXESUF)
306 307 308 309
#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)

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

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

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

323 324
check-qtest-s390x-y = tests/boot-serial-test$(EXESUF)

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

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


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

477
GENERATED_HEADERS += tests/test-qapi-types.h tests/test-qapi-visit.h \
478 479
	tests/test-qmp-commands.h tests/test-qapi-event.h \
	tests/test-qmp-introspect.h
P
Paolo Bonzini 已提交
480 481

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

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

499 500

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

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 已提交
515
tests/check-qnull$(EXESUF): tests/check-qnull.o $(test-util-obj-y)
516 517 518
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)
519

M
Marc-André Lureau 已提交
520 521
tests/test-char$(EXESUF): tests/test-char.o qemu-timer.o \
	$(test-util-obj-y) $(qtest-obj-y) $(test-block-obj-y) $(chardev-obj-y)
522 523 524
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 已提交
525
tests/test-blockjob$(EXESUF): tests/test-blockjob.o $(test-block-obj-y) $(test-util-obj-y)
S
Stefan Hajnoczi 已提交
526
tests/test-blockjob-txn$(EXESUF): tests/test-blockjob-txn.o $(test-block-obj-y) $(test-util-obj-y)
527 528 529
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)
530
tests/test-x86-cpuid$(EXESUF): tests/test-x86-cpuid.o
531
tests/test-xbzrle$(EXESUF): tests/test-xbzrle.o migration/xbzrle.o page_cache.o $(test-util-obj-y)
532
tests/test-cutils$(EXESUF): tests/test-cutils.o util/cutils.o
533
tests/test-int128$(EXESUF): tests/test-int128.o
534 535
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 已提交
536
tests/test-qdist$(EXESUF): tests/test-qdist.o $(test-util-obj-y)
E
Emilio G. Cota 已提交
537
tests/test-qht$(EXESUF): tests/test-qht.o $(test-util-obj-y)
538
tests/test-qht-par$(EXESUF): tests/test-qht-par.o tests/qht-bench$(EXESUF) $(test-util-obj-y)
539
tests/qht-bench$(EXESUF): tests/qht-bench.o $(test-util-obj-y)
540
tests/test-bufferiszero$(EXESUF): tests/test-bufferiszero.o $(test-util-obj-y)
E
Emilio G. Cota 已提交
541
tests/atomic_add-bench$(EXESUF): tests/atomic_add-bench.o $(test-util-obj-y)
P
Paolo Bonzini 已提交
542

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

560 561
tests/test-logging$(EXESUF): tests/test-logging.o $(test-util-obj-y)

562 563 564
tests/test-replication$(EXESUF): tests/test-replication.o $(test-util-obj-y) \
	$(test-block-obj-y)

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

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

602
tests/test-shift128$(EXESUF): tests/test-shift128.o $(test-util-obj-y)
603 604
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 已提交
605
tests/test-bitcnt$(EXESUF): tests/test-bitcnt.o $(test-util-obj-y)
606
tests/test-crypto-hash$(EXESUF): tests/test-crypto-hash.o $(test-crypto-obj-y)
607
tests/test-crypto-hmac$(EXESUF): tests/test-crypto-hmac.o $(test-crypto-obj-y)
608
tests/test-crypto-cipher$(EXESUF): tests/test-crypto-cipher.o $(test-crypto-obj-y)
609
tests/test-crypto-secret$(EXESUF): tests/test-crypto-secret.o $(test-crypto-obj-y)
610
tests/test-crypto-xts$(EXESUF): tests/test-crypto-xts.o $(test-crypto-obj-y)
611 612 613 614 615 616

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)
617 618
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)
619 620

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

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

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

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

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 已提交
742 743 744
ifeq ($(CONFIG_POSIX),y)
LIBS += -lutil
endif
N
Nikolay Nikolaev 已提交
745

746 747 748
# QTest rules

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

757
qtest-obj-y = tests/libqtest.o $(test-util-obj-y)
758 759
$(check-qtest-y): $(qtest-obj-y)

760 761
tests/test-qga: tests/test-qga.o $(qtest-obj-y)

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

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

P
Paolo Bonzini 已提交
786
# gtester tests, possibly with verbose output
787

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

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

P
Paolo Bonzini 已提交
811
# gtester tests with XML output
K
Kevin Wolf 已提交
812

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

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

P
Paolo Bonzini 已提交
821
# Reports and overall runs
K
Kevin Wolf 已提交
822

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

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


# Other tests

832 833
QEMU_IOTESTS_HELPERS-$(CONFIG_LINUX) = tests/qemu-iotests/socket_scm_helper$(EXESUF)

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

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

P
Paolo Bonzini 已提交
853 854
# Consolidated targets

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

clean: check-clean
867

868 869 870 871
# Build the help program automatically

all: $(QEMU_IOTESTS_HELPERS-y)

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