[PATCH v2 08/25] binman: Rename ExpandToLimit to extend_to_limit

Simon Glass
2022-02-23T23:03:52Z

The word 'expand' is used for entries which generate subentries. It is
also used for entries that can have an '_expanded' version which is used
to break out its contents.

Rather than talking about expanding an entry's size, use the term
'extending'. It is slightly more precise and avoids the above conflicts.

This change renders the old 'expand-size' property invalid, so add an
error check for that.

Signed-off-by: Simon Glass <sjg@chromium.org>
---

Changes in v2:
- Add patch to rename ExpandToLimit to extend_to_limit

tools/binman/binman.rst | 2 +-
tools/binman/entry.py | 8 +++++---
tools/binman/etype/section.py | 10 +++++-----
tools/binman/ftest.py | 8 ++++++++
tools/binman/test/088_expand_size.dts | 8 ++++----
tools/binman/test/089_expand_size_bad.dts | 2 +-
tools/binman/test/225_expand_size_bad.dts | 10 ++++++++++
7 files changed, 34 insertions(+), 14 deletions(-)
create mode 100644 tools/binman/test/225_expand_size_bad.dts

diff --git a/tools/binman/binman.rst b/tools/binman/binman.rst
index 0061e43659..85f8337a31 100644
--- a/tools/binman/binman.rst
+++ b/tools/binman/binman.rst
@@ -480,7 +480,7 @@ image-pos:
for each entry. This makes it easy to find out exactly where the entry
ended up in the image, regardless of parent sections, etc.

-expand-size:
+extend-size:
Expand the size of this entry to fit available space. This space is only
limited by the size of the image/section and the position of the next
entry.
diff --git a/tools/binman/entry.py b/tools/binman/entry.py
index de8526618d..a59eb56f14 100644
--- a/tools/binman/entry.py
+++ b/tools/binman/entry.py
@@ -233,6 +233,8 @@ class Entry(object):
"""
if 'pos' in self._node.props:
self.Raise("Please use 'offset' instead of 'pos'")
+ if 'expand-size' in self._node.props:
+ self.Raise("Please use 'extend-size' instead of 'expand-size'")
self.offset = fdt_util.GetInt(self._node, 'offset')
self.size = fdt_util.GetInt(self._node, 'size')
self.orig_offset = fdt_util.GetInt(self._node, 'orig-offset')
@@ -260,7 +262,7 @@ class Entry(object):
self.align_size)
self.align_end = fdt_util.GetInt(self._node, 'align-end')
self.offset_unset = fdt_util.GetBool(self._node, 'offset-unset')
- self.expand_size = fdt_util.GetBool(self._node, 'expand-size')
+ self.expand_size = fdt_util.GetBool(self._node, 'extend-size')
self.missing_msg = fdt_util.GetString(self._node, 'missing-msg')

# This is only supported by blobs and sections at present
@@ -772,8 +774,8 @@ features to produce new behaviours.
name = '%s.%s' % (node.name, name)
return name

- def ExpandToLimit(self, limit):
- """Expand an entry so that it ends at the given offset limit"""
+ def extend_to_limit(self, limit):
+ """Extent an entry so that it ends at the given offset limit"""
if self.offset + self.size < limit:
self.size = limit - self.offset
# Request the contents again, since changing the size requires that
diff --git a/tools/binman/etype/section.py b/tools/binman/etype/section.py
index 25159074ba..0cfee5f3e3 100644
--- a/tools/binman/etype/section.py
+++ b/tools/binman/etype/section.py
@@ -385,7 +385,7 @@ class Entry_section(Entry):
self._PackEntries()
if self._sort:
self._SortEntries()
- self._ExpandEntries()
+ self._extend_entries()

data = self.BuildSectionData(True)
self.SetContents(data)
@@ -403,17 +403,17 @@ class Entry_section(Entry):
offset = entry.Pack(offset)
return offset

- def _ExpandEntries(self):
- """Expand any entries that are permitted to"""
+ def _extend_entries(self):
+ """Extend any entries that are permitted to"""
exp_entry = None
for entry in self._entries.values():
if exp_entry:
- exp_entry.ExpandToLimit(entry.offset)
+ exp_entry.extend_to_limit(entry.offset)
exp_entry = None
if entry.expand_size:
exp_entry = entry
if exp_entry:
- exp_entry.ExpandToLimit(self.size)
+ exp_entry.extend_to_limit(self.size)

def _SortEntries(self):
"""Sort entries by offset"""
diff --git a/tools/binman/ftest.py b/tools/binman/ftest.py
index 8f00db6945..62528ccbfa 100644
--- a/tools/binman/ftest.py
+++ b/tools/binman/ftest.py
@@ -5321,6 +5321,14 @@ fdt fdtmap Extract the devicetree blob from the fdtmap
self.assertIn("Node '/binman/fit': Unknown operation 'unknown'",
str(exc.exception))

+ def test_uses_expand_size(self):
+ """Test that the 'expand-size' property cannot be used anymore"""
+ with self.assertRaises(ValueError) as e:
+ data = self._DoReadFile('225_expand_size_bad.dts')
+ self.assertIn(
+ "Node '/binman/u-boot': Please use 'extend-size' instead of 'expand-size'",
+ str(e.exception))
+

if __name__ == "__main__":
unittest.main()
diff --git a/tools/binman/test/088_expand_size.dts b/tools/binman/test/088_expand_size.dts
index c8a01308ec..f352699e37 100644
--- a/tools/binman/test/088_expand_size.dts
+++ b/tools/binman/test/088_expand_size.dts
@@ -5,7 +5,7 @@
binman {
size = <40>;
fill {
- expand-size;
+ extend-size;
fill-byte = [61];
size = <0>;
};
@@ -13,7 +13,7 @@
offset = <8>;
};
section {
- expand-size;
+ extend-size;
pad-byte = <0x62>;
intel-mrc {
};
@@ -25,7 +25,7 @@
section2 {
type = "section";
fill {
- expand-size;
+ extend-size;
fill-byte = [63];
size = <0>;
};
@@ -35,7 +35,7 @@
};
fill2 {
type = "fill";
- expand-size;
+ extend-size;
fill-byte = [64];
size = <0>;
};
diff --git a/tools/binman/test/089_expand_size_bad.dts b/tools/binman/test/089_expand_size_bad.dts
index edc0e5cf68..edc60e43fd 100644
--- a/tools/binman/test/089_expand_size_bad.dts
+++ b/tools/binman/test/089_expand_size_bad.dts
@@ -4,7 +4,7 @@
/ {
binman {
_testing {
- expand-size;
+ extend-size;
return-contents-once;
};
u-boot {
diff --git a/tools/binman/test/225_expand_size_bad.dts b/tools/binman/test/225_expand_size_bad.dts
new file mode 100644
index 0000000000..d4ad9a6a1a
--- /dev/null
+++ b/tools/binman/test/225_expand_size_bad.dts
@@ -0,0 +1,10 @@
+// SPDX-License-Identifier: GPL-2.0+
+/dts-v1/;
+
+/ {
+ binman {
+ u-boot {
+ expand-size;
+ };
+ };
+};
--
2.35.1.574.g5d30c73bfb-goog