OLD | NEW |
1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. | 2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. |
3 # Use of this source code is governed by a BSD-style license that can be | 3 # Use of this source code is governed by a BSD-style license that can be |
4 # found in the LICENSE file. | 4 # found in the LICENSE file. |
5 | 5 |
6 """A tool to run a chrome test executable, used by the buildbot slaves. | 6 """A tool to run a chrome test executable, used by the buildbot slaves. |
7 | 7 |
8 When this is run, the current directory (cwd) should be the outer build | 8 When this is run, the current directory (cwd) should be the outer build |
9 directory (e.g., chrome-release/build/). | 9 directory (e.g., chrome-release/build/). |
10 | 10 |
(...skipping 556 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
567 with file(supplemental_columns_file, 'r') as f: | 567 with file(supplemental_columns_file, 'r') as f: |
568 supplemental_columns = json.loads(f.read()) | 568 supplemental_columns = json.loads(f.read()) |
569 return supplemental_columns | 569 return supplemental_columns |
570 | 570 |
571 | 571 |
572 def _SendResultsToDashboard(results_tracker, system, test, url, build_dir, | 572 def _SendResultsToDashboard(results_tracker, system, test, url, build_dir, |
573 mastername, buildername, buildnumber, | 573 mastername, buildername, buildnumber, |
574 supplemental_columns_file, extra_columns=None): | 574 supplemental_columns_file, extra_columns=None): |
575 """Sends results from a results tracker (aka log parser) to the dashboard. | 575 """Sends results from a results tracker (aka log parser) to the dashboard. |
576 | 576 |
| 577 TODO(qyearsley): Change this function and results_dashboard.SendResults so |
| 578 that only one request is made per test run (instead of one per graph name). |
| 579 Also, maybe refactor this function to take fewer arguments. |
| 580 |
577 Args: | 581 Args: |
578 results_tracker: An instance of a log parser class, which has been used to | 582 results_tracker: An instance of a log parser class, which has been used to |
579 process the test output, so it contains the test results. | 583 process the test output, so it contains the test results. |
580 system: A string such as 'linux-release', which comes from perf_id. | 584 system: A string such as 'linux-release', which comes from perf_id. |
581 test: Test "suite" name string. | 585 test: Test "suite" name string. |
582 url: Dashboard URL. | 586 url: Dashboard URL. |
583 build_dir: Build dir name (used for cache file by results_dashboard). | 587 build_dir: Build dir name (used for cache file by results_dashboard). |
584 mastername: Buildbot master name, e.g. 'chromium.perf'. | 588 mastername: Buildbot master name, e.g. 'chromium.perf'. |
585 WARNING! This is incorrectly called "masterid" in some parts of the | 589 WARNING! This is incorrectly called "masterid" in some parts of the |
586 dashboard code. | 590 dashboard code. |
587 buildername: Builder name, e.g. 'Linux QA Perf (1)' | 591 buildername: Builder name, e.g. 'Linux QA Perf (1)' |
588 buildnumber: Build number (as a string). | 592 buildnumber: Build number (as a string). |
589 supplemental_columns_file: Filename for JSON supplemental columns file. | 593 supplemental_columns_file: Filename for JSON supplemental columns file. |
590 extra_columns: A dict of extra values to add to the supplemental columns | 594 extra_columns: A dict of extra values to add to the supplemental columns |
591 dict. | 595 dict. |
592 """ | 596 """ |
593 if system is None: | 597 if system is None: |
594 # perf_id not specified in factory-properties | 598 # perf_id not specified in factory-properties |
595 return | 599 return |
596 supplemental_columns = _GetSupplementalColumns(build_dir, | 600 supplemental_columns = _GetSupplementalColumns(build_dir, |
597 supplemental_columns_file) | 601 supplemental_columns_file) |
598 if extra_columns: | 602 if extra_columns: |
599 supplemental_columns.update(extra_columns) | 603 supplemental_columns.update(extra_columns) |
600 | 604 for logname, log in results_tracker.PerformanceLogs().iteritems(): |
601 logs_dict = results_tracker.PerformanceLogs() | 605 lines = [str(l).rstrip() for l in log] |
602 results_dashboard.SendResults(logs_dict, system, test, url, mastername, | 606 try: |
603 buildername, buildername, buildnumber, | 607 results_dashboard.SendResults(logname, lines, system, test, url, |
604 build_dir, supplemental_columns) | 608 mastername, buildername, buildnumber, |
| 609 build_dir, supplemental_columns) |
| 610 except NotImplementedError as e: |
| 611 print 'Did not submit to results dashboard: %s' % e |
605 | 612 |
606 | 613 |
607 def _BuildCoverageGtestExclusions(options, args): | 614 def _BuildCoverageGtestExclusions(options, args): |
608 gtest_exclusions = { | 615 gtest_exclusions = { |
609 'win32': { | 616 'win32': { |
610 'browser_tests': ( | 617 'browser_tests': ( |
611 'ChromeNotifierDelegateBrowserTest.ClickTest', | 618 'ChromeNotifierDelegateBrowserTest.ClickTest', |
612 'ChromeNotifierDelegateBrowserTest.ButtonClickTest', | 619 'ChromeNotifierDelegateBrowserTest.ButtonClickTest', |
613 'SyncFileSystemApiTest.GetFileStatuses', | 620 'SyncFileSystemApiTest.GetFileStatuses', |
614 'SyncFileSystemApiTest.WriteFileThenGetUsage', | 621 'SyncFileSystemApiTest.WriteFileThenGetUsage', |
(...skipping 1119 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1734 finally: | 1741 finally: |
1735 if did_launch_dbus: | 1742 if did_launch_dbus: |
1736 # It looks like the command line argument --exit-with-session | 1743 # It looks like the command line argument --exit-with-session |
1737 # isn't working to clean up the spawned dbus-daemon. Kill it | 1744 # isn't working to clean up the spawned dbus-daemon. Kill it |
1738 # manually. | 1745 # manually. |
1739 _ShutdownDBus() | 1746 _ShutdownDBus() |
1740 | 1747 |
1741 | 1748 |
1742 if '__main__' == __name__: | 1749 if '__main__' == __name__: |
1743 sys.exit(main()) | 1750 sys.exit(main()) |
OLD | NEW |