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

Unified Diff: dashboard/dashboard/bisect_report_test.py

Issue 1566013002: Add support for bisect bots to post results to dashboard. (Closed) Base URL: https://github.com/catapult-project/catapult.git@master
Patch Set: rebase Created 4 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
« no previous file with comments | « dashboard/dashboard/bisect_report.py ('k') | dashboard/dashboard/bisect_stats.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: dashboard/dashboard/bisect_report_test.py
diff --git a/dashboard/dashboard/bisect_report_test.py b/dashboard/dashboard/bisect_report_test.py
new file mode 100644
index 0000000000000000000000000000000000000000..4d4fd1138a4ea5346a12d67b8ed8194226bd2ab6
--- /dev/null
+++ b/dashboard/dashboard/bisect_report_test.py
@@ -0,0 +1,197 @@
+# Copyright 2016 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 copy
+import unittest
+
+from dashboard import bisect_report
+from dashboard import testing_common
+from dashboard.models import try_job
+
+_SAMPLE_BISECT_RESULTS_JSON = {
+ 'try_job_id': None,
+ 'bug_id': None,
+ 'status': None,
+ 'bisect_bot': 'linux',
+ 'buildbot_log_url': 'http://build.chromium.org/513',
+ 'command': ('tools/perf/run_benchmark -v '
+ '--browser=release page_cycler'),
+ 'metric': 'page_load_time',
+ 'test_type': 'perf',
+ 'issue_url': 'https://test-rietveld.appspot.com/200039',
+ 'change': 10,
+ 'score': 99.9,
+ 'good_revision': '306475',
+ 'bad_revision': '306477',
+ 'warnings': None,
+ 'abort_reason': None,
+ 'culprit_data': {
+ 'subject': 'subject',
+ 'author': 'author',
+ 'email': 'author@email.com',
+ 'cl_date': '1/2/2015',
+ 'commit_info': 'commit info',
+ 'revisions_links': ['http://src.chromium.org/viewvc/chrome?view='
+ 'revision&revision=306476'],
+ 'cl': '306476'
+ },
+ 'revision_data': [
+ {
+ 'depot_name': 'chromium',
+ 'deps_revision': 306475,
+ 'commit_pos': 306475,
+ 'mean_value': 70,
+ 'std_dev': 0,
+ 'values': [70, 70, 70],
+ 'result': 'good'
+ },
+ {
+ 'depot_name': 'chromium',
+ 'deps_revision': 306476,
+ 'commit_pos': 306476,
+ 'mean_value': 80,
+ 'std_dev': 0,
+ 'values': [80, 80, 80],
+ 'result': 'bad'
+ },
+ {
+ 'depot_name': 'chromium',
+ 'deps_revision': 306477,
+ 'commit_pos': 306477,
+ 'mean_value': 80,
+ 'std_dev': 0,
+ 'values': [80, 80, 80],
+ 'result': 'bad'
+ }
+ ]
+}
+
+
+class BisectReportTest(testing_common.TestCase):
+
+ def setUp(self):
+ super(BisectReportTest, self).setUp()
+
+ def _AddTryJob(self, results_data, **kwargs):
+ job = try_job.TryJob(results_data=results_data, **kwargs)
+ job.put()
+ return job
+
+ def _BisectResults(self, try_job_id, bug_id, status, **kwargs):
+ results = copy.deepcopy(_SAMPLE_BISECT_RESULTS_JSON)
+ results['try_job_id'] = try_job_id
+ results['bug_id'] = bug_id
+ results['status'] = status
+ results.update(kwargs)
+ return results
+
+ def testGetReport_CompletedWithCulprit(self):
+ results_data = self._BisectResults(6789, 12345, 'completed')
+ job = self._AddTryJob(results_data)
+
+ log_with_culprit = r"""
+===== BISECT JOB RESULTS =====
+Status: completed
+
+
+===== SUSPECTED CL(s) =====
+Subject : subject
+Author : author
+Commit description:
+ commit info
+Commit : 306476
+Date : 1/2/2015
+
+
+===== TESTED REVISIONS =====
+Depot Revision Mean Value Std. Dev. Num Values Good?
+chromium 306475 70 0 3 good
+chromium 306476 80 0 3 bad
+chromium 306477 80 0 3 bad
+
+Bisect job ran on: linux
+Bug ID: 12345
+
+Test Command: tools/perf/run_benchmark -v --browser=release page_cycler
+Test Metric: page_load_time
+Relative Change: 10
+Score: 99.9
+
+Buildbot stdio: http://build.chromium.org/513
+Job details: https://test-rietveld.appspot.com/200039
+
+
+| O O | Visit http://www.chromium.org/developers/speed-infra/perf-bug-faq
+| X | for more information addressing perf regression bugs. For feedback,
+| / \ | file a bug with label Cr-Tests-AutoBisect. Thank you!"""
+
+ self.assertEqual(log_with_culprit, bisect_report.GetReport(job))
+
+ def testGetReport_CompletedWithoutCulprit(self):
+ results_data = self._BisectResults(6789, 12345, 'completed',
+ culprit_data=None, score=0)
+ job = self._AddTryJob(results_data)
+
+ log_without_culprit = r"""
+===== BISECT JOB RESULTS =====
+Status: completed
+
+
+===== TESTED REVISIONS =====
+Depot Revision Mean Value Std. Dev. Num Values Good?
+chromium 306475 70 0 3 good
+chromium 306476 80 0 3 bad
+chromium 306477 80 0 3 bad
+
+Bisect job ran on: linux
+Bug ID: 12345
+
+Test Command: tools/perf/run_benchmark -v --browser=release page_cycler
+Test Metric: page_load_time
+Relative Change: 10
+Score: 0
+
+Buildbot stdio: http://build.chromium.org/513
+Job details: https://test-rietveld.appspot.com/200039
+
+
+| O O | Visit http://www.chromium.org/developers/speed-infra/perf-bug-faq
+| X | for more information addressing perf regression bugs. For feedback,
+| / \ | file a bug with label Cr-Tests-AutoBisect. Thank you!"""
+
+ self.assertEqual(log_without_culprit, bisect_report.GetReport(job))
+
+ def testGetReport_FailedBisect(self):
+ results_data = self._BisectResults(6789, 12345, 'failed',
+ culprit_data=None, score=0,
+ revision_data=None)
+ job = self._AddTryJob(results_data)
+
+ log_failed_bisect = r"""
+===== BISECT JOB RESULTS =====
+Status: failed
+
+
+
+Bisect job ran on: linux
+Bug ID: 12345
+
+Test Command: tools/perf/run_benchmark -v --browser=release page_cycler
+Test Metric: page_load_time
+Relative Change: 10
+Score: 0
+
+Buildbot stdio: http://build.chromium.org/513
+Job details: https://test-rietveld.appspot.com/200039
+
+
+| O O | Visit http://www.chromium.org/developers/speed-infra/perf-bug-faq
+| X | for more information addressing perf regression bugs. For feedback,
+| / \ | file a bug with label Cr-Tests-AutoBisect. Thank you!"""
+
+ self.assertEqual(log_failed_bisect, bisect_report.GetReport(job))
+
+
+if __name__ == '__main__':
+ unittest.main()
« no previous file with comments | « dashboard/dashboard/bisect_report.py ('k') | dashboard/dashboard/bisect_stats.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698