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

Side by Side Diff: tools/testing/dart/test_runner.dart

Issue 11184015: Rename ie to ie9. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 8 years, 2 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « tools/testing/dart/test_options.dart ('k') | tools/testing/dart/test_suite.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 /** 5 /**
6 * Classes and methods for executing tests. 6 * Classes and methods for executing tests.
7 * 7 *
8 * This module includes: 8 * This module includes:
9 * - Managing parallel execution of tests, including timeout checks. 9 * - Managing parallel execution of tests, including timeout checks.
10 * - Evaluating the output of each test as pass/fail/crash/timeout. 10 * - Evaluating the output of each test as pass/fail/crash/timeout.
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
70 * tests have two commands, one to compilate the source and another to execute 70 * tests have two commands, one to compilate the source and another to execute
71 * it. Some isolate tests might even have three, if they require compiling 71 * it. Some isolate tests might even have three, if they require compiling
72 * multiple sources that are run in isolation. 72 * multiple sources that are run in isolation.
73 */ 73 */
74 List<Command> commands; 74 List<Command> commands;
75 75
76 Map configuration; 76 Map configuration;
77 String displayName; 77 String displayName;
78 TestOutput output; 78 TestOutput output;
79 bool isNegative; 79 bool isNegative;
80 bool usesWebDriver;
80 Set<String> expectedOutcomes; 81 Set<String> expectedOutcomes;
81 TestCaseEvent completedHandler; 82 TestCaseEvent completedHandler;
82 TestInformation info; 83 TestInformation info;
83 84
84 TestCase(this.displayName, 85 TestCase(this.displayName,
85 this.commands, 86 this.commands,
86 this.configuration, 87 this.configuration,
87 this.completedHandler, 88 this.completedHandler,
88 this.expectedOutcomes, 89 this.expectedOutcomes,
89 {this.isNegative: false, 90 {this.isNegative: false,
90 this.info: null}) { 91 this.info: null,
92 this.usesWebDriver: false}) {
91 if (!isNegative) { 93 if (!isNegative) {
92 this.isNegative = displayName.contains("negative_test"); 94 this.isNegative = displayName.contains("negative_test");
93 } 95 }
94 96
95 // Special command handling. If a special command is specified 97 // Special command handling. If a special command is specified
96 // we have to completely rewrite the command that we are using. 98 // we have to completely rewrite the command that we are using.
97 // We generate a new command-line that is the special command where we 99 // We generate a new command-line that is the special command where we
98 // replace '@' with the original command executable, and generate 100 // replace '@' with the original command executable, and generate
99 // a command formed like the following 101 // a command formed like the following
100 // Let PREFIX be what is before the @. 102 // Let PREFIX be what is before the @.
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
158 final mode = configuration['mode']; 160 final mode = configuration['mode'];
159 final arch = configuration['arch']; 161 final arch = configuration['arch'];
160 final checked = configuration['checked'] ? '-checked' : ''; 162 final checked = configuration['checked'] ? '-checked' : '';
161 return "$compiler-$runtime$checked ${mode}_$arch"; 163 return "$compiler-$runtime$checked ${mode}_$arch";
162 } 164 }
163 165
164 List<String> get batchRunnerArguments => ['-batch']; 166 List<String> get batchRunnerArguments => ['-batch'];
165 List<String> get batchTestArguments => commands.last().arguments; 167 List<String> get batchTestArguments => commands.last().arguments;
166 168
167 void completed() { completedHandler(this); } 169 void completed() { completedHandler(this); }
168
169 bool get usesWebDriver => Contains(
170 configuration['runtime'],
171 const ['chrome', 'dartium', 'ff', 'safari', 'ie', 'opera']);
172 } 170 }
173 171
174 172
175 /** 173 /**
176 * BrowserTestCase has an extra compilation command that is run in a separate 174 * BrowserTestCase has an extra compilation command that is run in a separate
177 * process, before the regular test is run as in the base class [TestCase]. 175 * process, before the regular test is run as in the base class [TestCase].
178 * If the compilation command fails, then the rest of the test is not run. 176 * If the compilation command fails, then the rest of the test is not run.
179 */ 177 */
180 class BrowserTestCase extends TestCase { 178 class BrowserTestCase extends TestCase {
181 /** 179 /**
(...skipping 432 matching lines...) Expand 10 before | Expand all | Expand 10 after
614 if (currentStep == totalSteps) { // done with test command 612 if (currentStep == totalSteps) { // done with test command
615 testComplete(exitCode, false); 613 testComplete(exitCode, false);
616 } else if (exitCode != 0) { 614 } else if (exitCode != 0) {
617 stderr.add('test.dart: Compilation failed$suffix, exit code $exitCode\n'); 615 stderr.add('test.dart: Compilation failed$suffix, exit code $exitCode\n');
618 testComplete(exitCode, true); 616 testComplete(exitCode, true);
619 } else { 617 } else {
620 stderr.add('test.dart: Compilation finished $suffix\n'); 618 stderr.add('test.dart: Compilation finished $suffix\n');
621 stdout.add('test.dart: Compilation finished $suffix\n'); 619 stdout.add('test.dart: Compilation finished $suffix\n');
622 if (currentStep == totalSteps - 1 && testCase.usesWebDriver && 620 if (currentStep == totalSteps - 1 && testCase.usesWebDriver &&
623 !testCase.configuration['noBatch']) { 621 !testCase.configuration['noBatch']) {
624 // Note: processQueue will always be non-null for runtime == ie, ff, 622 // Note: processQueue will always be non-null for runtime == ie9, ff,
625 // safari, chrome, opera. (It is only null for runtime == vm) 623 // safari, chrome, opera. (It is only null for runtime == vm)
626 // This RunningProcess object is done, and hands over control to 624 // This RunningProcess object is done, and hands over control to
627 // BatchRunner.startTest(), which handles reporting, etc. 625 // BatchRunner.startTest(), which handles reporting, etc.
628 timeoutTimer.cancel(); 626 timeoutTimer.cancel();
629 processQueue._getBatchRunner(testCase).startTest(testCase); 627 processQueue._getBatchRunner(testCase).startTest(testCase);
630 } else { 628 } else {
631 runCommand(testCase.commands[currentStep++], stepExitHandler); 629 runCommand(testCase.commands[currentStep++], stepExitHandler);
632 } 630 }
633 } 631 }
634 } 632 }
(...skipping 612 matching lines...) Expand 10 before | Expand all | Expand 10 after
1247 // the developer doesn't waste his or her time trying to fix a bunch of 1245 // the developer doesn't waste his or her time trying to fix a bunch of
1248 // tests that appear to be broken but were actually just flakes that 1246 // tests that appear to be broken but were actually just flakes that
1249 // didn't get retried because there had already been one failure. 1247 // didn't get retried because there had already been one failure.
1250 bool allowRetry = _MAX_FAILED_NO_RETRY > _progress.numFailedTests; 1248 bool allowRetry = _MAX_FAILED_NO_RETRY > _progress.numFailedTests;
1251 new RunningProcess(test, allowRetry, this).start(); 1249 new RunningProcess(test, allowRetry, this).start();
1252 } 1250 }
1253 _numProcesses++; 1251 _numProcesses++;
1254 } 1252 }
1255 } 1253 }
1256 } 1254 }
OLDNEW
« no previous file with comments | « tools/testing/dart/test_options.dart ('k') | tools/testing/dart/test_suite.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698