summaryrefslogtreecommitdiffstats
path: root/tools/dtoc/fdt_util.py
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2018-07-06 10:27:28 -0600
committerSimon Glass <sjg@chromium.org>2018-07-09 09:11:00 -0600
commit2a2d91d0d6fbe4f5c0f336a75ff42dcf7b49a774 (patch)
tree1c96cd8eda6da21219a377019c8ce7173489b0f6 /tools/dtoc/fdt_util.py
parent960662404f492e7088e5a91833dfb0c19ef5450e (diff)
downloadu-boot-2a2d91d0d6fbe4f5c0f336a75ff42dcf7b49a774.tar.gz
u-boot-2a2d91d0d6fbe4f5c0f336a75ff42dcf7b49a774.tar.xz
u-boot-2a2d91d0d6fbe4f5c0f336a75ff42dcf7b49a774.zip
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>
Diffstat (limited to 'tools/dtoc/fdt_util.py')
-rw-r--r--tools/dtoc/fdt_util.py25
1 files changed, 16 insertions, 9 deletions
diff --git a/tools/dtoc/fdt_util.py b/tools/dtoc/fdt_util.py
index 2d09649f72..88fc318383 100644
--- a/tools/dtoc/fdt_util.py
+++ b/tools/dtoc/fdt_util.py
@@ -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