configurationengine/source/plugins/symbian/ConeHCRPlugin/hcrplugin/tests/unittest_read_write_record.py
author m2lahtel
Tue, 10 Aug 2010 14:29:28 +0300
changeset 3 e7e0ae78773e
parent 0 2e8eeb919028
permissions -rw-r--r--
ConE 1.2.11 release
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
     1
# *-* coding: utf-8 *-*
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
     2
#
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
     3
# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
     4
# All rights reserved.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
     5
# This component and the accompanying materials are made available
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
     6
# under the terms of "Eclipse Public License v1.0"
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
     7
# which accompanies this distribution, and is available
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
     8
# at the URL "http://www.eclipse.org/legal/epl-v10.html".
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
     9
#
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    10
# Initial Contributors:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    11
# Nokia Corporation - initial contribution.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    12
#
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    13
# Contributors:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    14
#
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    15
# Description: 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    16
#
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    17
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    18
"""
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    19
When editing the hex data in the test cases, this may come in handy:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    20
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    21
1. Start the Python command line interpreter
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    22
2. Paste the following lines there:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    23
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    24
from struct import pack, unpack
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    25
bin2hex = lambda d: ''.join("%02X" % ord(c) for c in d)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    26
hexpack = lambda fmt, *args: bin2hex(pack(fmt, *args))
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    27
hex2bin = lambda h: ''.join([chr(int(h[i*2:i*2+2], 16)) for i in xrange(len(h)/2)])
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    28
hexunpack = lambda fmt, data: unpack(fmt, hex2bin(data))
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    29
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    30
Now you can get the hex representation for any format supported by
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    31
struct.pack() easily. For example, formatting a little-endian unsigned short:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    32
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    33
>>> hexpack('<H', 1234)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    34
'D204'
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    35
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    36
...and conversely:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    37
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    38
>>> hexunpack('<H', 'D204')
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    39
(1234,)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    40
"""
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    41
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    42
import unittest
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    43
import os, shutil
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    44
import sys
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    45
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    46
from testautomation.utils import hex_to_bindata
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    47
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    48
from hcrplugin.hcrrepository import HcrRepository, HcrRecord
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    49
from hcrplugin.hcr_writer import HcrWriter
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    50
from hcrplugin.hcr_reader import HcrReader
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    51
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    52
class TestReadWriteHcrRecords(unittest.TestCase):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    53
    
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    54
    def setUp(self):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    55
        self.writer = HcrWriter()
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    56
        self.reader = HcrReader()
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    57
    
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    58
    def _run_test_read_write_record_no_lsd(self, record, record_bindata):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    59
        self.assertEquals(self.writer.get_record_bindata(record, None), record_bindata)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    60
        self.assertEquals(self.writer.get_record_lsd_bindata(record), None)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    61
        
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    62
        parsed_record, parsed_lsd_pos = self.reader.parse_record_from_bindata(record_bindata)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    63
        self.assertEquals(parsed_record.type,           record.type)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    64
        self.assertEquals(parsed_record.value,          record.value)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    65
        self.assertEquals(parsed_record.category_id,    record.category_id)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    66
        self.assertEquals(parsed_record.element_id,     record.element_id)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    67
        self.assertEquals(parsed_record.flags,          record.flags)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    68
        self.assertEquals(parsed_lsd_pos,               None)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    69
        
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    70
        self.assertEquals(self.reader.parse_record_value_from_lsd_bindata(parsed_record.type, None), None)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    71
    
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    72
    def _run_test_read_write_record_with_lsd(self, record, record_bindata, lsd_pos, lsd_bindata):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    73
        self.assertEquals(self.writer.get_record_bindata(record, lsd_pos), record_bindata)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    74
        self.assertEquals(self.writer.get_record_lsd_bindata(record), lsd_bindata)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    75
        
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    76
        
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    77
        parsed_record, parsed_lsd_pos = self.reader.parse_record_from_bindata(record_bindata)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    78
        self.assertEquals(parsed_record.type,           record.type)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    79
        self.assertEquals(parsed_record.category_id,    record.category_id)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    80
        self.assertEquals(parsed_record.element_id,     record.element_id)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    81
        self.assertEquals(parsed_record.flags,          record.flags)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    82
        self.assertEquals(parsed_lsd_pos,               lsd_pos)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    83
        
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    84
        self.assertEquals(self.reader.parse_record_value_from_lsd_bindata(record.type, lsd_bindata), record.value)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    85
    
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    86
    # -------------------------------------------------------------------------
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    87
    #
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    88
    # -------------------------------------------------------------------------
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    89
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    90
    def test_read_write_bool(self):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    91
        r = HcrRecord(HcrRecord.VALTYPE_BOOL, False, 12, 43, 5)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    92
        d = hex_to_bindata("0C000000 2B000000 08000000 0500 0000 00000000")
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    93
        self._run_test_read_write_record_no_lsd(r, d)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    94
        
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    95
        r = HcrRecord(HcrRecord.VALTYPE_BOOL, True, 0xDEADBEEF, 0xBAADF00D, 0xCAFE)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    96
        d = hex_to_bindata("EFBEADDE 0DF0ADBA 08000000 FECA 0000 01000000")
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    97
        self._run_test_read_write_record_no_lsd(r, d)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    98
    
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    99
    def test_read_write_int8(self):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   100
        r = HcrRecord(HcrRecord.VALTYPE_INT8, -2**7, 12, 43, 5)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   101
        d = hex_to_bindata("0C000000 2B000000 04000000 0500 0000 80FFFFFF")
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   102
        self._run_test_read_write_record_no_lsd(r, d)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   103
        
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   104
        r = HcrRecord(HcrRecord.VALTYPE_INT8, 122, 12, 43, 5)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   105
        d = hex_to_bindata("0C000000 2B000000 04000000 0500 0000 7A000000")
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   106
        self._run_test_read_write_record_no_lsd(r, d)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   107
        
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   108
        r = HcrRecord(HcrRecord.VALTYPE_INT8, 2**7-1, 12, 43, 5)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   109
        d = hex_to_bindata("0C000000 2B000000 04000000 0500 0000 7F000000")
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   110
        self._run_test_read_write_record_no_lsd(r, d)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   111
    
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   112
    def test_read_write_uint8(self):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   113
        r = HcrRecord(HcrRecord.VALTYPE_UINT8, 0, 12, 43, 5)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   114
        d = hex_to_bindata("0C000000 2B000000 40000000 0500 0000 00000000")
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   115
        self._run_test_read_write_record_no_lsd(r, d)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   116
        
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   117
        r = HcrRecord(HcrRecord.VALTYPE_UINT8, 234, 12, 43, 5)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   118
        d = hex_to_bindata("0C000000 2B000000 40000000 0500 0000 EA000000")
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   119
        self._run_test_read_write_record_no_lsd(r, d)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   120
        
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   121
        r = HcrRecord(HcrRecord.VALTYPE_UINT8, 2**8-1, 12, 43, 5)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   122
        d = hex_to_bindata("0C000000 2B000000 40000000 0500 0000 FF000000")
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   123
        self._run_test_read_write_record_no_lsd(r, d)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   124
    
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   125
    def test_read_write_int16(self):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   126
        r = HcrRecord(HcrRecord.VALTYPE_INT16, -2**15, 12, 43, 5)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   127
        d = hex_to_bindata("0C000000 2B000000 02000000 0500 0000 0080FFFF")
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   128
        self._run_test_read_write_record_no_lsd(r, d)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   129
        
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   130
        r = HcrRecord(HcrRecord.VALTYPE_INT16, 12345, 12, 43, 5)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   131
        d = hex_to_bindata("0C000000 2B000000 02000000 0500 0000 39300000")
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   132
        self._run_test_read_write_record_no_lsd(r, d)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   133
        
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   134
        r = HcrRecord(HcrRecord.VALTYPE_INT16, 2**15-1, 12, 43, 5)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   135
        d = hex_to_bindata("0C000000 2B000000 02000000 0500 0000 FF7F0000")
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   136
        self._run_test_read_write_record_no_lsd(r, d)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   137
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   138
    def test_read_write_uint16(self):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   139
        r = HcrRecord(HcrRecord.VALTYPE_UINT16, 0, 12, 43, 5)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   140
        d = hex_to_bindata("0C000000 2B000000 20000000 0500 0000 00000000")
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   141
        self._run_test_read_write_record_no_lsd(r, d)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   142
        
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   143
        r = HcrRecord(HcrRecord.VALTYPE_UINT16, 43215, 12, 43, 5)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   144
        d = hex_to_bindata("0C000000 2B000000 20000000 0500 0000 CFA80000")
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   145
        self._run_test_read_write_record_no_lsd(r, d)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   146
        
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   147
        r = HcrRecord(HcrRecord.VALTYPE_UINT16, 2**16-1, 12, 43, 5)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   148
        d = hex_to_bindata("0C000000 2B000000 20000000 0500 0000 FFFF0000")
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   149
        self._run_test_read_write_record_no_lsd(r, d)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   150
    
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   151
    def test_read_write_int32(self):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   152
        r = HcrRecord(HcrRecord.VALTYPE_INT32, -2**31, 12, 43, 5)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   153
        d = hex_to_bindata("0C000000 2B000000 01000000 0500 0000 00000080")
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   154
        self._run_test_read_write_record_no_lsd(r, d)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   155
        
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   156
        r = HcrRecord(HcrRecord.VALTYPE_INT32, 1234567890, 12, 43, 5)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   157
        d = hex_to_bindata("0C000000 2B000000 01000000 0500 0000 D2029649")
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   158
        self._run_test_read_write_record_no_lsd(r, d)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   159
        
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   160
        r = HcrRecord(HcrRecord.VALTYPE_INT32, 2**31-1, 12, 43, 5)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   161
        d = hex_to_bindata("0C000000 2B000000 01000000 0500 0000 FFFFFF7F")
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   162
        self._run_test_read_write_record_no_lsd(r, d)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   163
    
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   164
    def test_read_write_uint32(self):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   165
        r = HcrRecord(HcrRecord.VALTYPE_UINT32, 0, 12, 43, 5)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   166
        d = hex_to_bindata("0C000000 2B000000 10000000 0500 0000 00000000")
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   167
        self._run_test_read_write_record_no_lsd(r, d)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   168
        
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   169
        r = HcrRecord(HcrRecord.VALTYPE_UINT32, 3123456789, 12, 43, 5)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   170
        d = hex_to_bindata("0C000000 2B000000 10000000 0500 0000 152B2CBA")
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   171
        self._run_test_read_write_record_no_lsd(r, d)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   172
        
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   173
        r = HcrRecord(HcrRecord.VALTYPE_UINT32, 2**32-1, 12, 43, 5)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   174
        d = hex_to_bindata("0C000000 2B000000 10000000 0500 0000 FFFFFFFF")
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   175
        self._run_test_read_write_record_no_lsd(r, d)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   176
    
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   177
    def test_read_write_linaddr(self):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   178
        r = HcrRecord(HcrRecord.VALTYPE_LIN_ADDR, 0, 12, 43, 5)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   179
        d = hex_to_bindata("0C000000 2B000000 00010000 0500 0000 00000000")
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   180
        self._run_test_read_write_record_no_lsd(r, d)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   181
        
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   182
        r = HcrRecord(HcrRecord.VALTYPE_LIN_ADDR, 3123456789, 12, 43, 5)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   183
        d = hex_to_bindata("0C000000 2B000000 00010000 0500 0000 152B2CBA")
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   184
        self._run_test_read_write_record_no_lsd(r, d)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   185
        
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   186
        r = HcrRecord(HcrRecord.VALTYPE_LIN_ADDR, 2**32-1, 12, 43, 5)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   187
        d = hex_to_bindata("0C000000 2B000000 00010000 0500 0000 FFFFFFFF")
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   188
        self._run_test_read_write_record_no_lsd(r, d)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   189
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   190
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   191
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   192
    def test_read_write_int64(self):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   193
        lsd_pos = (1234, 8)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   194
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   195
        record = HcrRecord(HcrRecord.VALTYPE_INT64, -2**63, 12, 43, 5)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   196
        rec_data = hex_to_bindata("0C000000 2B000000 00000001 0500 0800 D2040000")
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   197
        lsd_data = hex_to_bindata("0000 0000 0000 0080")
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   198
        self._run_test_read_write_record_with_lsd(record, rec_data, lsd_pos, lsd_data)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   199
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   200
        record = HcrRecord(HcrRecord.VALTYPE_INT64, 9211026413402420220, 12, 43, 5)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   201
        rec_data = hex_to_bindata("0C000000 2B000000 00000001 0500 0800 D2040000")
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   202
        lsd_data = hex_to_bindata("FC73 978B B823 D47F")
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   203
        self._run_test_read_write_record_with_lsd(record, rec_data, lsd_pos, lsd_data)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   204
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   205
        record = HcrRecord(HcrRecord.VALTYPE_INT64, 2**63-1, 12, 43, 5)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   206
        rec_data = hex_to_bindata("0C000000 2B000000 00000001 0500 0800 D2040000")
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   207
        lsd_data = hex_to_bindata("FFFF FFFF FFFF FF7F")
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   208
        self._run_test_read_write_record_with_lsd(record, rec_data, lsd_pos, lsd_data)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   209
    
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   210
    def test_read_write_uint64(self):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   211
        lsd_pos = (1234, 8)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   212
        record = HcrRecord(HcrRecord.VALTYPE_UINT64, 0, 12, 43, 5)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   213
        rec_data = hex_to_bindata("0C000000 2B000000 00000002 0500 0800 D2040000")
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   214
        lsd_data = hex_to_bindata("0000 0000 0000 0000")
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   215
        self._run_test_read_write_record_with_lsd(record, rec_data, lsd_pos, lsd_data)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   216
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   217
        record = HcrRecord(HcrRecord.VALTYPE_UINT64, 10746170304040729876, 12, 43, 5)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   218
        rec_data = hex_to_bindata("0C000000 2B000000 00000002 0500 0800 D2040000")
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   219
        lsd_data = hex_to_bindata("14FD 32B4 F410 2295")
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   220
        self._run_test_read_write_record_with_lsd(record, rec_data, lsd_pos, lsd_data)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   221
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   222
        record = HcrRecord(HcrRecord.VALTYPE_UINT64, 2**64-1, 12, 43, 5)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   223
        rec_data = hex_to_bindata("0C000000 2B000000 00000002 0500 0800 D2040000")
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   224
        lsd_data = hex_to_bindata("FFFF FFFF FFFF FFFF")
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   225
        self._run_test_read_write_record_with_lsd(record, rec_data, lsd_pos, lsd_data)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   226
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   227
    def test_read_write_arrayint32(self):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   228
        arr = []
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   229
        lsd_pos = (1234, 0)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   230
        record = HcrRecord(HcrRecord.VALTYPE_ARRAY_INT32, arr, 12, 43, 5)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   231
        rec_data = hex_to_bindata("0C000000 2B000000 00000400 0500 0000 D2040000")
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   232
        lsd_data = ""
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   233
        self._run_test_read_write_record_with_lsd(record, rec_data, lsd_pos, lsd_data)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   234
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   235
        arr = [1234]
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   236
        lsd_pos = (1234, 4)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   237
        record = HcrRecord(HcrRecord.VALTYPE_ARRAY_INT32, arr, 12, 43, 5)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   238
        rec_data = hex_to_bindata("0C000000 2B000000 00000400 0500 0400 D2040000")
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   239
        lsd_data = hex_to_bindata("D2040000")
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   240
        self._run_test_read_write_record_with_lsd(record, rec_data, lsd_pos, lsd_data)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   241
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   242
        arr = [-2**31, 0, 1234567890, 2**31-1]
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   243
        lsd_pos = (1234, 4*3)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   244
        record = HcrRecord(HcrRecord.VALTYPE_ARRAY_INT32, arr, 12, 43, 5)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   245
        rec_data = hex_to_bindata("0C000000 2B000000 00000400 0500 0C00 D2040000")
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   246
        lsd_data = hex_to_bindata("00000080 00000000 D2029649 FFFFFF7F")
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   247
        self._run_test_read_write_record_with_lsd(record, rec_data, lsd_pos, lsd_data)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   248
    
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   249
    def test_read_write_arrayuint32(self):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   250
        arr = []
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   251
        lsd_pos = (1234, 0)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   252
        record = HcrRecord(HcrRecord.VALTYPE_ARRAY_UINT32, arr, 12, 43, 5)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   253
        rec_data = hex_to_bindata("0C000000 2B000000 00000800 0500 0000 D2040000")
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   254
        lsd_data = ""
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   255
        self._run_test_read_write_record_with_lsd(record, rec_data, lsd_pos, lsd_data)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   256
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   257
        arr = [1234]
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   258
        lsd_pos = (1234, 4)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   259
        record = HcrRecord(HcrRecord.VALTYPE_ARRAY_UINT32, arr, 12, 43, 5)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   260
        rec_data = hex_to_bindata("0C000000 2B000000 00000800 0500 0400 D2040000")
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   261
        lsd_data = hex_to_bindata("D2040000")
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   262
        self._run_test_read_write_record_with_lsd(record, rec_data, lsd_pos, lsd_data)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   263
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   264
        arr = [0, 3123456789, 2**32-1]
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   265
        lsd_pos = (1234, 4*3)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   266
        record = HcrRecord(HcrRecord.VALTYPE_ARRAY_UINT32, arr, 12, 43, 5)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   267
        rec_data = hex_to_bindata("0C000000 2B000000 00000800 0500 0C00 D2040000")
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   268
        lsd_data = hex_to_bindata("00000000 152B2CBA FFFFFFFF")
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   269
        self._run_test_read_write_record_with_lsd(record, rec_data, lsd_pos, lsd_data)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   270
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   271
    def test_read_write_text8(self):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   272
        string = ''
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   273
        lsd_pos = (1234, 0)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   274
        record = HcrRecord(HcrRecord.VALTYPE_TEXT8, string, 12, 43, 5)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   275
        rec_data = hex_to_bindata("0C000000 2B000000 00000200 0500 0000 D2040000")
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   276
        lsd_data = ""
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   277
        self._run_test_read_write_record_with_lsd(record, rec_data, lsd_pos, lsd_data)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   278
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   279
        string = 'Hello world!!'
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   280
        lsd_pos = (1234, 13)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   281
        record = HcrRecord(HcrRecord.VALTYPE_TEXT8, string, 12, 43, 5)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   282
        rec_data = hex_to_bindata("0C000000 2B000000 00000200 0500 0D00 D2040000")
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   283
        lsd_data = "Hello world!!"
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   284
        self._run_test_read_write_record_with_lsd(record, rec_data, lsd_pos, lsd_data)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   285
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   286
        string = u'Cost 100€'
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   287
        lsd_pos = (1234, 11)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   288
        record = HcrRecord(HcrRecord.VALTYPE_TEXT8, string, 12, 43, 5)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   289
        rec_data = hex_to_bindata("0C000000 2B000000 00000200 0500 0B00 D2040000")
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   290
        lsd_data = "Cost 100" + hex_to_bindata("E2 82 AC")
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   291
        self._run_test_read_write_record_with_lsd(record, rec_data, lsd_pos, lsd_data)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   292
    
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   293
    def test_read_write_bindata(self):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   294
        data = ''
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   295
        lsd_pos = (1234, 0)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   296
        record = HcrRecord(HcrRecord.VALTYPE_BIN_DATA, data, 12, 43, 5)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   297
        rec_data = hex_to_bindata("0C000000 2B000000 00000100 0500 0000 D2040000")
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   298
        lsd_data = ""
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   299
        self._run_test_read_write_record_with_lsd(record, rec_data, lsd_pos, lsd_data)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   300
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   301
        data = hex_to_bindata('00 11 22 33 44 55 66 77 88 99 AA BB CC DD EE FF')
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   302
        lsd_pos = (1234, 16)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   303
        record = HcrRecord(HcrRecord.VALTYPE_BIN_DATA, data, 12, 43, 5)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   304
        rec_data = hex_to_bindata("0C000000 2B000000 00000100 0500 1000 D2040000")
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   305
        lsd_data = hex_to_bindata('00 11 22 33 44 55 66 77 88 99 AA BB CC DD EE FF')
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   306
        self._run_test_read_write_record_with_lsd(record, rec_data, lsd_pos, lsd_data)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   307