]>
git.ipfire.org Git - people/ms/u-boot.git/blob - tools/binman/fdt_test.py
2 # Copyright (c) 2016 Google, Inc
3 # Written by Simon Glass <sjg@chromium.org>
5 # SPDX-License-Identifier: GPL-2.0+
7 # Test for the fdt modules
15 from fdt
import FdtScan
19 class TestFdt(unittest
.TestCase
):
22 self
._binman
_dir
= os
.path
.dirname(os
.path
.realpath(sys
.argv
[0]))
23 self
._indir
= tempfile
.mkdtemp(prefix
='binmant.')
24 tools
.PrepareOutputDir(self
._indir
, True)
26 def TestFile(self
, fname
):
27 return os
.path
.join(self
._binman
_dir
, 'test', fname
)
29 def GetCompiled(self
, fname
):
30 return fdt_util
.EnsureCompiled(self
.TestFile(fname
))
32 def _DeleteProp(self
, dt
):
33 node
= dt
.GetNode('/microcode/update@0')
34 node
.DeleteProp('data')
36 def testFdtNormal(self
):
37 fname
= self
.GetCompiled('34_x86_ucode.dts')
41 def testFdtNormalProp(self
):
42 fname
= self
.GetCompiled('45_prop_test.dts')
44 node
= dt
.GetNode('/binman/intel-me')
45 self
.assertEquals('intel-me', node
.name
)
46 val
= fdt_util
.GetString(node
, 'filename')
47 self
.assertEquals(str, type(val
))
48 self
.assertEquals('me.bin', val
)
50 prop
= node
.props
['intval']
51 self
.assertEquals(fdt
.TYPE_INT
, prop
.type)
52 self
.assertEquals(3, fdt_util
.GetInt(node
, 'intval'))
54 prop
= node
.props
['intarray']
55 self
.assertEquals(fdt
.TYPE_INT
, prop
.type)
56 self
.assertEquals(list, type(prop
.value
))
57 self
.assertEquals(2, len(prop
.value
))
58 self
.assertEquals([5, 6],
59 [fdt_util
.fdt32_to_cpu(val
) for val
in prop
.value
])
61 prop
= node
.props
['byteval']
62 self
.assertEquals(fdt
.TYPE_BYTE
, prop
.type)
63 self
.assertEquals(chr(8), prop
.value
)
65 prop
= node
.props
['bytearray']
66 self
.assertEquals(fdt
.TYPE_BYTE
, prop
.type)
67 self
.assertEquals(list, type(prop
.value
))
68 self
.assertEquals(str, type(prop
.value
[0]))
69 self
.assertEquals(3, len(prop
.value
))
70 self
.assertEquals([chr(1), '#', '4'], prop
.value
)
72 prop
= node
.props
['longbytearray']
73 self
.assertEquals(fdt
.TYPE_INT
, prop
.type)
74 self
.assertEquals(0x090a0b0c, fdt_util
.GetInt(node
, 'longbytearray'))
76 prop
= node
.props
['stringval']
77 self
.assertEquals(fdt
.TYPE_STRING
, prop
.type)
78 self
.assertEquals('message2', fdt_util
.GetString(node
, 'stringval'))
80 prop
= node
.props
['stringarray']
81 self
.assertEquals(fdt
.TYPE_STRING
, prop
.type)
82 self
.assertEquals(list, type(prop
.value
))
83 self
.assertEquals(3, len(prop
.value
))
84 self
.assertEquals(['another', 'multi-word', 'message'], prop
.value
)