Index: mojo/devtools/common/devtoolslib/benchmark_unittest.py |
diff --git a/mojo/devtools/common/devtoolslib/benchmark_unittest.py b/mojo/devtools/common/devtoolslib/benchmark_unittest.py |
new file mode 100644 |
index 0000000000000000000000000000000000000000..625704134d043ffd0fb10128edf48d83d087771f |
--- /dev/null |
+++ b/mojo/devtools/common/devtoolslib/benchmark_unittest.py |
@@ -0,0 +1,44 @@ |
+# Copyright 2015 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. |
+ |
+"""Tests for the logic that drives runs of the benchmarking mojo app and parses |
+its output.""" |
+ |
+import imp |
+import os.path |
+import sys |
+import unittest |
+ |
+try: |
+ imp.find_module("devtoolslib") |
+except ImportError: |
+ sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) |
+ |
+from devtoolslib import benchmark |
+ |
+ |
+class BenchmarkTest(unittest.TestCase): |
+ """Tests the benchmark module.""" |
+ |
+ def test_parse_measurement_results_empty(self): |
+ """Tests parsing empty output.""" |
+ output = """""" |
+ results = benchmark._parse_measurement_results(output) |
+ self.assertEquals({}, results) |
+ |
+ def test_parse_measurement_results_typical(self): |
+ """Tests parsing typical output with unrelated log entries.""" |
+ output = """ |
+[INFO:network_fetcher.cc(322)] Caching mojo app http://127.0.0.1:31839/benchmark.mojo at /usr/local/google/home/user/.mojo_url_response_disk_cache/cache/4F6FAE752C7958AE122C6A2D778F2014C15578250B3C6746D54B99E4F15A4458/4F6FAE752C7958AE122C6A2D778F2014C15578250B3C6746D54B99E4F15A4458 |
+[INFO:network_fetcher.cc(322)] Caching mojo app http://127.0.0.1:31839/dart_traced_application.mojo at /usr/local/google/home/user/.mojo_url_response_disk_cache/cache/AB290478907A1DC5434CBCFD053BE2E74254D882644E76B3C28E3E7E1BCDCC3D/AB290478907A1DC5434CBCFD053BE2E74254D882644E76B3C28E3E7E1BCDCC3D |
+Observatory listening on http://127.0.0.1:38128 |
+[1109/155613:WARNING:event.cc(234)] Ignoring incorrect complete event (no duration) |
+measurement: time_until/a/b 42.5 |
+measurement: time_between/a/b/c/d 21.1 |
+measurement: time_between/a/b/e/f FAILED |
+some measurements failed |
+""" |
+ results = benchmark._parse_measurement_results(output) |
+ self.assertEquals({'time_until/a/b': 42.5, |
+ 'time_between/a/b/c/d': 21.1}, results) |