xref: /openbmc/qemu/tests/meson.build (revision f085ba29)
1subdir('bench')
2subdir('qemu-iotests')
3
4test_qapi_outputs = [
5  'qapi-builtin-types.c',
6  'qapi-builtin-types.h',
7  'qapi-builtin-visit.c',
8  'qapi-builtin-visit.h',
9  'test-qapi-commands-sub-sub-module.c',
10  'test-qapi-commands-sub-sub-module.h',
11  'test-qapi-commands.c',
12  'test-qapi-commands.h',
13  'test-qapi-emit-events.c',
14  'test-qapi-emit-events.h',
15  'test-qapi-events-sub-sub-module.c',
16  'test-qapi-events-sub-sub-module.h',
17  'test-qapi-events.c',
18  'test-qapi-events.h',
19  'test-qapi-init-commands.c',
20  'test-qapi-init-commands.h',
21  'test-qapi-introspect.c',
22  'test-qapi-introspect.h',
23  'test-qapi-types-sub-sub-module.c',
24  'test-qapi-types-sub-sub-module.h',
25  'test-qapi-types.c',
26  'test-qapi-types.h',
27  'test-qapi-visit-sub-sub-module.c',
28  'test-qapi-visit-sub-sub-module.h',
29  'test-qapi-visit.c',
30  'test-qapi-visit.h',
31]
32
33# Problem: to generate trace events, we'd have to add the .trace-events
34# file to qapi_trace_events like we do in qapi/meson.build.  Since
35# qapi_trace_events is used by trace/meson.build, we'd have to move
36# subdir('tests') above subdir('trace') in the top-level meson.build.
37# Can't, because it would break the dependency of qga on qemuutil (which
38# depends on trace_ss).  Not worth solving now; simply suppress trace
39# event generation instead.
40test_qapi_files = custom_target('Test QAPI files',
41                                output: test_qapi_outputs,
42                                input: files('qapi-schema/qapi-schema-test.json',
43                                             'qapi-schema/include/sub-module.json',
44                                             'qapi-schema/sub-sub-module.json'),
45                                command: [ qapi_gen, '-o', meson.current_build_dir(),
46                                           '-b', '-p', 'test-', '@INPUT0@',
47                                           '--suppress-tracing' ],
48                                depend_files: qapi_gen_depends)
49
50# meson doesn't like generated output in other directories
51# perhaps change qapi_gen to replace / with _, like Meson itself does?
52subdir('include')
53
54test_qapi_sources = []
55test_qapi_headers = []
56i = 0
57foreach o: test_qapi_files.to_list() + test_qapi_files_extra.to_list()
58  if o.full_path().endswith('.h')
59    test_qapi_headers += o
60  endif
61  test_qapi_sources += o
62endforeach
63
64libtestqapi = static_library('testqapi', sources: [genh, test_qapi_sources])
65testqapi = declare_dependency(link_with: libtestqapi, sources: [genh, test_qapi_headers])
66
67test_deps = {
68  'test-qht-par': qht_bench,
69}
70
71if have_tools and have_vhost_user and 'CONFIG_LINUX' in config_host
72  executable('vhost-user-bridge',
73             sources: files('vhost-user-bridge.c'),
74             dependencies: [qemuutil, vhost_user])
75endif
76
77test('decodetree', sh,
78     args: [ files('decode/check.sh'), config_host['PYTHON'], files('../scripts/decodetree.py') ],
79     workdir: meson.current_source_dir() / 'decode',
80     suite: 'decodetree')
81
82if 'CONFIG_TCG' in config_all
83  subdir('fp')
84endif
85
86if get_option('tcg').allowed()
87  if 'CONFIG_PLUGIN' in config_host
88    subdir('plugin')
89  endif
90endif
91
92subdir('unit')
93subdir('qapi-schema')
94subdir('qtest')
95subdir('migration')
96