blob: 5f72df28612e17bb163b3d9c2611399c48f2a92a [file] [log] [blame]
# Copyright 2014 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import unittest
from memory_inspector.core import backends
class MockDevice(backends.Device): # pylint: disable=W0223
def __init__(self, backend, device_id):
super(MockDevice, self).__init__(backend)
self.device_id = device_id
@property
def name(self):
return "Mock Device %s" % self.device_id
@property
def id(self):
return self.device_id
class MockBackend(backends.Backend):
_SETTINGS = {'key_1': 'key descritpion 1'}
def __init__(self, backend_name):
super(MockBackend, self).__init__(MockBackend._SETTINGS)
self.backend_name = backend_name
def EnumerateDevices(self):
yield MockDevice(self, 'device-1')
yield MockDevice(self, 'device-2')
def ExtractSymbols(self, native_heaps, sym_paths):
raise NotImplementedError()
@property
def name(self):
return self.backend_name
class BackendRegisterTest(unittest.TestCase):
def runTest(self):
mock_backend_1 = MockBackend('mock-backend-1')
mock_backend_2 = MockBackend('mock-backend-2')
self.assertEqual(mock_backend_1.settings['key_1'], 'key descritpion 1')
backends.Register(mock_backend_1)
backends.Register(mock_backend_2)
devices = list(backends.ListDevices())
self.assertEqual(len(devices), 4)
self.assertIsNotNone(backends.GetDevice('mock-backend-1', 'device-1'))
self.assertIsNotNone(backends.GetDevice('mock-backend-1', 'device-2'))
self.assertIsNotNone(backends.GetDevice('mock-backend-2', 'device-1'))
self.assertIsNotNone(backends.GetDevice('mock-backend-2', 'device-1'))
self.assertTrue('key_1' in mock_backend_1.settings)