From: Philippe Proulx Date: Thu, 17 Mar 2016 20:43:48 +0000 (-0400) Subject: config: float type object: null sets prop to default value X-Git-Url: http://drtracing.org/?a=commitdiff_plain;h=9ed71fb11a2365f82effab513aeaa2ff95f362f0;p=deliverable%2Fbarectf.git config: float type object: null sets prop to default value Signed-off-by: Philippe Proulx --- diff --git a/barectf/config.py b/barectf/config.py index 114e4fd..80e9629 100644 --- a/barectf/config.py +++ b/barectf/config.py @@ -1458,29 +1458,33 @@ class _YamlConfigParser: if 'align' in node: align = node['align'] - if not _is_int_prop(align): - raise ConfigError('"align" property of floating point number type object must be an integer') + if align is None: + obj.set_default_align() + else: + if not _is_int_prop(align): + raise ConfigError('"align" property of floating point number type object must be an integer') - if not _is_valid_alignment(align): - raise ConfigError('invalid alignment: {}'.format(align)) + if not _is_valid_alignment(align): + raise ConfigError('invalid alignment: {}'.format(align)) - obj.align = align + obj.align = align # byte order if 'byte-order' in node: byte_order = node['byte-order'] - if not _is_str_prop(byte_order): - raise ConfigError('"byte-order" property of floating point number type object must be a string ("le" or "be")') + if byte_order is None: + obj.byte_order = self._bo + else: + if not _is_str_prop(byte_order): + raise ConfigError('"byte-order" property of floating point number type object must be a string ("le" or "be")') - byte_order = _byte_order_str_to_bo(byte_order) + byte_order = _byte_order_str_to_bo(byte_order) - if byte_order is None: - raise ConfigError('invalid "byte-order" property in floating point number type object') + if byte_order is None: + raise ConfigError('invalid "byte-order" property in floating point number type object') else: - byte_order = self._bo - - obj.byte_order = byte_order + obj.byte_order = self._bo return obj diff --git a/barectf/metadata.py b/barectf/metadata.py index 10aeaf5..f40a9c7 100644 --- a/barectf/metadata.py +++ b/barectf/metadata.py @@ -172,9 +172,21 @@ class Integer(Type): class FloatingPoint(Type): def __init__(self): + self.set_default_exp_size() + self.set_default_mant_size() + self.set_default_align() + self.set_default_byte_order() + + def set_default_exp_size(self): self._exp_size = None + + def set_default_mant_size(self): self._mant_size = None + + def set_default_align(self): self._align = 8 + + def set_default_byte_order(self): self._byte_order = None @property @@ -195,6 +207,9 @@ class FloatingPoint(Type): @property def size(self): + if self._exp_size is None or self._mant_size is None: + return + return self._exp_size + self._mant_size @property