Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(368)

Side by Side Diff: tools/memory_inspector/tests/core_test.py

Issue 167223002: Fix directory layout for tools/memory_inspector tests. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Nit Created 6 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 #!/usr/bin/python
2 # Copyright 2014 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file.
5
6 """Unittests for the core backends modules."""
7
8 import logging
9 import os
10 import sys
11 import unittest
12
13 sys.path.append(os.path.abspath(os.path.join(__file__, os.pardir, os.pardir)))
14
15 from memory_inspector.core import backends
16 from memory_inspector.core import memory_map
17 from memory_inspector.core import stacktrace
18
19
20 class MockDevice(backends.Device): # pylint: disable=W0223
21 def __init__(self, backend, device_id):
22 super(MockDevice, self).__init__(backend)
23 self.device_id = device_id
24
25 @property
26 def name(self):
27 return "Mock Device %s" % self.device_id
28
29 @property
30 def id(self):
31 return self.device_id
32
33
34 class MockBackend(backends.Backend):
35 _SETTINGS = {'key_1': 'key descritpion 1'}
36 def __init__(self, backend_name):
37 super(MockBackend, self).__init__(MockBackend._SETTINGS)
38 self.backend_name = backend_name
39
40 def EnumerateDevices(self):
41 yield MockDevice(self, 'device-1')
42 yield MockDevice(self, 'device-2')
43
44 @property
45 def name(self):
46 return self.backend_name
47
48
49 class BackendRegisterTest(unittest.TestCase):
50 def runTest(self):
51 mock_backend_1 = MockBackend('mock-backend-1')
52 mock_backend_2 = MockBackend('mock-backend-2')
53 self.assertEqual(mock_backend_1.settings['key_1'], 'key descritpion 1')
54 backends.Register(mock_backend_1)
55 backends.Register(mock_backend_2)
56 devices = list(backends.ListDevices())
57 self.assertEqual(len(devices), 4)
58 self.assertIsNotNone(backends.GetDevice('mock-backend-1', 'device-1'))
59 self.assertIsNotNone(backends.GetDevice('mock-backend-1', 'device-2'))
60 self.assertIsNotNone(backends.GetDevice('mock-backend-2', 'device-1'))
61 self.assertIsNotNone(backends.GetDevice('mock-backend-2', 'device-1'))
62 self.assertTrue('key_1' in mock_backend_1.settings)
63
64
65 class MemoryMapTest(unittest.TestCase):
66 def runTest(self):
67 mmap = memory_map.Map()
68 map_entry1 = memory_map.MapEntry(4096, 8191, 'rw--', '/foo', 0)
69 map_entry2 = memory_map.MapEntry(65536, 81919, 'rw--', '/bar', 4096)
70
71 # Test the de-offset logic.
72 self.assertEqual(map_entry1.GetRelativeOffset(4096), 0)
73 self.assertEqual(map_entry1.GetRelativeOffset(4100), 4)
74 self.assertEqual(map_entry2.GetRelativeOffset(65536), 4096)
75
76 # Test the page-resident logic.
77 map_entry2.resident_pages = [5] # 5 -> 101b.
78 self.assertTrue(map_entry2.IsPageResident(0))
79 self.assertFalse(map_entry2.IsPageResident(1))
80 self.assertTrue(map_entry2.IsPageResident(2))
81
82 # Test the lookup logic.
83 mmap.Add(map_entry1)
84 mmap.Add(map_entry2)
85 self.assertIsNone(mmap.Lookup(1024))
86 self.assertEqual(mmap.Lookup(4096), map_entry1)
87 self.assertEqual(mmap.Lookup(6000), map_entry1)
88 self.assertEqual(mmap.Lookup(8191), map_entry1)
89 self.assertIsNone(mmap.Lookup(8192))
90 self.assertIsNone(mmap.Lookup(65535))
91 self.assertEqual(mmap.Lookup(65536), map_entry2)
92 self.assertEqual(mmap.Lookup(67000), map_entry2)
93 self.assertEqual(mmap.Lookup(81919), map_entry2)
94 self.assertIsNone(mmap.Lookup(81920))
95
96
97 class StacktraceTest(unittest.TestCase):
98 def runTest(self):
99 st = stacktrace.Stacktrace()
100 frame_1 = stacktrace.Frame(20)
101 frame_2 = stacktrace.Frame(24)
102 frame_2.SetExecFileInfo('/foo/bar.so', 0)
103 self.assertEqual(frame_2.exec_file_name, 'bar.so')
104 st.Add(frame_1)
105 st.Add(frame_1)
106 st.Add(frame_2)
107 st.Add(frame_1)
108 self.assertEqual(st.depth, 4)
109
110
111 if __name__ == '__main__':
112 logging.basicConfig(
113 level=logging.DEBUG if '-v' in sys.argv else logging.ERROR,
114 format='%(levelname)5s %(filename)15s(%(lineno)3d): %(message)s')
115 unittest.main()
OLDNEW
« no previous file with comments | « tools/memory_inspector/tests/__init__.py ('k') | tools/memory_inspector/tests/mock_adb/__init__.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698