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

Side by Side Diff: systrace/systrace/tracing_agents/battor_trace_agent_unittest.py

Issue 2276263003: Pass in custom options to Systrace agents (Closed) Base URL: https://chromium.googlesource.com/external/github.com/catapult-project/catapult.git@master
Patch Set: Set categories based on target devices and revised comments Created 4 years, 3 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 #!/usr/bin/env python 1 #!/usr/bin/env python
2 2
3 # Copyright 2016 The Chromium Authors. All rights reserved. 3 # Copyright 2016 The Chromium Authors. All rights reserved.
4 # Use of this source code is governed by a BSD-style license that can be 4 # Use of this source code is governed by a BSD-style license that can be
5 # found in the LICENSE file. 5 # found in the LICENSE file.
6 6
7 from collections import namedtuple 7 from collections import namedtuple
8 import unittest 8 import unittest
9 import logging 9 import logging
10 10
11 from systrace import decorators 11 from systrace import decorators
12 from systrace.tracing_agents import battor_trace_agent 12 from systrace.tracing_agents import battor_trace_agent
13 from battor import battor_wrapper 13 from battor import battor_wrapper
14 from devil.android import battery_utils 14 from devil.android import battery_utils
15 from devil.utils import battor_device_mapping 15 from devil.utils import battor_device_mapping
16 16
17 17
18 mock_opts = namedtuple('mock_opts', ['target', 'device_serial_number', 18 mock_opts = namedtuple('mock_opts', ['target', 'device_serial_number',
19 'hub_types', 'battor_path', 19 'hub_types', 'battor_path',
20 'update_map', 'serial_map']) 20 'update_map', 'serial_map'])
21 OPTIONS = mock_opts('android', 'Phn2', ['plugable_7port'], 21 OPTIONS = mock_opts('android', 'Phn2', ['plugable_7port'],
22 None, False, __file__) 22 None, False, __file__)
23 CATEGORIES = None 23 CATEGORIES = None
24 24
25
25 def raise_error(*args, **kwargs): 26 def raise_error(*args, **kwargs):
26 del args 27 del args
27 del kwargs 28 del kwargs
28 raise RuntimeError('Should not call this function in the test') 29 raise RuntimeError('Should not call this function in the test')
29 30
30 battor_device_mapping.GenerateSerialMapFile = raise_error 31 battor_device_mapping.GenerateSerialMapFile = raise_error
31 32
32
33 def setup_battor_test(StartShell_error, StartTracing_error, 33 def setup_battor_test(StartShell_error, StartTracing_error,
34 StopTracing_error, CollectTraceData_error): 34 StopTracing_error, CollectTraceData_error):
35 wrapper = MockBattorWrapper(StartShell_error, StartTracing_error, 35 wrapper = MockBattorWrapper(StartShell_error, StartTracing_error,
36 StopTracing_error, CollectTraceData_error) 36 StopTracing_error, CollectTraceData_error)
37 def wrapper_maker(*args, **kwargs): 37 def wrapper_maker(*args, **kwargs):
38 del args 38 del args
39 del kwargs 39 del kwargs
40 return wrapper 40 return wrapper
41 battor_wrapper.BattorWrapper = wrapper_maker 41 battor_wrapper.BattorWrapper = wrapper_maker
42 42
43
43 class MockBattorWrapper(object): 44 class MockBattorWrapper(object):
44 def __init__(self, StartShell_error=False, StartTracing_error=False, 45 def __init__(self, StartShell_error=False, StartTracing_error=False,
45 StopTracing_error=False, CollectTraceData_error=False): 46 StopTracing_error=False, CollectTraceData_error=False):
46 self._StartShell_error = StartShell_error 47 self._StartShell_error = StartShell_error
47 self._StartTracing_error = StartTracing_error 48 self._StartTracing_error = StartTracing_error
48 self._StopTracing_error = StopTracing_error 49 self._StopTracing_error = StopTracing_error
49 self._CollectTraceData_error = CollectTraceData_error 50 self._CollectTraceData_error = CollectTraceData_error
50 self._running = False 51 self._running = False
51 self._tracing = False 52 self._tracing = False
52 self._output = False 53 self._output = False
(...skipping 22 matching lines...) Expand all
75 self._running = False 76 self._running = False
76 self._tracing = False 77 self._tracing = False
77 self._output = True 78 self._output = True
78 79
79 def CollectTraceData(self): 80 def CollectTraceData(self):
80 assert self._output 81 assert self._output
81 if self._CollectTraceData_error: 82 if self._CollectTraceData_error:
82 raise RuntimeError('Simulated error in CollectTraceData') 83 raise RuntimeError('Simulated error in CollectTraceData')
83 return 'traceout1\ntraceout2' 84 return 'traceout1\ntraceout2'
84 85
86
85 class MockBatteryUtils(object): 87 class MockBatteryUtils(object):
86 def __init__(self, _): 88 def __init__(self, _):
87 self._is_charging = True 89 self._is_charging = True
88 90
89 def GetCharging(self): 91 def GetCharging(self):
90 return self._is_charging 92 return self._is_charging
91 93
92 def SetCharging(self, value): 94 def SetCharging(self, value):
93 self._is_charging = value 95 self._is_charging = value
94 96
97
95 battery_utils.BatteryUtils = MockBatteryUtils 98 battery_utils.BatteryUtils = MockBatteryUtils
96 99
100
97 class BattorAgentTest(unittest.TestCase): 101 class BattorAgentTest(unittest.TestCase):
98 102
99 @decorators.HostOnlyTest 103 @decorators.HostOnlyTest
100 def test_trace_double_start(self): 104 def test_trace_double_start(self):
101 setup_battor_test(StartShell_error=False, StartTracing_error=False, 105 setup_battor_test(StartShell_error=False, StartTracing_error=False,
102 StopTracing_error=False, CollectTraceData_error=False) 106 StopTracing_error=False, CollectTraceData_error=False)
103 agent = battor_trace_agent.BattorTraceAgent() 107 agent = battor_trace_agent.BattorTraceAgent()
104 agent.StartAgentTracing(OPTIONS, CATEGORIES) 108 agent.StartAgentTracing(OPTIONS, CATEGORIES)
105 self.assertRaises(AssertionError, 109 self.assertRaises(AssertionError,
106 lambda: agent.StartAgentTracing(OPTIONS, CATEGORIES)) 110 lambda: agent.StartAgentTracing(OPTIONS, CATEGORIES))
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
141 @decorators.HostOnlyTest 145 @decorators.HostOnlyTest
142 def test_trace_complete(self): 146 def test_trace_complete(self):
143 setup_battor_test(StartShell_error=False, StartTracing_error=False, 147 setup_battor_test(StartShell_error=False, StartTracing_error=False,
144 StopTracing_error=False, CollectTraceData_error=False) 148 StopTracing_error=False, CollectTraceData_error=False)
145 agent = battor_trace_agent.BattorTraceAgent() 149 agent = battor_trace_agent.BattorTraceAgent()
146 agent.StartAgentTracing(OPTIONS, CATEGORIES) 150 agent.StartAgentTracing(OPTIONS, CATEGORIES)
147 agent.StopAgentTracing() 151 agent.StopAgentTracing()
148 x = agent.GetResults() 152 x = agent.GetResults()
149 self.assertEqual(x.raw_data, 'traceout1\ntraceout2') 153 self.assertEqual(x.raw_data, 'traceout1\ntraceout2')
150 154
155
151 if __name__ == "__main__": 156 if __name__ == "__main__":
152 logging.getLogger().setLevel(logging.DEBUG) 157 logging.getLogger().setLevel(logging.DEBUG)
153 unittest.main(verbosity=2) 158 unittest.main(verbosity=2)
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698