diff options
author | Simon Glass <sjg@chromium.org> | 2018-07-06 10:27:30 -0600 |
---|---|---|
committer | Simon Glass <sjg@chromium.org> | 2018-07-09 09:11:00 -0600 |
commit | b9066ffc136afd2e46e8d033c4edce98f5557afc (patch) | |
tree | c844c67822e6a8d9168a305d6186e51d52fde0a3 /tools/dtoc | |
parent | f9b88b3a5d7ff18760c2c5a0cb596ec8c577706e (diff) | |
download | u-boot-b9066ffc136afd2e46e8d033c4edce98f5557afc.tar.gz |
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>
Diffstat (limited to 'tools/dtoc')
-rw-r--r-- | tools/dtoc/fdt.py | 5 | ||||
-rwxr-xr-x | tools/dtoc/test_fdt.py | 3 |
2 files changed, 7 insertions, 1 deletions
diff --git a/tools/dtoc/fdt.py b/tools/dtoc/fdt.py index 274c142e7ae..c1d04d48e88 100644 --- a/tools/dtoc/fdt.py +++ b/tools/dtoc/fdt.py @@ -318,7 +318,10 @@ class Fdt: Node object, or None if not found """ 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) if not node: return None diff --git a/tools/dtoc/test_fdt.py b/tools/dtoc/test_fdt.py index e57298dbe7c..9fef8ed5496 100755 --- a/tools/dtoc/test_fdt.py +++ b/tools/dtoc/test_fdt.py @@ -205,6 +205,9 @@ class TestProp(unittest.TestCase): self.node = self.dtb.GetNode('/spl-test') self.fdt = self.dtb.GetFdtObj() + def testMissingNode(self): + self.assertEqual(None, self.dtb.GetNode('missing')) + def testPhandle(self): dtb = fdt.FdtScan('tools/dtoc/dtoc_test_phandle.dts') node = dtb.GetNode('/phandle-source') |