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

Side by Side Diff: tools/telemetry/telemetry/core/platform/linux_based_platform_backend_unittest.py

Issue 1106043003: [Telemetry] Improve _GetProcJiffies operation with using grep. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Grep for 'jiffies' and use regex for parsing Created 5 years, 8 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
OLDNEW
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
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
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})
OLDNEW
« no previous file with comments | « tools/telemetry/telemetry/core/platform/linux_based_platform_backend.py ('k') | tools/telemetry/unittest_data/timer_list » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698