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

Side by Side Diff: tools/telemetry/telemetry/tracing_backend_unittest.py

Issue 12082091: [telemetry] Add TraceResult as return value from tracing, and placeholder trace_event_importer. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: nits Created 7 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
1 # Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 # Copyright (c) 2012 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 4
5 import cStringIO
5 import json 6 import json
6 import os 7 import os
8 import unittest
7 9
8 from telemetry import tab_test_case 10 from telemetry import tab_test_case
11 from telemetry import tracing_backend
9 from telemetry import util 12 from telemetry import util
10 13
11 14
12 class TracingBackendTest(tab_test_case.TabTestCase): 15 class TracingBackendTest(tab_test_case.TabTestCase):
13 def _StartServer(self): 16 def _StartServer(self):
14 base_dir = os.path.dirname(__file__) 17 base_dir = os.path.dirname(__file__)
15 self._browser.SetHTTPServerDirectory(os.path.join(base_dir, '..', 18 self._browser.SetHTTPServerDirectory(os.path.join(base_dir, '..',
16 'unittest_data')) 19 'unittest_data'))
17 20
18 def _WaitForAnimationFrame(self): 21 def _WaitForAnimationFrame(self):
19 def _IsDone(): 22 def _IsDone():
20 js_is_done = """done""" 23 js_is_done = """done"""
21 return bool(self._tab.EvaluateJavaScript(js_is_done)) 24 return bool(self._tab.EvaluateJavaScript(js_is_done))
22 util.WaitFor(_IsDone, 5) 25 util.WaitFor(_IsDone, 5)
23 26
24 def testGotTrace(self): 27 def testGotTrace(self):
25 self._StartServer() 28 self._StartServer()
26 self._browser.StartTracing() 29 self._browser.StartTracing()
27 self._browser.http_server.UrlOf('image.png') 30 self._browser.http_server.UrlOf('image.png')
28 self.assertTrue(self._browser.supports_tracing) 31 self.assertTrue(self._browser.supports_tracing)
29 self._browser.StopTracing() 32 self._browser.StopTracing()
30 trace = self._browser.GetTrace() 33 model = self._browser.GetTraceResultAndReset().AsTimelineModel()
31 json_trace = json.loads(trace) 34 events = model.GetAllEvents()
32 self.assertTrue('traceEvents' in json_trace) 35 assert len(events) > 0
33 self.assertTrue(json_trace['traceEvents']) 36
37 class TracingResultImplTest(unittest.TestCase):
38 def testWrite1(self):
39 ri = tracing_backend.TraceResultImpl([])
40 f = cStringIO.StringIO()
41 ri.Serialize(f)
42 v = f.getvalue()
43
44 j = json.loads(v)
45 assert 'traceEvents' in j
46 self.assertEquals(j['traceEvents'], [])
47
48 def testWrite2(self):
49 ri = tracing_backend.TraceResultImpl([
50 '"foo"',
51 '"bar"'])
52 f = cStringIO.StringIO()
53 ri.Serialize(f)
54 v = f.getvalue()
55
56 j = json.loads(v)
57 assert 'traceEvents' in j
58 self.assertEquals(j['traceEvents'], ['foo', 'bar'])
59
60 def testWrite3(self):
61 ri = tracing_backend.TraceResultImpl([
62 '"foo"',
63 '"bar"',
64 '"baz"'])
65 f = cStringIO.StringIO()
66 ri.Serialize(f)
67 v = f.getvalue()
68
69 j = json.loads(v)
70 assert 'traceEvents' in j
71 self.assertEquals(j['traceEvents'],
72 ['foo', 'bar', 'baz'])
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698