1 # SPDX-License-Identifier: GPL-2.0+
2 # Copyright (c) 2016 Google, Inc
3 # Written by Simon Glass <sjg@chromium.org>
5 # Entry-type module for testing purposes. Not used in real images.
8 from entry import Entry
13 class Entry__testing(Entry):
14 """A fake entry used for testing
17 return_invalid_entry: Return an invalid entry from GetPositions()
19 def __init__(self, section, etype, node):
20 Entry.__init__(self, section, etype, node)
21 self.return_invalid_entry = fdt_util.GetBool(self._node,
22 'return-invalid-entry')
23 self.return_unknown_contents = fdt_util.GetBool(self._node,
24 'return-unknown-contents')
25 self.bad_update_contents = fdt_util.GetBool(self._node,
26 'bad-update-contents')
27 self.process_fdt_ready = False
28 self.never_complete_process_fdt = fdt_util.GetBool(self._node,
29 'never-complete-process-fdt')
31 def ObtainContents(self):
32 if self.return_unknown_contents:
35 self.contents_size = len(self.data)
38 def GetPositions(self):
39 if self.return_invalid_entry :
40 return {'invalid-entry': [1, 2]}
43 def ProcessContents(self):
44 if self.bad_update_contents:
45 # Request to update the conents with something larger, to cause a
47 self.ProcessContentsUpdate('aa')
49 def ProcessFdt(self, fdt):
50 """Force reprocessing the first time"""
51 ready = self.process_fdt_ready
52 if not self.never_complete_process_fdt:
53 self.process_fdt_ready = True