summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2018-09-14 04:57:09 -0600
committerSimon Glass <sjg@chromium.org>2018-09-28 11:09:01 -0600
commit0b489364f90d5cd70b594268442b14e0143c89b5 (patch)
treeae830473a9d35cb89f2496f9350fc1c41c17ff27
parentd178eab8f92cb2d67288e01d1ae5b0eb8d0f8db1 (diff)
downloadu-boot-0b489364f90d5cd70b594268442b14e0143c89b5.tar.gz
binman: Generate an error when text is not provided
When the value of a text entry is not provided an execption is generated talking about a None type. This is confusing. Add a more explanatory error and a test for this case. Signed-off-by: Simon Glass <sjg@chromium.org>
-rw-r--r--tools/binman/etype/text.py3
-rw-r--r--tools/binman/ftest.py7
2 files changed, 10 insertions, 0 deletions
diff --git a/tools/binman/etype/text.py b/tools/binman/etype/text.py
index 7a1cddf4af..6e99819487 100644
--- a/tools/binman/etype/text.py
+++ b/tools/binman/etype/text.py
@@ -51,6 +51,9 @@ class Entry_text(Entry):
self.text_label, = self.GetEntryArgsOrProps(
[EntryArg('text-label', str)])
self.value, = self.GetEntryArgsOrProps([EntryArg(self.text_label, str)])
+ if not self.value:
+ self.Raise("No value provided for text label '%s'" %
+ self.text_label)
def ObtainContents(self):
self.SetContents(self.value)
diff --git a/tools/binman/ftest.py b/tools/binman/ftest.py
index 7f82264f8a..d956bd42e1 100644
--- a/tools/binman/ftest.py
+++ b/tools/binman/ftest.py
@@ -1369,6 +1369,13 @@ class TestFunctional(unittest.TestCase):
data = self._DoReadFile('80_fill_empty.dts')
self.assertEqual(chr(0) * 16, data)
+ def testTextMissing(self):
+ """Test for a text entry type where there is no text"""
+ with self.assertRaises(ValueError) as e:
+ self._DoReadFileDtb('66_text.dts',)
+ self.assertIn("Node '/binman/text': No value provided for text label "
+ "'test-id'", str(e.exception))
+
if __name__ == "__main__":
unittest.main()