uboot/tools/binman/image_test.py
<<
>>
Prefs
   1# SPDX-License-Identifier: GPL-2.0+
   2# Copyright (c) 2017 Google, Inc
   3# Written by Simon Glass <sjg@chromium.org>
   4#
   5# Test for the image module
   6
   7import unittest
   8
   9from binman.image import Image
  10from patman.test_util import capture_sys_output
  11
  12class TestImage(unittest.TestCase):
  13    def testInvalidFormat(self):
  14        image = Image('name', 'node', test=True)
  15        with self.assertRaises(ValueError) as e:
  16            image.LookupSymbol('_binman_something_prop_', False, 'msg', 0)
  17        self.assertIn(
  18            "msg: Symbol '_binman_something_prop_' has invalid format",
  19            str(e.exception))
  20
  21    def testMissingSymbol(self):
  22        image = Image('name', 'node', test=True)
  23        image._entries = {}
  24        with self.assertRaises(ValueError) as e:
  25            image.LookupSymbol('_binman_type_prop_pname', False, 'msg', 0)
  26        self.assertIn("msg: Entry 'type' not found in list ()",
  27                      str(e.exception))
  28
  29    def testMissingSymbolOptional(self):
  30        image = Image('name', 'node', test=True)
  31        image._entries = {}
  32        with capture_sys_output() as (stdout, stderr):
  33            val = image.LookupSymbol('_binman_type_prop_pname', True, 'msg', 0)
  34        self.assertEqual(val, None)
  35        self.assertEqual("Warning: msg: Entry 'type' not found in list ()\n",
  36                         stderr.getvalue())
  37        self.assertEqual('', stdout.getvalue())
  38
  39    def testBadProperty(self):
  40        image = Image('name', 'node', test=True)
  41        image._entries = {'u-boot': 1}
  42        with self.assertRaises(ValueError) as e:
  43            image.LookupSymbol('_binman_u_boot_prop_bad', False, 'msg', 0)
  44        self.assertIn("msg: No such property 'bad", str(e.exception))
  45