entry_test.py 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. #
  2. # Copyright (c) 2016 Google, Inc
  3. # Written by Simon Glass <sjg@chromium.org>
  4. #
  5. # SPDX-License-Identifier: GPL-2.0+
  6. #
  7. # Test for the Entry class
  8. import collections
  9. import os
  10. import sys
  11. import unittest
  12. import fdt
  13. import fdt_util
  14. import tools
  15. class TestEntry(unittest.TestCase):
  16. def GetNode(self):
  17. binman_dir = os.path.dirname(os.path.realpath(sys.argv[0]))
  18. tools.PrepareOutputDir(None)
  19. fname = fdt_util.EnsureCompiled(
  20. os.path.join(binman_dir,('test/05_simple.dts')))
  21. dtb = fdt.FdtScan(fname)
  22. return dtb.GetNode('/binman/u-boot')
  23. def test1EntryNoImportLib(self):
  24. """Test that we can import Entry subclassess successfully"""
  25. sys.modules['importlib'] = None
  26. global entry
  27. import entry
  28. entry.Entry.Create(None, self.GetNode(), 'u-boot')
  29. def test2EntryImportLib(self):
  30. del sys.modules['importlib']
  31. global entry
  32. reload(entry)
  33. entry.Entry.Create(None, self.GetNode(), 'u-boot-spl')
  34. tools._RemoveOutputDir()
  35. del entry
  36. def testEntryContents(self):
  37. """Test the Entry bass class"""
  38. import entry
  39. base_entry = entry.Entry(None, None, None, read_node=False)
  40. self.assertEqual(True, base_entry.ObtainContents())
  41. def testUnknownEntry(self):
  42. """Test that unknown entry types are detected"""
  43. import entry
  44. Node = collections.namedtuple('Node', ['name', 'path'])
  45. node = Node('invalid-name', 'invalid-path')
  46. with self.assertRaises(ValueError) as e:
  47. entry.Entry.Create(None, node, node.name)
  48. self.assertIn("Unknown entry type 'invalid-name' in node "
  49. "'invalid-path'", str(e.exception))
  50. if __name__ == "__main__":
  51. unittest.main()