xref: /aosp_15_r20/external/dtc/tests/meson.build (revision cd60bc56d4bea3af4ec04523e4d71c2b272c8aff)
1trees = static_library('trees', files('trees.S'), c_args: '-D__ASSEMBLY__',
2                       include_directories: libfdt_inc)
3
4dumptrees = executable('dumptrees', files('dumptrees.c'),
5                       link_with: trees, dependencies: libfdt_dep)
6
7dumptrees_dtb = custom_target(
8  'dumptrees',
9  command: [dumptrees, meson.current_build_dir()],
10  output: [
11    'test_tree1.dtb',
12    'bad_node_char.dtb',
13    'bad_node_format.dtb',
14    'bad_prop_char.dtb',
15    'ovf_size_strings.dtb',
16    'truncated_property.dtb',
17    'truncated_string.dtb',
18    'truncated_memrsv.dtb',
19  ]
20)
21
22testutil_dep = declare_dependency(sources: ['testutils.c'], link_with: trees)
23
24tests = [
25  'add_subnode_with_nops',
26  'addr_size_cells',
27  'addr_size_cells2',
28  'appendprop1',
29  'appendprop2',
30  'appendprop_addrrange',
31  'boot-cpuid',
32  'char_literal',
33  'check_full',
34  'check_header',
35  'check_path',
36  'del_node',
37  'del_property',
38  'dtb_reverse',
39  'dtbs_equal_ordered',
40  'dtbs_equal_unordered',
41  'extra-terminating-null',
42  'find_property',
43  'fs_tree1',
44  'get_alias',
45  'get_mem_rsv',
46  'get_name',
47  'get_path',
48  'get_phandle',
49  'get_prop_offset',
50  'get_next_tag_invalid_prop_len',
51  'getprop',
52  'incbin',
53  'integer-expressions',
54  'mangle-layout',
55  'move_and_save',
56  'node_check_compatible',
57  'node_offset_by_compatible',
58  'node_offset_by_phandle',
59  'node_offset_by_prop_value',
60  'nop_node',
61  'nop_property',
62  'nopulate',
63  'notfound',
64  'open_pack',
65  'overlay',
66  'overlay_bad_fixup',
67  'parent_offset',
68  'path-references',
69  'path_offset',
70  'path_offset_aliases',
71  'phandle_format',
72  'property_iterate',
73  'propname_escapes',
74  'references',
75  'relref_merge',
76  'root_node',
77  'rw_oom',
78  'rw_tree1',
79  'set_name',
80  'setprop',
81  'setprop_inplace',
82  'sized_cells',
83  'string_escapes',
84  'stringlist',
85  'subnode_iterate',
86  'subnode_offset',
87  'supernode_atdepth_offset',
88  'sw_states',
89  'sw_tree1',
90  'utilfdt_test',
91]
92
93tests += [
94  'truncated_memrsv',
95  'truncated_property',
96  'truncated_string',
97]
98
99dl = cc.find_library('dl', required: false)
100if dl.found() and not static_build
101  tests += [
102    'asm_tree_dump',
103    'value-labels',
104  ]
105endif
106
107test_deps = [testutil_dep, util_dep, libfdt_dep]
108if not static_build
109  test_deps += [dl]
110endif
111
112foreach t: tests
113  executable(t, files(t + '.c'), dependencies: test_deps, link_args: extra_link_args)
114endforeach
115
116run_tests = find_program('run_tests.sh')
117
118env = []
119if not py.found()
120  env += 'NO_PYTHON=1'
121else
122  env += [
123    'PYTHON=' + py.path(),
124    'PYTHONPATH=' + meson.source_root() / 'pylibfdt',
125  ]
126endif
127if not yaml.found()
128  env += 'NO_YAML=1'
129endif
130
131test(
132  'run-test',
133  run_tests,
134  workdir: meson.current_build_dir(),
135  depends: dumptrees_dtb,
136  env: env,
137  timeout: 1800, # mostly for valgrind
138)
139