mirror of
https://xff.cz/git/u-boot/
synced 2025-09-01 16:52:14 +02:00
dtoc: Update fdt tests to increase code coverage
At present only some of the fdt functionality is tested. Add more tests to cover the rest of it. Also turn on test coverage, which is now 100% with a small exclusion for a Python 3 feature. Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
@@ -13,6 +13,14 @@ import tempfile
|
||||
import command
|
||||
import tools
|
||||
|
||||
VERSION3 = sys.version_info > (3, 0)
|
||||
|
||||
def get_plain_bytes(val):
|
||||
"""Handle Python 3 strings"""
|
||||
if isinstance(val, bytes):
|
||||
val = val.decode('utf-8')
|
||||
return val.encode('raw_unicode_escape')
|
||||
|
||||
def fdt32_to_cpu(val):
|
||||
"""Convert a device tree cell to an integer
|
||||
|
||||
@@ -22,10 +30,9 @@ def fdt32_to_cpu(val):
|
||||
Return:
|
||||
A native-endian integer value
|
||||
"""
|
||||
if sys.version_info > (3, 0):
|
||||
if isinstance(val, bytes):
|
||||
val = val.decode('utf-8')
|
||||
val = val.encode('raw_unicode_escape')
|
||||
if VERSION3:
|
||||
# This code is not reached in Python 2
|
||||
val = get_plain_bytes(val) # pragma: no cover
|
||||
return struct.unpack('>I', val)[0]
|
||||
|
||||
def fdt_cells_to_cpu(val, cells):
|
||||
@@ -86,10 +93,10 @@ def GetInt(node, propname, default=None):
|
||||
prop = node.props.get(propname)
|
||||
if not prop:
|
||||
return default
|
||||
value = fdt32_to_cpu(prop.value)
|
||||
if type(value) == type(list):
|
||||
raise ValueError("Node '%s' property '%' has list value: expecting"
|
||||
if isinstance(prop.value, list):
|
||||
raise ValueError("Node '%s' property '%s' has list value: expecting "
|
||||
"a single integer" % (node.name, propname))
|
||||
value = fdt32_to_cpu(prop.value)
|
||||
return value
|
||||
|
||||
def GetString(node, propname, default=None):
|
||||
@@ -97,8 +104,8 @@ def GetString(node, propname, default=None):
|
||||
if not prop:
|
||||
return default
|
||||
value = prop.value
|
||||
if type(value) == type(list):
|
||||
raise ValueError("Node '%s' property '%' has list value: expecting"
|
||||
if isinstance(value, list):
|
||||
raise ValueError("Node '%s' property '%s' has list value: expecting "
|
||||
"a single string" % (node.name, propname))
|
||||
return value
|
||||
|
||||
|
Reference in New Issue
Block a user