mirror of
https://github.com/Fishwaldo/u-boot.git
synced 2025-03-22 07:01:39 +00:00
At present binman sets the python path on startup so that it can access the libraries it needs. If we convert to use absolute imports this is not necessary. Move binman to use absolute imports. This enables removable of the path adjusting in Entry also. Signed-off-by: Simon Glass <sjg@chromium.org>
86 lines
2.8 KiB
Python
86 lines
2.8 KiB
Python
# SPDX-License-Identifier: GPL-2.0+
|
|
# Copyright (c) 2016 Google, Inc
|
|
# Written by Simon Glass <sjg@chromium.org>
|
|
#
|
|
# Test for the fdt modules
|
|
|
|
import os
|
|
import sys
|
|
import tempfile
|
|
import unittest
|
|
|
|
from dtoc import fdt
|
|
from dtoc import fdt_util
|
|
from dtoc.fdt import FdtScan
|
|
import tools
|
|
|
|
class TestFdt(unittest.TestCase):
|
|
@classmethod
|
|
def setUpClass(self):
|
|
self._binman_dir = os.path.dirname(os.path.realpath(sys.argv[0]))
|
|
self._indir = tempfile.mkdtemp(prefix='binmant.')
|
|
tools.PrepareOutputDir(self._indir, True)
|
|
|
|
@classmethod
|
|
def tearDownClass(self):
|
|
tools._FinaliseForTest()
|
|
|
|
def TestFile(self, fname):
|
|
return os.path.join(self._binman_dir, 'test', fname)
|
|
|
|
def GetCompiled(self, fname):
|
|
return fdt_util.EnsureCompiled(self.TestFile(fname))
|
|
|
|
def _DeleteProp(self, dt):
|
|
node = dt.GetNode('/microcode/update@0')
|
|
node.DeleteProp('data')
|
|
|
|
def testFdtNormal(self):
|
|
fname = self.GetCompiled('034_x86_ucode.dts')
|
|
dt = FdtScan(fname)
|
|
self._DeleteProp(dt)
|
|
|
|
def testFdtNormalProp(self):
|
|
fname = self.GetCompiled('045_prop_test.dts')
|
|
dt = FdtScan(fname)
|
|
node = dt.GetNode('/binman/intel-me')
|
|
self.assertEquals('intel-me', node.name)
|
|
val = fdt_util.GetString(node, 'filename')
|
|
self.assertEquals(str, type(val))
|
|
self.assertEquals('me.bin', val)
|
|
|
|
prop = node.props['intval']
|
|
self.assertEquals(fdt.TYPE_INT, prop.type)
|
|
self.assertEquals(3, fdt_util.GetInt(node, 'intval'))
|
|
|
|
prop = node.props['intarray']
|
|
self.assertEquals(fdt.TYPE_INT, prop.type)
|
|
self.assertEquals(list, type(prop.value))
|
|
self.assertEquals(2, len(prop.value))
|
|
self.assertEquals([5, 6],
|
|
[fdt_util.fdt32_to_cpu(val) for val in prop.value])
|
|
|
|
prop = node.props['byteval']
|
|
self.assertEquals(fdt.TYPE_BYTE, prop.type)
|
|
self.assertEquals(chr(8), prop.value)
|
|
|
|
prop = node.props['bytearray']
|
|
self.assertEquals(fdt.TYPE_BYTE, prop.type)
|
|
self.assertEquals(list, type(prop.value))
|
|
self.assertEquals(str, type(prop.value[0]))
|
|
self.assertEquals(3, len(prop.value))
|
|
self.assertEquals([chr(1), '#', '4'], prop.value)
|
|
|
|
prop = node.props['longbytearray']
|
|
self.assertEquals(fdt.TYPE_INT, prop.type)
|
|
self.assertEquals(0x090a0b0c, fdt_util.GetInt(node, 'longbytearray'))
|
|
|
|
prop = node.props['stringval']
|
|
self.assertEquals(fdt.TYPE_STRING, prop.type)
|
|
self.assertEquals('message2', fdt_util.GetString(node, 'stringval'))
|
|
|
|
prop = node.props['stringarray']
|
|
self.assertEquals(fdt.TYPE_STRING, prop.type)
|
|
self.assertEquals(list, type(prop.value))
|
|
self.assertEquals(3, len(prop.value))
|
|
self.assertEquals(['another', 'multi-word', 'message'], prop.value)
|