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