aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2018-09-11 03:28:39 -0600
committerDavid Gibson <david@gibson.dropbear.id.au>2018-09-13 10:16:34 +1000
commitbfbfab047e45445dd59bcdba98b61843e086d0d2 (patch)
tree5af0971632451a1ca5d3491d2f34e3dc6c7285c6 /tests
parent9005f4108e7c440764153d3ea0c85e927a75ae55 (diff)
downloaddtc-bfbfab047e45445dd59bcdba98b61843e086d0d2.zip
dtc-bfbfab047e45445dd59bcdba98b61843e086d0d2.tar.gz
dtc-bfbfab047e45445dd59bcdba98b61843e086d0d2.tar.bz2
pylibfdt: Add a means to add and delete notes
These methods are needed to permit larger changes to the device tree blob. Add two new methods and an associate test. Signed-off-by: Simon Glass <sjg@chromium.org> Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Diffstat (limited to 'tests')
-rw-r--r--tests/pylibfdt_tests.py31
1 files changed, 31 insertions, 0 deletions
diff --git a/tests/pylibfdt_tests.py b/tests/pylibfdt_tests.py
index e61fda9..fbb1ce2 100644
--- a/tests/pylibfdt_tests.py
+++ b/tests/pylibfdt_tests.py
@@ -139,6 +139,24 @@ class PyLibfdtBasicTests(unittest.TestCase):
poffset = self.fdt.next_property_offset(poffset, QUIET_NOTFOUND)
return prop_list
+ def GetSubnodes(self, node_path):
+ """Read a list of subnodes from a node
+
+ Args:
+ node_path: Full path to node, e.g. '/subnode@1/subsubnode'
+
+ Returns:
+ List of subnode names for that node, e.g. ['subsubnode', 'ss1']
+ """
+ subnode_list = []
+ node = self.fdt.path_offset(node_path)
+ offset = self.fdt.first_subnode(node, QUIET_NOTFOUND)
+ while offset > 0:
+ name = self.fdt.get_name(offset)
+ subnode_list.append(name)
+ offset = self.fdt.next_subnode(offset, QUIET_NOTFOUND)
+ return subnode_list
+
def testImport(self):
"""Check that we can import the library correctly"""
self.assertEquals(type(libfdt), types.ModuleType)
@@ -495,6 +513,19 @@ class PyLibfdtBasicTests(unittest.TestCase):
self.fdt.set_name(node, 'name\0')
self.assertIn('embedded nul', str(e.exception))
+ def testAddDeleteNodes(self):
+ """Test that we can add and delete nodes"""
+ node_name = '/subnode@1'
+ self.assertEquals(self.GetSubnodes(node_name), ['subsubnode', 'ss1'])
+ node = self.fdt.path_offset('%s/subsubnode' % node_name)
+ self.assertEquals(self.fdt.del_node(node, 'subsubnode'), 0)
+ self.assertEquals(self.GetSubnodes(node_name), ['ss1'])
+
+ node = self.fdt.path_offset(node_name)
+ offset = self.fdt.add_subnode(node, 'more')
+ self.assertTrue(offset > 0)
+ self.assertEquals(self.GetSubnodes(node_name), ['more', 'ss1'])
+
class PyLibfdtSwTests(unittest.TestCase):
"""Test class for pylibfdt sequential-write DT creation