OLD | NEW |
---|---|
1 # Copyright 2013 The Chromium Authors. All rights reserved. | 1 # Copyright 2013 The Chromium Authors. All rights reserved. |
2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
4 import logging | 4 import logging |
5 import os | 5 import os |
6 import unittest | 6 import unittest |
7 | 7 |
8 from telemetry.core.platform import linux_based_platform_backend | 8 from telemetry.core.platform import linux_based_platform_backend |
9 from telemetry.core import util | 9 from telemetry.core import util |
10 | 10 |
11 util.AddDirToPythonPath(util.GetTelemetryDir(), 'third_party', 'mock') | |
12 import mock # pylint: disable=import-error | |
13 | |
14 | |
11 | 15 |
12 class TestBackend(linux_based_platform_backend.LinuxBasedPlatformBackend): | 16 class TestBackend(linux_based_platform_backend.LinuxBasedPlatformBackend): |
13 | 17 |
14 # pylint: disable=W0223 | 18 # pylint: disable=W0223 |
15 | 19 |
16 def __init__(self): | 20 def __init__(self): |
17 super(TestBackend, self).__init__() | 21 super(TestBackend, self).__init__() |
18 self._mock_files = {} | 22 self._mock_files = {} |
19 | 23 |
20 def SetMockFile(self, filename, output): | 24 def SetMockFile(self, filename, output): |
(...skipping 19 matching lines...) Expand all Loading... | |
40 | 44 |
41 backend = TestBackend() | 45 backend = TestBackend() |
42 self.SetMockFileInBackend(backend, 'stat', '/proc/1/stat') | 46 self.SetMockFileInBackend(backend, 'stat', '/proc/1/stat') |
43 result = backend.GetCpuStats(1) | 47 result = backend.GetCpuStats(1) |
44 self.assertEquals(result, {'CpuProcessTime': 22.0}) | 48 self.assertEquals(result, {'CpuProcessTime': 22.0}) |
45 | 49 |
46 def testGetCpuTimestampBasic(self): | 50 def testGetCpuTimestampBasic(self): |
47 if not linux_based_platform_backend.resource: | 51 if not linux_based_platform_backend.resource: |
48 logging.warning('Test not supported') | 52 logging.warning('Test not supported') |
49 return | 53 return |
50 | 54 jiffies_grep_string = """ |
51 backend = TestBackend() | 55 jiffies |
52 self.SetMockFileInBackend(backend, 'timer_list', '/proc/timer_list') | 56 jiffies a1111 |
53 result = backend.GetCpuTimestamp() | 57 jiffies: 10505463300 |
aiolos (Not reviewing)
2015/04/25 03:03:16
nit: Could you add a line for '.last_jiffies' like
nednguyen
2015/04/25 04:10:23
Done.
| |
54 self.assertEquals(result, {'TotalTime': 105054633.0}) | 58 jiffies: 10505463333 |
59 """ | |
60 with mock.patch.object( | |
61 linux_based_platform_backend.LinuxBasedPlatformBackend, | |
62 'RunCommand', return_value=jiffies_grep_string) as mock_method: | |
63 backend = linux_based_platform_backend.LinuxBasedPlatformBackend() | |
64 result = backend.GetCpuTimestamp() | |
65 self.assertEquals(result, {'TotalTime': 105054633.0}) | |
66 mock_method.assert_call_once_with( | |
67 ['grep', '-m', '1', 'jiffies:','/proc/timer_list']) | |
55 | 68 |
56 def testGetMemoryStatsBasic(self): | 69 def testGetMemoryStatsBasic(self): |
57 if not linux_based_platform_backend.resource: | 70 if not linux_based_platform_backend.resource: |
58 logging.warning('Test not supported') | 71 logging.warning('Test not supported') |
59 return | 72 return |
60 | 73 |
61 backend = TestBackend() | 74 backend = TestBackend() |
62 self.SetMockFileInBackend(backend, 'stat', '/proc/1/stat') | 75 self.SetMockFileInBackend(backend, 'stat', '/proc/1/stat') |
63 self.SetMockFileInBackend(backend, 'status', '/proc/1/status') | 76 self.SetMockFileInBackend(backend, 'status', '/proc/1/status') |
64 self.SetMockFileInBackend(backend, 'smaps', '/proc/1/smaps') | 77 self.SetMockFileInBackend(backend, 'smaps', '/proc/1/smaps') |
(...skipping 12 matching lines...) Expand all Loading... | |
77 backend = TestBackend() | 90 backend = TestBackend() |
78 self.SetMockFileInBackend(backend, 'stat', '/proc/1/stat') | 91 self.SetMockFileInBackend(backend, 'stat', '/proc/1/stat') |
79 self.SetMockFileInBackend(backend, 'status_nohwm', '/proc/1/status') | 92 self.SetMockFileInBackend(backend, 'status_nohwm', '/proc/1/status') |
80 self.SetMockFileInBackend(backend, 'smaps', '/proc/1/smaps') | 93 self.SetMockFileInBackend(backend, 'smaps', '/proc/1/smaps') |
81 result = backend.GetMemoryStats(1) | 94 result = backend.GetMemoryStats(1) |
82 self.assertEquals(result, {'PrivateDirty': 5324800, | 95 self.assertEquals(result, {'PrivateDirty': 5324800, |
83 'VM': 1025978368, | 96 'VM': 1025978368, |
84 'VMPeak': 1025978368, | 97 'VMPeak': 1025978368, |
85 'WorkingSetSize': 84000768, | 98 'WorkingSetSize': 84000768, |
86 'WorkingSetSizePeak': 84000768}) | 99 'WorkingSetSizePeak': 84000768}) |
OLD | NEW |