Exemplo n.º 1
0
 def test_memloc1(self):
     memloc = MemoryLocation(address=0x1234,
                             memorysize=0x78,
                             address_format=16,
                             memorysize_format=8)
     self.assertEqual(memloc.get_address_bytes(), b'\x12\x34')
     self.assertEqual(memloc.get_memorysize_bytes(), b'\x78')
Exemplo n.º 2
0
    def test_get_alfid(self):
        diddef = DynamicDidDefinition()
        diddef.add(source_did=0x1234, position=1, memorysize=1)
        diddef.add(source_did=0x1234, position=2, memorysize=1)
        with self.assertRaises(ValueError):
            diddef.get_alfid()

        diddef = DynamicDidDefinition()
        diddef.add(
            MemoryLocation(address=0x1234,
                           memorysize=1,
                           address_format=16,
                           memorysize_format=8))
        diddef.add(
            MemoryLocation(address=0x1235,
                           memorysize=1,
                           address_format=16,
                           memorysize_format=8))
        alfid = diddef.get_alfid()
        self.assertEqual(alfid.get_byte_as_int(), 0x12)

        diddef = DynamicDidDefinition()
        diddef.add(
            MemoryLocation(address=0x1234,
                           memorysize=1,
                           address_format=16,
                           memorysize_format=8))
        diddef.add(
            MemoryLocation(address=0x1235,
                           memorysize=1,
                           address_format=16,
                           memorysize_format=16))
        with self.assertRaises(ValueError):
            alfid = diddef.get_alfid()
Exemplo n.º 3
0
 def test_memloc_str_repr(self):
     memloc = MemoryLocation(address=0x1234,
                             memorysize=0x78,
                             address_format=16,
                             memorysize_format=8)
     str(memloc)
     memloc.__repr__()
    def _test_define_by_memloc_composite_success_default_format(self):
        diddef = DynamicDidDefinition()
        diddef.add(MemoryLocation(address=0x1122, memorysize=2))
        diddef.add(MemoryLocation(address=0x3344, memorysize=4))
        diddef.add(MemoryLocation(address=0x5566, memorysize=8))

        self.udsclient.set_config('server_address_format', 32)
        self.udsclient.set_config('server_memorysize_format', 16)

        response = self.udsclient.dynamically_define_did(0xf302, diddef)
        self.assertEqual(response.service_data.subfunction_echo, 2)
        self.assertEqual(response.service_data.did_echo, 0xf302)
Exemplo n.º 5
0
    def test_memloc_from_bytes(self):
        memloc = MemoryLocation.from_bytes(address_bytes=b'\x12\x34',
                                           memorysize_bytes=b'\xFF')
        self.assertEqual(memloc.address, 0x1234)
        self.assertEqual(memloc.memorysize, 0xFF)
        self.assertEqual(memloc.address_format, 16)
        self.assertEqual(memloc.memorysize_format, 8)

        memloc = MemoryLocation.from_bytes(address_bytes=b'\x12\x34\x56',
                                           memorysize_bytes=b'\x66\x77\x88')
        self.assertEqual(memloc.address, 0x123456)
        self.assertEqual(memloc.memorysize, 0x667788)
        self.assertEqual(memloc.address_format, 24)
        self.assertEqual(memloc.memorysize_format, 24)
Exemplo n.º 6
0
 def _test_request_upload_wrongservice_exception(self):
     memloc = MemoryLocation(address=0x1234,
                             memorysize=0xFF,
                             address_format=16,
                             memorysize_format=8)
     with self.assertRaises(UnexpectedResponseException) as handle:
         self.udsclient.request_upload(memory_location=memloc)
Exemplo n.º 7
0
 def _test_4byte_block_client_extra_bytes(self):
     memloc = MemoryLocation(address=0x1234,
                             memorysize=4,
                             address_format=16,
                             memorysize_format=8)
     self.udsclient.write_memory_by_address(memloc,
                                            '\x66\x77\x88\x99\xAA\xBB')
Exemplo n.º 8
0
 def _test_request_denied_exception(self):
     with self.assertRaises(NegativeResponseException) as handle:
         self.udsclient.read_memory_by_address(
             MemoryLocation(address=0x1234,
                            memorysize=4,
                            address_format=16,
                            memorysize_format=8))
Exemplo n.º 9
0
	def _test_4byte_block(self):
		memloc = MemoryLocation(address=0x1234, memorysize=4, address_format=16, memorysize_format=8)
		response = self.udsclient.write_memory_by_address(memloc, b'\x66\x77\x88\x99')

		self.assertEqual(response.service_data.alfid_echo, memloc.alfid.get_byte_as_int())
		self.assertEqual(response.service_data.memory_location_echo.address, 0x1234)
		self.assertEqual(response.service_data.memory_location_echo.memorysize, 4)
Exemplo n.º 10
0
 def _test_bad_echo_ali_exception(self):
     with self.assertRaises(UnexpectedResponseException):
         memloc = MemoryLocation(address=0x1234,
                                 memorysize=4,
                                 address_format=16,
                                 memorysize_format=8)
         self.udsclient.write_memory_by_address(memloc, b'\x66\x77\x88\x99')
Exemplo n.º 11
0
 def _test_request_denied_exception(self):
     with self.assertRaises(NegativeResponseException) as handle:
         memloc = MemoryLocation(address=0x1234,
                                 memorysize=4,
                                 address_format=16,
                                 memorysize_format=8)
         self.udsclient.write_memory_by_address(memloc, '\x66\x77\x88\x99')
Exemplo n.º 12
0
 def _test_incomplete_nblock_response_exception(self):
     memloc = MemoryLocation(address=0x1234,
                             memorysize=0xFF,
                             address_format=16,
                             memorysize_format=8)
     with self.assertRaises(InvalidResponseException):
         self.udsclient.request_upload(memory_location=memloc)
Exemplo n.º 13
0
 def _test_wrong_service_exception(self):
     with self.assertRaises(UnexpectedResponseException) as handle:
         memloc = MemoryLocation(address=0x1234,
                                 memorysize=4,
                                 address_format=16,
                                 memorysize_format=8)
         self.udsclient.write_memory_by_address(memloc, '\x66\x77\x88\x99')
Exemplo n.º 14
0
 def _test_request_upload_success_lfid(self):
     memloc = MemoryLocation(address=0x1234,
                             memorysize=0xFF,
                             address_format=16,
                             memorysize_format=8)
     response = self.udsclient.request_upload(memory_location=memloc)
     self.assertEqual(response.service_data.max_length, 0xabcd)
Exemplo n.º 15
0
 def _test_wrong_service_exception(self):
     with self.assertRaises(UnexpectedResponseException) as handle:
         self.udsclient.read_memory_by_address(
             MemoryLocation(address=0x1234,
                            memorysize=4,
                            address_format=16,
                            memorysize_format=8))
Exemplo n.º 16
0
 def _test_request_upload_config_format(self):
     self.udsclient.set_configs({
         u'server_address_format': 32,
         u'server_memorysize_format': 16
     })
     memloc = MemoryLocation(address=0x1234, memorysize=0xFF)
     response = self.udsclient.request_upload(memory_location=memloc)
     self.assertEqual(response.service_data.max_length, 0xabcd)
 def _test_define_by_memloc_success(self):
     memloc = MemoryLocation(address=0x5678,
                             memorysize=0x45,
                             address_format=16,
                             memorysize_format=8)
     response = self.udsclient.dynamically_define_did(0xf301, memloc)
     self.assertEqual(response.service_data.subfunction_echo, 2)
     self.assertEqual(response.service_data.did_echo, 0xf301)
Exemplo n.º 18
0
 def _test_request_upload_invalidservice_no_exception(self):
     self.udsclient.config[u'exception_on_invalid_response'] = False
     memloc = MemoryLocation(address=0x1234,
                             memorysize=0xFF,
                             address_format=16,
                             memorysize_format=8)
     response = self.udsclient.request_upload(memory_location=memloc)
     self.assertFalse(response.valid)
Exemplo n.º 19
0
 def _test_request_invalid_service_no_exception(self):
     self.udsclient.config[u'exception_on_invalid_response'] = False
     response = self.udsclient.read_memory_by_address(
         MemoryLocation(address=0x1234,
                        memorysize=4,
                        address_format=16,
                        memorysize_format=8))
     self.assertFalse(response.valid)
Exemplo n.º 20
0
    def test_type(self):
        diddef = DynamicDidDefinition()

        self.assertFalse(diddef.is_by_source_did())
        self.assertFalse(diddef.is_by_memory_address())
        diddef.add(source_did=0x1234, position=1, memorysize=1)
        diddef.add(source_did=0x1234, position=2, memorysize=1)

        self.assertTrue(diddef.is_by_source_did())
        self.assertFalse(diddef.is_by_memory_address())

        diddef = DynamicDidDefinition()
        diddef.add(MemoryLocation(address=0x1234, memorysize=1))
        diddef.add(MemoryLocation(address=0x1235, memorysize=1))

        self.assertFalse(diddef.is_by_source_did())
        self.assertTrue(diddef.is_by_memory_address())
Exemplo n.º 21
0
 def _test_request_upload_success_spr_no_effect(self):
     with self.udsclient.suppress_positive_response:
         memloc = MemoryLocation(address=0x1234,
                                 memorysize=0xFF,
                                 address_format=16,
                                 memorysize_format=8)
         response = self.udsclient.request_upload(memory_location=memloc)
         self.assertEqual(response.service_data.max_length, 0xabcd)
Exemplo n.º 22
0
	def _test_config_format(self):
		self.udsclient.config['server_address_format'] = 32
		self.udsclient.config['server_memorysize_format'] = 16
		response = self.udsclient.write_memory_by_address(MemoryLocation(address=0x1234, memorysize=4), b'\x66\x77\x88\x99')
		alfid = AddressAndLengthFormatIdentifier(address_format = self.udsclient.config['server_address_format'], memorysize_format=self.udsclient.config['server_memorysize_format'])
		self.assertEqual(response.service_data.alfid_echo, alfid.get_byte_as_int())
		self.assertEqual(response.service_data.memory_location_echo.address, 0x1234)
		self.assertEqual(response.service_data.memory_location_echo.memorysize, 4)
Exemplo n.º 23
0
 def _test_4byte_block(self):
     response = self.udsclient.read_memory_by_address(
         MemoryLocation(address=0x1234,
                        memorysize=4,
                        address_format=16,
                        memorysize_format=8))
     self.assertEqual(response.service_data.memory_block,
                      '\x99\x88\x77\x66')
Exemplo n.º 24
0
 def _test_request_upload_success_dfi(self):
     memloc = MemoryLocation(address=0x1234,
                             memorysize=0xFF,
                             address_format=16,
                             memorysize_format=8)
     dfi = DataFormatIdentifier(compression=5, encryption=2)
     response = self.udsclient.request_upload(memory_location=memloc,
                                              dfi=dfi)
     self.assertEqual(response.service_data.max_length, 0xabcd)
Exemplo n.º 25
0
 def _test_request_invalid_service_no_exception(self):
     self.udsclient.config[u'exception_on_invalid_response'] = False
     memloc = MemoryLocation(address=0x1234,
                             memorysize=4,
                             address_format=16,
                             memorysize_format=8)
     response = self.udsclient.write_memory_by_address(
         memloc, '\x66\x77\x88\x99')
     self.assertFalse(response.valid)
 def _test_request_download_wrongservice_no_exception(self):
     self.udsclient.config['exception_on_unexpected_response'] = False
     memloc = MemoryLocation(address=0x1234,
                             memorysize=0xFF,
                             address_format=16,
                             memorysize_format=8)
     response = self.udsclient.request_download(memory_location=memloc)
     self.assertTrue(response.valid)
     self.assertTrue(response.unexpected)
Exemplo n.º 27
0
 def _test_request_denied_no_exception(self):
     self.udsclient.config[u'exception_on_negative_response'] = False
     response = self.udsclient.read_memory_by_address(
         MemoryLocation(address=0x1234,
                        memorysize=4,
                        address_format=16,
                        memorysize_format=8))
     self.assertTrue(response.valid)
     self.assertFalse(response.positive)
Exemplo n.º 28
0
 def _test_4byte_block_zeropadding_not_ok_exception(self):
     self.udsclient.config[u'tolerate_zero_padding'] = False
     for i in xrange(8):
         with self.assertRaises(UnexpectedResponseException):
             self.udsclient.read_memory_by_address(
                 MemoryLocation(address=0x1234,
                                memorysize=4,
                                address_format=16,
                                memorysize_format=8))
Exemplo n.º 29
0
 def _test_4byte_block_spr_no_effect(self):
     with self.udsclient.suppress_positive_response:
         response = self.udsclient.read_memory_by_address(
             MemoryLocation(address=0x1234,
                            memorysize=4,
                            address_format=16,
                            memorysize_format=8))
         self.assertEqual(response.service_data.memory_block,
                          '\x99\x88\x77\x66')
Exemplo n.º 30
0
 def _test_wrong_service_no_exception(self):
     self.udsclient.config[u'exception_on_unexpected_response'] = False
     response = self.udsclient.read_memory_by_address(
         MemoryLocation(address=0x1234,
                        memorysize=4,
                        address_format=16,
                        memorysize_format=8))
     self.assertTrue(response.valid)
     self.assertTrue(response.unexpected)