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

Unified Diff: tracing/tracing/trace_data/trace_data_unittest.py

Issue 2725913002: [Catapult][Telemetry] Move trace_data from telemetry/ to tracing/ (Closed)
Patch Set: Move from common to tracing Created 3 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 side-by-side diff with in-line comments
Download patch
« tracing/bin/run_py_tests ('K') | « tracing/tracing/trace_data/trace_data.py ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tracing/tracing/trace_data/trace_data_unittest.py
diff --git a/tracing/tracing/trace_data/trace_data_unittest.py b/tracing/tracing/trace_data/trace_data_unittest.py
new file mode 100644
index 0000000000000000000000000000000000000000..eea6cb20321bdce562d2f7dfdd094fe72ed61131
--- /dev/null
+++ b/tracing/tracing/trace_data/trace_data_unittest.py
@@ -0,0 +1,103 @@
+# Copyright 2014 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import datetime
+import exceptions
+import os
+import shutil
+import tempfile
+import unittest
+
+import trace_data
+from tracing_build import html2trace
+
+
+class TraceDataTest(unittest.TestCase):
+ def testSerialize(self):
+ test_dir = tempfile.mkdtemp()
+ trace_path = os.path.join(test_dir, 'test_trace.json')
+ try:
+ ri = trace_data.CreateTraceDataFromRawData({'traceEvents': [1, 2, 3]})
+ ri.Serialize(trace_path)
+ with open(trace_path) as f:
+ json_traces = html2trace.ReadTracesFromHTMLFilePath(f)
+ self.assertEqual(json_traces, [{'traceEvents': [1, 2, 3]}])
+ finally:
+ shutil.rmtree(test_dir)
+
+ def testEmptyArrayValue(self):
+ # We can import empty lists and empty string.
+ d = trace_data.CreateTraceDataFromRawData([])
+ self.assertFalse(d.HasTracesFor(trace_data.CHROME_TRACE_PART))
+
+ def testInvalidTrace(self):
+ with self.assertRaises(AssertionError):
+ trace_data.CreateTraceDataFromRawData({'hello': 1})
+
+ def testListForm(self):
+ d = trace_data.CreateTraceDataFromRawData([{'ph': 'B'}])
+ self.assertTrue(d.HasTracesFor(trace_data.CHROME_TRACE_PART))
+ events = d.GetTracesFor(trace_data.CHROME_TRACE_PART)[0].get(
+ 'traceEvents', [])
+ self.assertEquals(1, len(events))
+
+ def testStringForm(self):
+ d = trace_data.CreateTraceDataFromRawData('[{"ph": "B"}]')
+ self.assertTrue(d.HasTracesFor(trace_data.CHROME_TRACE_PART))
+ events = d.GetTracesFor(trace_data.CHROME_TRACE_PART)[0].get(
+ 'traceEvents', [])
+ self.assertEquals(1, len(events))
+
+
+class TraceDataBuilderTest(unittest.TestCase):
+ def testBasicChrome(self):
+ builder = trace_data.TraceDataBuilder()
+ builder.AddTraceFor(trace_data.CHROME_TRACE_PART,
+ {'traceEvents': [1, 2, 3]})
+ builder.AddTraceFor(trace_data.TAB_ID_PART, ['tab-7'])
+ builder.AddTraceFor(trace_data.BATTOR_TRACE_PART, 'battor data here')
+
+ d = builder.AsData()
+ self.assertTrue(d.HasTracesFor(trace_data.CHROME_TRACE_PART))
+ self.assertTrue(d.HasTracesFor(trace_data.TAB_ID_PART))
+ self.assertTrue(d.HasTracesFor(trace_data.BATTOR_TRACE_PART))
+
+ self.assertRaises(Exception, builder.AsData)
+
+ def testSetTraceFor(self):
+ telemetry_trace = {
+ 'traceEvents': [1, 2, 3],
+ 'metadata': {
+ 'field1': 'value1'
+ }
+ }
+
+ builder = trace_data.TraceDataBuilder()
+ builder.AddTraceFor(trace_data.TELEMETRY_PART, telemetry_trace)
+ d = builder.AsData()
+
+ self.assertEqual(d.GetTracesFor(trace_data.TELEMETRY_PART),
+ [telemetry_trace])
+
+ def testSetTraceForRaisesWithInvalidPart(self):
+ builder = trace_data.TraceDataBuilder()
+
+ self.assertRaises(exceptions.AssertionError,
+ lambda: builder.AddTraceFor('not_a_trace_part', {}))
+
+ def testSetTraceForRaisesWithInvalidTrace(self):
+ builder = trace_data.TraceDataBuilder()
+
+ self.assertRaises(
+ exceptions.AssertionError,
+ lambda: builder.AddTraceFor(trace_data.TELEMETRY_PART,
+ datetime.time.min))
+
+ def testSetTraceForRaisesAfterAsData(self):
+ builder = trace_data.TraceDataBuilder()
+ builder.AsData()
+
+ self.assertRaises(
+ exceptions.Exception,
+ lambda: builder.AddTraceFor(trace_data.TELEMETRY_PART, {}))
« tracing/bin/run_py_tests ('K') | « tracing/tracing/trace_data/trace_data.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698