binman: Make the operation of Entry__testing explicit

This fake entry is used for testing. At present it only has one behaviour
which is to return an invalid set of entry positions, to cause an error.

The fake entry will need to be used for other things too. Allow the test
.dts file to specify the behaviour of the fake entry, so we can control
its behaviour easily.

While we are here, drop the ReadContents() method, since this only applies
to subclasses of Entry_blob, which Entry__testing is not.

Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
Simon Glass 2018-07-06 10:27:15 -06:00
parent 16d836cd6f
commit 1835cd2264
2 changed files with 11 additions and 4 deletions

View file

@ -10,16 +10,22 @@ import fdt_util
import tools
class Entry__testing(Entry):
"""A fake entry used for testing
Properties:
return_invalid_entry: Return an invalid entry from GetPositions()
"""
def __init__(self, section, etype, node):
Entry.__init__(self, section, etype, node)
self.return_invalid_entry = fdt_util.GetBool(self._node,
'return-invalid-entry')
def ObtainContents(self):
self.data = 'a'
self.contents_size = len(self.data)
return True
def ReadContents(self):
return True
def GetPositions(self):
return {'invalid-entry': [1, 2]}
if self.return_invalid_entry :
return {'invalid-entry': [1, 2]}
return {}

View file

@ -6,6 +6,7 @@
binman {
_testing {
return-invalid-entry;
};
};
};