def __init__(self, section, etype, node): Entry.__init__(self, section, etype, node) value = fdt_util.GetString(self._node, 'text') if value: value = tools.ToBytes(value) else: label, = self.GetEntryArgsOrProps([EntryArg('text-label', str)]) self.text_label = label if self.text_label: value, = self.GetEntryArgsOrProps([EntryArg(self.text_label, str)]) value = tools.ToBytes(value) if value is not None else value self.value = value
def __init__(self, section, etype, node): Entry.__init__(self, section, etype, node) label, = self.GetEntryArgsOrProps([EntryArg('text-label', str)]) self.text_label = tools.ToStr(label) if type(label) != str else label value, = self.GetEntryArgsOrProps([EntryArg(self.text_label, str)]) value = tools.ToBytes(value) if value is not None else value self.value = value
def testAddMore(self): """Test various other methods for adding and setting properties""" self.node.AddZeroProp('one') self.dtb.Sync(auto_resize=True) data = self.fdt.getprop(self.node.Offset(), 'one') self.assertEqual(0, fdt32_to_cpu(data)) self.node.SetInt('one', 1) self.dtb.Sync(auto_resize=False) data = self.fdt.getprop(self.node.Offset(), 'one') self.assertEqual(1, fdt32_to_cpu(data)) val = '123' + chr(0) + '456' self.node.AddString('string', val) self.dtb.Sync(auto_resize=True) data = self.fdt.getprop(self.node.Offset(), 'string') self.assertEqual(tools.ToBytes(val) + b'\0', data) self.fdt.pack() self.node.SetString('string', val + 'x') with self.assertRaises(libfdt.FdtException) as e: self.dtb.Sync(auto_resize=False) self.assertIn('FDT_ERR_NOSPACE', str(e.exception)) self.node.SetString('string', val[:-1]) prop = self.node.props['string'] prop.SetData(tools.ToBytes(val)) self.dtb.Sync(auto_resize=False) data = self.fdt.getprop(self.node.Offset(), 'string') self.assertEqual(tools.ToBytes(val), data) self.node.AddEmptyProp('empty', 5) self.dtb.Sync(auto_resize=True) prop = self.node.props['empty'] prop.SetData(tools.ToBytes(val)) self.dtb.Sync(auto_resize=False) data = self.fdt.getprop(self.node.Offset(), 'empty') self.assertEqual(tools.ToBytes(val), data) self.node.SetData('empty', b'123') self.assertEqual(b'123', prop.bytes)
def _pack_string(instr): """Pack a string to the required aligned size by adding padding Args: instr: String to process Returns: String with required padding (at least one 0x00 byte) at the end """ val = tools.ToBytes(instr) pad_len = align_int(len(val) + 1, FILENAME_ALIGN) return val + tools.GetBytes(0, pad_len - len(val))
def ConvertName(field_names, fields): """Convert a name to something flashrom likes Flashrom requires upper case, underscores instead of hyphens. We remove any null characters as well. This updates the 'name' value in fields. Args: field_names: List of field names for this struct fields: Dict: key: Field name value: value of that field (string for the ones we support) """ name_index = field_names.index('name') fields[name_index] = tools.ToBytes(NameToFmap(fields[name_index]))