| OLD | NEW |
| 1 #!/usr/bin/python | 1 #!/usr/bin/python |
| 2 | 2 |
| 3 # Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 3 # Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
| 4 # for details. All rights reserved. Use of this source code is governed by a | 4 # for details. All rights reserved. Use of this source code is governed by a |
| 5 # BSD-style license that can be found in the LICENSE file. | 5 # BSD-style license that can be found in the LICENSE file. |
| 6 | 6 |
| 7 import datetime | 7 import datetime |
| 8 import math | 8 import math |
| 9 import optparse | 9 import optparse |
| 10 import os | 10 import os |
| (...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 167 if (not os.path.exists(os.path.join( | 167 if (not os.path.exists(os.path.join( |
| 168 DART_REPO_LOC, 'tools', 'get_archive.py')) or not success | 168 DART_REPO_LOC, 'tools', 'get_archive.py')) or not success |
| 169 or 'InvalidUriError' in stderr or "Couldn't download" in stdout or | 169 or 'InvalidUriError' in stderr or "Couldn't download" in stdout or |
| 170 'Unable to download' in stdout): | 170 'Unable to download' in stdout): |
| 171 # Couldn't find the SDK on Google Storage. Build it locally. | 171 # Couldn't find the SDK on Google Storage. Build it locally. |
| 172 | 172 |
| 173 # TODO(efortuna): Currently always building ia32 architecture because we | 173 # TODO(efortuna): Currently always building ia32 architecture because we |
| 174 # don't have test statistics for what's passing on x64. Eliminate arch | 174 # don't have test statistics for what's passing on x64. Eliminate arch |
| 175 # specification when we have tests running on x64, too. | 175 # specification when we have tests running on x64, too. |
| 176 shutil.rmtree(os.path.join(os.getcwd(), | 176 shutil.rmtree(os.path.join(os.getcwd(), |
| 177 utils.GetBuildRoot(utils.GuessOS(), 'release', 'ia32')), | 177 utils.GetBuildRoot(utils.GuessOS())), |
| 178 onerror=TestRunner._OnRmError) | 178 onerror=TestRunner._OnRmError) |
| 179 lines = self.RunCmd([os.path.join('.', 'tools', 'build.py'), '-m', | 179 lines = self.RunCmd([os.path.join('.', 'tools', 'build.py'), '-m', |
| 180 'release', '--arch=ia32', 'create_sdk']) | 180 'release', '--arch=ia32', 'create_sdk']) |
| 181 | 181 |
| 182 for line in lines: | 182 for line in lines: |
| 183 if 'BUILD FAILED' in line: | 183 if 'BUILD FAILED' in line: |
| 184 # Someone checked in a broken build! Stop trying to make it work | 184 # Someone checked in a broken build! Stop trying to make it work |
| 185 # and wait to try again. | 185 # and wait to try again. |
| 186 print 'Broken Build' | 186 print 'Broken Build' |
| 187 return 1 | 187 return 1 |
| (...skipping 526 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 714 | 714 |
| 715 class DromaeoPerfTester(DromaeoTester): | 715 class DromaeoPerfTester(DromaeoTester): |
| 716 def RunTests(self): | 716 def RunTests(self): |
| 717 """Run dromaeo in the browser.""" | 717 """Run dromaeo in the browser.""" |
| 718 success, _, _ = self.test.test_runner.GetArchive('dartium') | 718 success, _, _ = self.test.test_runner.GetArchive('dartium') |
| 719 if not success: | 719 if not success: |
| 720 # Unable to download dartium. Try later. | 720 # Unable to download dartium. Try later. |
| 721 return | 721 return |
| 722 | 722 |
| 723 # Build tests. | 723 # Build tests. |
| 724 dromaeo_path = os.path.join('samples', 'third_party', 'dromaeo') | 724 # TODO(efortuna): Make the pub functionality a separate function. |
| 725 current_path = os.getcwd() | 725 current_path = os.getcwd() |
| 726 os.chdir(dromaeo_path) | 726 os.chdir(os.path.join(DART_REPO_LOC, 'samples', 'third_party', |
| 727 stdout, _ = self.test.test_runner.RunCmd( | 727 'dromaeo')) |
| 728 ['python', 'generate_perf_and_dart2js_tests.py']) | 728 self.test.test_runner.RunCmd([os.path.join(DART_REPO_LOC, |
| 729 utils.GetBuildRoot(utils.GuessOS(), 'release', 'ia32'), |
| 730 'dart-sdk', 'bin', 'pub'), 'install']) # TODO: pub upgrade? |
| 731 stdout, _ = self.test.test_runner.RunCmd([os.path.join(DART_REPO_LOC, |
| 732 utils.GetBuildRoot(utils.GuessOS(), 'release', 'ia32'), |
| 733 'dart-sdk', 'bin', 'pub'), 'build']) |
| 729 os.chdir(current_path) | 734 os.chdir(current_path) |
| 730 if 'Error: Compilation failed' in stdout: | 735 if 'failed' in stdout: |
| 731 return | 736 return |
| 737 |
| 732 versions = DromaeoTester.GetDromaeoVersions() | 738 versions = DromaeoTester.GetDromaeoVersions() |
| 733 | 739 |
| 734 for browser in BrowserTester.GetBrowsers(): | 740 for browser in BrowserTester.GetBrowsers(): |
| 735 for version_name in versions: | 741 for version_name in versions: |
| 736 if not self.test.IsValidCombination(browser, version_name): | 742 if not self.test.IsValidCombination(browser, version_name): |
| 737 continue | 743 continue |
| 738 version = DromaeoTest.DromaeoPerfTester.GetDromaeoUrlQuery( | 744 version = DromaeoTest.DromaeoPerfTester.GetDromaeoUrlQuery( |
| 739 browser, version_name) | 745 browser, version_name) |
| 740 self.test.trace_file = os.path.join(TOP_LEVEL_DIR, | 746 self.test.trace_file = os.path.join(TOP_LEVEL_DIR, |
| 741 'tools', 'testing', 'perf_testing', self.test.result_folder_name, | 747 'tools', 'testing', 'perf_testing', self.test.result_folder_name, |
| 742 'dromaeo-%s-%s-%s' % (self.test.cur_time, browser, version_name)) | 748 'dromaeo-%s-%s-%s' % (self.test.cur_time, browser, version_name)) |
| 743 self.AddSvnRevisionToTrace(self.test.trace_file, browser) | 749 self.AddSvnRevisionToTrace(self.test.trace_file, browser) |
| 744 url_path = '/'.join(['/root_dart', dromaeo_path, 'index%s.html?%s'% ( | 750 url_path = '/'.join(['/code_root', 'build', 'web', 'index%s.html?%s'%( |
| 745 '-dart' if version_name == 'dart_html' else '-js', | 751 '-dart' if version_name == 'dart_html' else '-js', |
| 746 version)]) | 752 version)]) |
| 747 | 753 |
| 748 # TODO(efortuna): Make this a separate function. We should do this | |
| 749 # once per cycle. | |
| 750 os.chdir(os.path.join(DART_REPO_LOC, 'tools', 'testing', 'dart', | |
| 751 'browser_perf_testing')) | |
| 752 self.test.test_runner.RunCmd([os.path.join(DART_REPO_LOC, | |
| 753 utils.GetBuildRoot(utils.GuessOS(), 'release', 'ia32'), | |
| 754 'dart-sdk', 'bin', 'pub'), 'install']) | |
| 755 os.chdir(current_path) | |
| 756 | |
| 757 self.test.test_runner.RunCmd( | 754 self.test.test_runner.RunCmd( |
| 758 [os.path.join(utils.GetBuildRoot( | 755 [os.path.join(DART_REPO_LOC, utils.GetBuildRoot( |
| 759 utils.GuessOS(), 'release', 'ia32'), 'dart-sdk', 'bin', 'dart'), | 756 utils.GuessOS(), 'release', 'ia32'), 'dart-sdk', 'bin', 'dart'), |
| 760 '--package-root=%s' % os.path.join(DART_REPO_LOC, 'tools', | 757 '--package-root=%s' % os.path.join(DART_REPO_LOC, 'samples', |
| 761 'testing', 'dart', 'browser_perf_testing', 'packages'), | 758 'third_party', 'dromaeo', 'packages'), os.path.join( |
| 762 os.path.join('tools', 'testing', 'dart', 'browser_perf_testing', | 759 DART_REPO_LOC, 'samples', 'third_party', 'dromaeo', 'packages', |
| 763 'lib', 'browser_perf_testing.dart'), | 760 'browser_controller', 'browser_perf_testing.dart'), |
| 764 '--browser', browser, '--termination_test_file', | 761 '--browser', browser, |
| 765 '/root_dart/samples/third_party/dromaeo/dromaeo_end_condition.' | 762 '--test_path', url_path], self.test.trace_file, |
| 766 'js', '--test_path', url_path], self.test.trace_file, | |
| 767 append=True) | 763 append=True) |
| 768 | 764 |
| 769 @staticmethod | 765 @staticmethod |
| 770 def GetDromaeoUrlQuery(browser, version): | 766 def GetDromaeoUrlQuery(browser, version): |
| 771 version = version.replace('_','AND') | 767 version = version.replace('_','AND') |
| 772 tags = DromaeoTester.GetValidDromaeoTags() | 768 tags = DromaeoTester.GetValidDromaeoTags() |
| 773 return 'OR'.join([ '%sAND%s' % (version, tag) for tag in tags]) | 769 return 'OR'.join([ '%sAND%s' % (version, tag) for tag in tags]) |
| 774 | 770 |
| 775 | 771 |
| 776 class DromaeoFileProcessor(Processor): | 772 class DromaeoFileProcessor(Processor): |
| (...skipping 176 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 953 else: | 949 else: |
| 954 if runner.backfill: | 950 if runner.backfill: |
| 955 results_set = FillInBackHistory(results_set, runner) | 951 results_set = FillInBackHistory(results_set, runner) |
| 956 else: | 952 else: |
| 957 time.sleep(200) | 953 time.sleep(200) |
| 958 else: | 954 else: |
| 959 runner.RunTestSequence() | 955 runner.RunTestSequence() |
| 960 | 956 |
| 961 if __name__ == '__main__': | 957 if __name__ == '__main__': |
| 962 main() | 958 main() |
| OLD | NEW |