[PATCH] pylibfdt: add size_hint parameter for get_path

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]



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(-)

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




[Index of Archives]     [Device Tree]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]

  Powered by Linux