On Sat, Dec 25, 2021 at 02:25:55PM +0100, Luca Weiss wrote: > Add a new method for decoding a string list property, useful for e.g. > the "reg-names" property. > > Also add a test for the new method. > > Signed-off-by: Luca Weiss <luca@xxxxxxxxx> Applied, thanks. > --- > pylibfdt/libfdt.i | 7 +++++++ > tests/pylibfdt_tests.py | 8 ++++++++ > 2 files changed, 15 insertions(+) > > diff --git a/pylibfdt/libfdt.i b/pylibfdt/libfdt.i > index 9ccc57b..c81b504 100644 > --- a/pylibfdt/libfdt.i > +++ b/pylibfdt/libfdt.i > @@ -724,6 +724,13 @@ class Property(bytearray): > raise ValueError('Property contains embedded nul characters') > return self[:-1].decode('utf-8') > > + def as_stringlist(self): > + """Unicode is supported by decoding from UTF-8""" > + if self[-1] != 0: > + raise ValueError('Property lacks nul termination') > + parts = self[:-1].split(b'\x00') > + return list(map(lambda x: x.decode('utf-8'), parts)) > + > > class FdtSw(FdtRo): > """Software interface to create a device tree from scratch > diff --git a/tests/pylibfdt_tests.py b/tests/pylibfdt_tests.py > index 64b5bd1..7e3cc4c 100644 > --- a/tests/pylibfdt_tests.py > +++ b/tests/pylibfdt_tests.py > @@ -382,6 +382,14 @@ class PyLibfdtBasicTests(unittest.TestCase): > self.get_prop("prop-uint64").as_uint64()) > self.assertEqual(-2, self.get_prop("prop-int64").as_int64()) > > + def testGetStringlistProperties(self): > + """Test that we can access properties as string list""" > + node = self.fdt.path_offset('/subnode@1/subsubnode') > + self.assertEqual(["subsubnode1", "subsubnode"], > + self.fdt.getprop(node, "compatible").as_stringlist()) > + self.assertEqual(["this is a placeholder string", "string2"], > + self.fdt.getprop(node, "placeholder").as_stringlist()) > + > def testReserveMap(self): > """Test that we can access the memory reserve map""" > self.assertEqual(2, self.fdt.num_mem_rsv()) -- David Gibson | I'll have my music baroque, and my code david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_ | _way_ _around_! http://www.ozlabs.org/~dgibson
Attachment:
signature.asc
Description: PGP signature