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

Unified Diff: tools/bisect-perf-regression_test.py

Issue 288843002: Fix bisect script to match a results with {mean, stddev} format. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 7 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
« no previous file with comments | « tools/bisect-perf-regression.py ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tools/bisect-perf-regression_test.py
diff --git a/tools/bisect-perf-regression_test.py b/tools/bisect-perf-regression_test.py
index 7a50316c4520a2bb6ec8486ebd1018a5a6815a33..16047acc1caaa9fb88d85ddeca8286895e0002c3 100644
--- a/tools/bisect-perf-regression_test.py
+++ b/tools/bisect-perf-regression_test.py
@@ -9,6 +9,15 @@ import unittest
bisect_perf_module = __import__('bisect-perf-regression')
+RESULTS_OUTPUT = """RESULT write_operations: write_operations= 23089 count
+RESULT read_bytes_gpu: read_bytes_gpu= 35201 kb
+RESULT write_bytes_gpu: write_bytes_gpu= 542 kb
+RESULT telemetry_page_measurement_results: num_failed= 0 count
+RESULT telemetry_page_measurement_results: num_errored= 0 count
+*RESULT Total: Total_ref= %(value)s
+"""
+
+
class BisectPerfRegressionTest(unittest.TestCase):
"""Test case for top-level functions in the bisect-perf-regrssion module."""
@@ -128,6 +137,108 @@ vars = {
self.assertEqual(3.0, bisect_perf_module.CalculateRelativeChange(1, -2))
self.assertEqual(1.0, bisect_perf_module.CalculateRelativeChange(-1, -2))
+ def testTryParseResultValuesFromOutputWithSingleValue(self):
+ """Tests result pattern <*>RESULT <graph>: <trace>= <value>"""
+ bisect_options = bisect_perf_module.BisectOptions()
+ bisect_instance = bisect_perf_module.BisectPerformanceMetrics(
+ None, bisect_options)
+ metrics = ['Total', 'Total_ref']
+ self.assertEqual(
+ [66.88], bisect_instance.TryParseResultValuesFromOutput(
+ metrics, RESULTS_OUTPUT % {'value': '66.88 kb'}))
+ self.assertEqual(
+ [66.88], bisect_instance.TryParseResultValuesFromOutput(
+ metrics, RESULTS_OUTPUT % {'value': '66.88kb'}))
+ self.assertEqual(
+ [66.88], bisect_instance.TryParseResultValuesFromOutput(
+ metrics, RESULTS_OUTPUT % {'value': ' 66.88 '}))
+ self.assertEqual(
+ [-66.88], bisect_instance.TryParseResultValuesFromOutput(
+ metrics, RESULTS_OUTPUT % {'value': ' -66.88 kb'}))
+ self.assertEqual(
+ [66], bisect_instance.TryParseResultValuesFromOutput(
+ metrics, RESULTS_OUTPUT % {'value': '66 kb'}))
+ self.assertEqual(
+ [.66], bisect_instance.TryParseResultValuesFromOutput(
+ metrics, RESULTS_OUTPUT % {'value': '.66 kb'}))
+ self.assertEqual(
+ [], bisect_instance.TryParseResultValuesFromOutput(
+ metrics, RESULTS_OUTPUT % {'value': '. kb'}))
+ self.assertEqual(
+ [], bisect_instance.TryParseResultValuesFromOutput(
+ metrics, RESULTS_OUTPUT % {'value': 'aaa kb'}))
+
+ def testTryParseResultValuesFromOutputWithMulitValue(self):
+ """Tests result pattern <*>RESULT <graph>: <trace>= [<value>,<value>, ..]"""
+ bisect_options = bisect_perf_module.BisectOptions()
+ bisect_instance = bisect_perf_module.BisectPerformanceMetrics(
+ None, bisect_options)
+ metrics = ['Total', 'Total_ref']
+ self.assertEqual(
+ [66.88], bisect_instance.TryParseResultValuesFromOutput(
+ metrics, RESULTS_OUTPUT % {'value': '[66.88] kb'}))
+ self.assertEqual(
+ [66.88, 99.44], bisect_instance.TryParseResultValuesFromOutput(
+ metrics, RESULTS_OUTPUT % {'value': '[66.88, 99.44]kb'}))
+ self.assertEqual(
+ [66.88, 99.44], bisect_instance.TryParseResultValuesFromOutput(
+ metrics, RESULTS_OUTPUT % {'value': '[ 66.88, 99.44 ]'}))
+ self.assertEqual(
+ [-66.88, 99.44], bisect_instance.TryParseResultValuesFromOutput(
+ metrics, RESULTS_OUTPUT % {'value': '[-66.88,99.44] kb'}))
+ self.assertEqual(
+ [-66, 99], bisect_instance.TryParseResultValuesFromOutput(
+ metrics, RESULTS_OUTPUT % {'value': '[-66,99] kb'}))
+ self.assertEqual(
+ [-66, 99], bisect_instance.TryParseResultValuesFromOutput(
+ metrics, RESULTS_OUTPUT % {'value': '[-66,99,] kb'}))
+ self.assertEqual(
+ [.66, .99], bisect_instance.TryParseResultValuesFromOutput(
+ metrics, RESULTS_OUTPUT % {'value': '[.66,.99] kb'}))
+ self.assertEqual(
+ [], bisect_instance.TryParseResultValuesFromOutput(
+ metrics, RESULTS_OUTPUT % {'value': '[] kb'}))
+ self.assertEqual(
+ [], bisect_instance.TryParseResultValuesFromOutput(
+ metrics, RESULTS_OUTPUT % {'value': '[-66,abc] kb'}))
+
+ def testTryParseResultValuesFromOutputWithMeanStd(self):
+ """Tests result pattern <*>RESULT <graph>: <trace>= {<mean, std}"""
+ bisect_options = bisect_perf_module.BisectOptions()
+ bisect_instance = bisect_perf_module.BisectPerformanceMetrics(
+ None, bisect_options)
+ metrics = ['Total', 'Total_ref']
+ self.assertEqual(
+ [33.22], bisect_instance.TryParseResultValuesFromOutput(
+ metrics, RESULTS_OUTPUT % {'value': '{33.22, 3.6} kb'}))
+ self.assertEqual(
+ [33.22], bisect_instance.TryParseResultValuesFromOutput(
+ metrics, RESULTS_OUTPUT % {'value': '{33.22,3.6}kb'}))
+ self.assertEqual(
+ [33.22], bisect_instance.TryParseResultValuesFromOutput(
+ metrics, RESULTS_OUTPUT % {'value': '{33.22,3.6} kb'}))
+ self.assertEqual(
+ [33.22], bisect_instance.TryParseResultValuesFromOutput(
+ metrics, RESULTS_OUTPUT % {'value': '{ 33.22,3.6 }kb'}))
+ self.assertEqual(
+ [-33.22], bisect_instance.TryParseResultValuesFromOutput(
+ metrics, RESULTS_OUTPUT % {'value': '{-33.22,3.6}kb'}))
+ self.assertEqual(
+ [22], bisect_instance.TryParseResultValuesFromOutput(
+ metrics, RESULTS_OUTPUT % {'value': '{22,6}kb'}))
+ self.assertEqual(
+ [.22], bisect_instance.TryParseResultValuesFromOutput(
+ metrics, RESULTS_OUTPUT % {'value': '{.22,6}kb'}))
+ self.assertEqual(
+ [], bisect_instance.TryParseResultValuesFromOutput(
+ metrics, RESULTS_OUTPUT % {'value': '{.22,6, 44}kb'}))
+ self.assertEqual(
+ [], bisect_instance.TryParseResultValuesFromOutput(
+ metrics, RESULTS_OUTPUT % {'value': '{}kb'}))
+ self.assertEqual(
+ [], bisect_instance.TryParseResultValuesFromOutput(
+ metrics, RESULTS_OUTPUT % {'value': '{XYZ}kb'}))
+
if __name__ == '__main__':
unittest.main()
« no previous file with comments | « tools/bisect-perf-regression.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698