Exemple #1
0
    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)
Exemple #2
0
 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)
Exemple #3
0
    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)
Exemple #4
0
    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'])
Exemple #5
0
    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'<')
Exemple #6
0
    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')
Exemple #7
0
    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)
Exemple #8
0
    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')
Exemple #9
0
    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)
Exemple #10
0
    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)
Exemple #11
0
    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)
Exemple #12
0
 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)
Exemple #13
0
 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)
Exemple #14
0
 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)