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? Reviewed-by: Simon Glass <sjg@xxxxxxxxxxxx> > 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) > -- > 2.39.1 >