1 # Copyright 2014 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file.
7 from memory_inspector.core import backends
10 class MockDevice(backends.Device): # pylint: disable=W0223
11 def __init__(self, backend, device_id):
12 super(MockDevice, self).__init__(backend)
13 self.device_id = device_id
17 return "Mock Device %s" % self.device_id
24 class MockBackend(backends.Backend):
25 _SETTINGS = {'key_1': 'key descritpion 1'}
27 def __init__(self, backend_name):
28 super(MockBackend, self).__init__(MockBackend._SETTINGS)
29 self.backend_name = backend_name
31 def EnumerateDevices(self):
32 yield MockDevice(self, 'device-1')
33 yield MockDevice(self, 'device-2')
35 def ExtractSymbols(self, native_heaps, sym_paths):
36 raise NotImplementedError()
40 return self.backend_name
43 class BackendRegisterTest(unittest.TestCase):
45 mock_backend_1 = MockBackend('mock-backend-1')
46 mock_backend_2 = MockBackend('mock-backend-2')
47 self.assertEqual(mock_backend_1.settings['key_1'], 'key descritpion 1')
48 backends.Register(mock_backend_1)
49 backends.Register(mock_backend_2)
50 devices = list(backends.ListDevices())
51 self.assertEqual(len(devices), 4)
52 self.assertIsNotNone(backends.GetDevice('mock-backend-1', 'device-1'))
53 self.assertIsNotNone(backends.GetDevice('mock-backend-1', 'device-2'))
54 self.assertIsNotNone(backends.GetDevice('mock-backend-2', 'device-1'))
55 self.assertIsNotNone(backends.GetDevice('mock-backend-2', 'device-1'))
56 self.assertTrue('key_1' in mock_backend_1.settings)