On Wed, Feb 01, 2023 at 01:20:51PM -0700, Simon Glass wrote: > Hi Luca, > > On Wed, 1 Feb 2023 at 11:16, Luca Weiss <luca@xxxxxxxxx> wrote: > > > > This also enables us to test the -NOSPACE condition by adding a test > > setting size_hint=1 so this path is taken. > > --- > > Follow-up from "pylibfdt: add FdtRo.get_path()" from April 2022 > > > > pylibfdt/libfdt.i | 8 ++++---- > > tests/pylibfdt_tests.py | 1 + > > 2 files changed, 5 insertions(+), 4 deletions(-) > > > > Can you add a motivation for this? Why are the paths so long? I'm also curious about that. > Reviewed-by: Simon Glass <sjg@xxxxxxxxxxxx> Code looks sane, so Reviewed-by: David Gibson <david@xxxxxxxxxxxxxxxxxxxxx> Unfortunately, I have no way to test this until https://github.com/dgibson/dtc/issues/78 is fixed. Also, I'll need a Signed-off-by line in order to apply this change (see CONTRIBUTING.md for details). > > > > diff --git a/pylibfdt/libfdt.i b/pylibfdt/libfdt.i > > index f9f7e7e..0c80c54 100644 > > --- a/pylibfdt/libfdt.i > > +++ b/pylibfdt/libfdt.i > > @@ -443,11 +443,12 @@ class FdtRo(object): > > """ > > return fdt_get_alias(self._fdt, name) > > > > - def get_path(self, nodeoffset, quiet=()): > > + def get_path(self, nodeoffset, size_hint=1024, quiet=()): > > """Get the full path of a node > > > > Args: > > nodeoffset: Node offset to check > > + size_hint: Hint for size of returned string > > > > Returns: > > Full path to the node > > @@ -455,11 +456,10 @@ class FdtRo(object): > > Raises: > > FdtException if an error occurs > > """ > > - size = 1024 > > while True: > > - ret, path = fdt_get_path(self._fdt, nodeoffset, size) > > + ret, path = fdt_get_path(self._fdt, nodeoffset, size_hint) > > if ret == -NOSPACE: > > - size = size * 2 > > + size_hint *= 2 > > continue > > err = check_err(ret, quiet) > > if err: > > diff --git a/tests/pylibfdt_tests.py b/tests/pylibfdt_tests.py > > index 68d6aaa..34c2764 100644 > > --- a/tests/pylibfdt_tests.py > > +++ b/tests/pylibfdt_tests.py > > @@ -354,6 +354,7 @@ class PyLibfdtBasicTests(unittest.TestCase): > > node2 = self.fdt.path_offset('/subnode@1/subsubnode') > > self.assertEqual("/subnode@1", self.fdt.get_path(node)) > > self.assertEqual("/subnode@1/subsubnode", self.fdt.get_path(node2)) > > + self.assertEqual("/subnode@1/subsubnode", self.fdt.get_path(node2, size_hint=1)) > > > > with self.assertRaises(FdtException) as e: > > self.fdt.get_path(-1) > > > -- 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