dtoc: Fix Fdt.GetNode() to handle a missing node

At present the algortihm is not correct since it will return the root node
if the requested node is not found and there are no slashes in the
requested node name. Fix this and add a test.

Signed-off-by: Simon Glass <sjg@chromium.org>
lime2-spi
Simon Glass 6 years ago
parent f9b88b3a5d
commit b9066ffc13
  1. 5
      tools/dtoc/fdt.py
  2. 3
      tools/dtoc/test_fdt.py

@ -318,7 +318,10 @@ class Fdt:
Node object, or None if not found Node object, or None if not found
""" """
node = self._root node = self._root
for part in path.split('/')[1:]: parts = path.split('/')
if len(parts) < 2:
return None
for part in parts[1:]:
node = node._FindNode(part) node = node._FindNode(part)
if not node: if not node:
return None return None

@ -205,6 +205,9 @@ class TestProp(unittest.TestCase):
self.node = self.dtb.GetNode('/spl-test') self.node = self.dtb.GetNode('/spl-test')
self.fdt = self.dtb.GetFdtObj() self.fdt = self.dtb.GetFdtObj()
def testMissingNode(self):
self.assertEqual(None, self.dtb.GetNode('missing'))
def testPhandle(self): def testPhandle(self):
dtb = fdt.FdtScan('tools/dtoc/dtoc_test_phandle.dts') dtb = fdt.FdtScan('tools/dtoc/dtoc_test_phandle.dts')
node = dtb.GetNode('/phandle-source') node = dtb.GetNode('/phandle-source')

Loading…
Cancel
Save