mirror of
https://github.com/brain-hackers/u-boot-brain
synced 2024-08-20 00:48:52 +09:00
![Simon Glass](/assets/img/avatar_default.png)
At present patman 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 patman to use absolute imports. This requires changes in tools which use the patman libraries (which is most of them). Signed-off-by: Simon Glass <sjg@chromium.org>
87 lines
2.9 KiB
Python
87 lines
2.9 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
|
|
from patman 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)
|