def testRegistration(self): """Tests the RegisterDefinition and DeregisterDefinition functions.""" definitions_registry = registry.DataTypeDefinitionsRegistry() data_type_definition = data_types.IntegerDefinition( u'int32', aliases=[u'LONG', u'LONG32'], description=u'signed 32-bit integer') definitions_registry.RegisterDefinition(data_type_definition) with self.assertRaises(KeyError): definitions_registry.RegisterDefinition(data_type_definition) test_definition = data_types.IntegerDefinition( u'LONG', description=u'long integer') with self.assertRaises(KeyError): definitions_registry.RegisterDefinition(test_definition) test_definition = data_types.IntegerDefinition( u'test', aliases=[u'LONG'], description=u'long integer') with self.assertRaises(KeyError): definitions_registry.RegisterDefinition(test_definition) definitions_registry.DeregisterDefinition(data_type_definition) with self.assertRaises(KeyError): definitions_registry.DeregisterDefinition(data_type_definition)
def testInitialize(self): """Tests the __init__ function.""" data_type_definition = data_types.IntegerDefinition( u'int32', aliases=[u'LONG', u'LONG32'], description=u'signed 32-bit integer') self.assertIsNotNone(data_type_definition)
def testGetByteSize(self): """Tests the GetByteSize function.""" data_type_definition = data_types.ElementSequenceDataTypeDefinition( 'offsets', None, description='offsets array') byte_size = data_type_definition.GetByteSize() self.assertIsNone(byte_size) element_definition = data_types.IntegerDefinition('int32') element_definition.format = definitions.FORMAT_SIGNED element_definition.size = 4 data_type_definition.element_data_type_definition = element_definition byte_size = data_type_definition.GetByteSize() self.assertIsNone(byte_size) data_type_definition.elements_data_size = 0 data_type_definition.number_of_elements = 32 byte_size = data_type_definition.GetByteSize() self.assertEqual(byte_size, 128) data_type_definition.elements_data_size = 128 data_type_definition.number_of_elements = 0 byte_size = data_type_definition.GetByteSize() self.assertEqual(byte_size, 128)
def testGetAttributeNames(self): """Tests the GetAttributeNames function.""" element_definition = data_types.IntegerDefinition(u'byte') data_type_definition = data_types.SequenceDefinition( u'byte_stream', element_definition, description=u'byte stream') attribute_names = data_type_definition.GetAttributeNames() self.assertEqual(attribute_names, [u'elements'])
def testGetStructByteOrderString(self): """Tests the GetStructByteOrderString function.""" data_type_definition = data_types.SequenceDefinition( u'byte_stream', None, description=u'byte stream') byte_order_string = data_type_definition.GetStructByteOrderString() self.assertIsNone(byte_order_string) element_definition = data_types.IntegerDefinition(u'uint16le') element_definition.byte_order = definitions.BYTE_ORDER_LITTLE_ENDIAN data_type_definition.element_data_type_definition = element_definition byte_order_string = data_type_definition.GetStructByteOrderString() self.assertEqual(byte_order_string, u'<')
def testGetStructFormatString(self): """Tests the GetStructFormatString function.""" data_type_definition = data_types.IntegerDefinition( u'int32', aliases=[u'LONG', u'LONG32'], description=u'signed 32-bit integer') struct_format_string = data_type_definition.GetStructFormatString() self.assertIsNone(struct_format_string) data_type_definition.format = u'signed' data_type_definition.size = 1 struct_format_string = data_type_definition.GetStructFormatString() self.assertEqual(struct_format_string, u'b') data_type_definition.format = u'signed' data_type_definition.size = 2 struct_format_string = data_type_definition.GetStructFormatString() self.assertEqual(struct_format_string, u'h') data_type_definition.format = u'signed' data_type_definition.size = 4 struct_format_string = data_type_definition.GetStructFormatString() self.assertEqual(struct_format_string, u'i') data_type_definition.format = u'signed' data_type_definition.size = 8 struct_format_string = data_type_definition.GetStructFormatString() self.assertEqual(struct_format_string, u'q') data_type_definition.format = u'unsigned' data_type_definition.size = 1 struct_format_string = data_type_definition.GetStructFormatString() self.assertEqual(struct_format_string, u'B') data_type_definition.format = u'unsigned' data_type_definition.size = 2 struct_format_string = data_type_definition.GetStructFormatString() self.assertEqual(struct_format_string, u'H') data_type_definition.format = u'unsigned' data_type_definition.size = 4 struct_format_string = data_type_definition.GetStructFormatString() self.assertEqual(struct_format_string, u'I') data_type_definition.format = u'unsigned' data_type_definition.size = 8 struct_format_string = data_type_definition.GetStructFormatString() self.assertEqual(struct_format_string, u'Q')
def testGetDefinitions(self): """Tests the GetDefinitions function.""" definitions_registry = registry.DataTypeDefinitionsRegistry() test_definitions = definitions_registry.GetDefinitions() self.assertEqual(len(test_definitions), 0) data_type_definition = data_types.IntegerDefinition( u'int32', aliases=[u'LONG', u'LONG32'], description=u'signed 32-bit integer') definitions_registry.RegisterDefinition(data_type_definition) test_definitions = definitions_registry.GetDefinitions() self.assertEqual(len(test_definitions), 1) definitions_registry.DeregisterDefinition(data_type_definition)
def testGetStructFormatString(self): """Tests the GetStructFormatString function.""" data_type_definition = data_types.SequenceDefinition( u'byte_stream', None, description=u'byte stream') struct_format_string = data_type_definition.GetStructFormatString() self.assertIsNone(struct_format_string) element_definition = data_types.IntegerDefinition(u'byte') element_definition.format = definitions.FORMAT_UNSIGNED element_definition.size = 1 data_type_definition.element_data_type_definition = element_definition struct_format_string = data_type_definition.GetStructFormatString() self.assertIsNone(struct_format_string) data_type_definition.number_of_elements = 32 struct_format_string = data_type_definition.GetStructFormatString() self.assertEqual(struct_format_string, u'32B')
def testGetByteSize(self): """Tests the GetByteSize function.""" data_type_definition = data_types.SequenceDefinition( u'byte_stream', None, description=u'byte stream') byte_size = data_type_definition.GetByteSize() self.assertIsNone(byte_size) element_definition = data_types.IntegerDefinition(u'byte') element_definition.format = definitions.FORMAT_UNSIGNED element_definition.size = 1 data_type_definition.element_data_type_definition = element_definition byte_size = data_type_definition.GetByteSize() self.assertIsNone(byte_size) data_type_definition.number_of_elements = 32 byte_size = data_type_definition.GetByteSize() self.assertEqual(byte_size, 32)
def testGetByteSize(self): """Tests the GetByteSize function.""" data_type_definition = data_types.StringDefinition( 'utf16', None, description='UTF-16 formatted string') byte_size = data_type_definition.GetByteSize() self.assertIsNone(byte_size) element_definition = data_types.IntegerDefinition('wchar16') element_definition.format = definitions.FORMAT_SIGNED element_definition.size = 2 data_type_definition.element_data_type_definition = element_definition byte_size = data_type_definition.GetByteSize() self.assertIsNone(byte_size) data_type_definition.number_of_elements = 32 byte_size = data_type_definition.GetByteSize() self.assertEqual(byte_size, 64)
def testGetDefinitionByName(self): """Tests the GetDefinitionByName function.""" definitions_registry = registry.DataTypeDefinitionsRegistry() data_type_definition = data_types.IntegerDefinition( u'int32', aliases=[u'LONG', u'LONG32'], description=u'signed 32-bit integer') definitions_registry.RegisterDefinition(data_type_definition) test_definition = definitions_registry.GetDefinitionByName(u'int32') self.assertIsNotNone(test_definition) self.assertIsInstance(test_definition, data_types.IntegerDefinition) test_definition = definitions_registry.GetDefinitionByName(u'LONG32') self.assertIsNotNone(test_definition) self.assertIsInstance(test_definition, data_types.IntegerDefinition) test_definition = definitions_registry.GetDefinitionByName(u'bogus') self.assertIsNone(test_definition) definitions_registry.DeregisterDefinition(data_type_definition)
def testInitialize(self): """Tests the __init__ function.""" element_definition = data_types.IntegerDefinition(u'byte') data_type_definition = data_types.SequenceDefinition( u'byte_stream', element_definition, description=u'byte stream') self.assertIsNotNone(data_type_definition)
def testInitialize(self): """Tests the __init__ function.""" element_definition = data_types.IntegerDefinition('wchar16') data_type_definition = data_types.StringDefinition( 'utf16', element_definition, description='UTF-16 formatted string') self.assertIsNotNone(data_type_definition)
def testInitialize(self): """Tests the __init__ function.""" element_definition = data_types.IntegerDefinition('int32') data_type_definition = data_types.ElementSequenceDataTypeDefinition( 'offsets', element_definition, description='offsets array') self.assertIsNotNone(data_type_definition)