Hi Luca, On Thu, 2 Feb 2023 at 10:08, Luca Weiss <luca@xxxxxxxxx> wrote: > > On Donnerstag, 2. Februar 2023 07:38:05 CET David Gibson wrote: > > 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. > > Please see this for context: > https://www.spinics.net/lists/devicetree-compiler/msg03922.html > > Basically just for the new test. Got it, thanks. > > > > > > 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). > > Right. > > Signed-off-by: Luca Weiss <luca@xxxxxxxxx> > > If I should resend with it, please let me know. > > Regards > Luca > > > > > > > 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) Regards, Simon