pylibfdt: Support setting the name of a node
Add a method to call fdt_set_name(). Signed-off-by: Simon Glass <sjg@chromium.org> Signed-off-by: David Gibson <david@gibson.dropbear.id.au>main
parent
2f0d07e678
commit
b770f3d1c1
|
@ -535,6 +535,23 @@ class Fdt:
|
||||||
"""
|
"""
|
||||||
return check_err(fdt_parent_offset(self._fdt, nodeoffset), quiet)
|
return check_err(fdt_parent_offset(self._fdt, nodeoffset), quiet)
|
||||||
|
|
||||||
|
def set_name(self, nodeoffset, name, quiet=()):
|
||||||
|
"""Set the name of a node
|
||||||
|
|
||||||
|
Args:
|
||||||
|
nodeoffset: Node offset of node to update
|
||||||
|
name: New node name (string without \0)
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
Error code, or 0 if OK
|
||||||
|
|
||||||
|
Raises:
|
||||||
|
FdtException if no parent found or other error occurs
|
||||||
|
"""
|
||||||
|
if chr(0) in name:
|
||||||
|
raise ValueError('Property contains embedded nul characters')
|
||||||
|
return check_err(fdt_set_name(self._fdt, nodeoffset, name), quiet)
|
||||||
|
|
||||||
def setprop(self, nodeoffset, prop_name, val, quiet=()):
|
def setprop(self, nodeoffset, prop_name, val, quiet=()):
|
||||||
"""Set the value of a property
|
"""Set the value of a property
|
||||||
|
|
||||||
|
|
|
@ -465,6 +465,21 @@ class PyLibfdtTests(unittest.TestCase):
|
||||||
self.assertEquals(TEST_STRING_3,
|
self.assertEquals(TEST_STRING_3,
|
||||||
self.fdt.getprop(node, prop).as_str())
|
self.fdt.getprop(node, prop).as_str())
|
||||||
|
|
||||||
|
def testSetName(self):
|
||||||
|
"""Test that we can update a node name"""
|
||||||
|
node = self.fdt.path_offset('/subnode@1')
|
||||||
|
old_val = self.fdt.get_name(node)
|
||||||
|
self.fdt.set_name(node, 'test')
|
||||||
|
self.assertEquals('test', self.fdt.get_name(node))
|
||||||
|
|
||||||
|
with self.assertRaises(ValueError) as e:
|
||||||
|
self.fdt.set_name(node, 'some\0name')
|
||||||
|
self.assertIn('embedded nul', str(e.exception))
|
||||||
|
|
||||||
|
with self.assertRaises(ValueError) as e:
|
||||||
|
self.fdt.set_name(node, 'name\0')
|
||||||
|
self.assertIn('embedded nul', str(e.exception))
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
unittest.main()
|
unittest.main()
|
||||||
|
|
Loading…
Reference in New Issue