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

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

Issue 13724021: Remove deprecated Expect from the libraries. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 7 years, 8 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
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 257 matching lines...) Expand 10 before | Expand all | Expand 10 after
268 // replace '@' with the original command executable, and generate 268 // replace '@' with the original command executable, and generate
269 // a command formed like the following 269 // a command formed like the following
270 // Let PREFIX be what is before the @. 270 // Let PREFIX be what is before the @.
271 // Let SUFFIX be what is after the @. 271 // Let SUFFIX be what is after the @.
272 // Let EXECUTABLE be the existing executable of the command. 272 // Let EXECUTABLE be the existing executable of the command.
273 // Let ARGUMENTS be the existing arguments to the existing executable. 273 // Let ARGUMENTS be the existing arguments to the existing executable.
274 // The new command will be: 274 // The new command will be:
275 // PREFIX EXECUTABLE SUFFIX ARGUMENTS 275 // PREFIX EXECUTABLE SUFFIX ARGUMENTS
276 var specialCommand = configuration['special-command']; 276 var specialCommand = configuration['special-command'];
277 if (!specialCommand.isEmpty) { 277 if (!specialCommand.isEmpty) {
278 Expect.isTrue(specialCommand.contains('@'), 278 if (!specialCommand.contains('@')) {
279 "special-command must contain a '@' char"); 279 throw new Exception("special-command must contain a '@' char");
280 }
280 var specialCommandSplit = specialCommand.split('@'); 281 var specialCommandSplit = specialCommand.split('@');
281 var prefix = specialCommandSplit[0].trim(); 282 var prefix = specialCommandSplit[0].trim();
282 var suffix = specialCommandSplit[1].trim(); 283 var suffix = specialCommandSplit[1].trim();
283 List<Command> newCommands = []; 284 List<Command> newCommands = [];
284 for (Command c in commands) { 285 for (Command c in commands) {
285 // If we don't have a new prefix we will use the existing executable. 286 // If we don't have a new prefix we will use the existing executable.
286 var newExecutablePath = c.executable;; 287 var newExecutablePath = c.executable;;
287 var newArguments = []; 288 var newArguments = [];
288 289
289 if (prefix.length > 0) { 290 if (prefix.length > 0) {
(...skipping 513 matching lines...) Expand 10 before | Expand all | Expand 10 after
803 } 804 }
804 if (testCase.info != null 805 if (testCase.info != null
805 && testCase.info.optionsFromFile['isMultitest']) { 806 && testCase.info.optionsFromFile['isMultitest']) {
806 return _didMultitestFail(errors, staticWarnings); 807 return _didMultitestFail(errors, staticWarnings);
807 } 808 }
808 return _didStandardTestFail(errors, staticWarnings); 809 return _didStandardTestFail(errors, staticWarnings);
809 } 810 }
810 811
811 bool _didMultitestFail(List errors, List staticWarnings) { 812 bool _didMultitestFail(List errors, List staticWarnings) {
812 Set<String> outcome = testCase.info.multitestOutcome; 813 Set<String> outcome = testCase.info.multitestOutcome;
813 Expect.isNotNull(outcome); 814 if (outcome == null) throw new Exception("outcome must not be null");
814 if (outcome.contains('compile-time error') && errors.length > 0) { 815 if (outcome.contains('compile-time error') && errors.length > 0) {
815 return true; 816 return true;
816 } else if (outcome.contains('static type warning') 817 } else if (outcome.contains('static type warning')
817 && staticWarnings.length > 0) { 818 && staticWarnings.length > 0) {
818 return true; 819 return true;
819 } else if (outcome.isEmpty 820 } else if (outcome.isEmpty
820 && (errors.length > 0 || staticWarnings.length > 0)) { 821 && (errors.length > 0 || staticWarnings.length > 0)) {
821 return true; 822 return true;
822 } 823 }
823 return false; 824 return false;
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after
936 DateTime startTime; 937 DateTime startTime;
937 Timer timeoutTimer; 938 Timer timeoutTimer;
938 List<int> stdout = <int>[]; 939 List<int> stdout = <int>[];
939 List<int> stderr = <int>[]; 940 List<int> stderr = <int>[];
940 bool compilationSkipped = false; 941 bool compilationSkipped = false;
941 Completer<CommandOutput> completer; 942 Completer<CommandOutput> completer;
942 943
943 RunningProcess(TestCase this.testCase, Command this.command); 944 RunningProcess(TestCase this.testCase, Command this.command);
944 945
945 Future<CommandOutput> start() { 946 Future<CommandOutput> start() {
946 Expect.isFalse(testCase.expectedOutcomes.contains(SKIP)); 947 if (testCase.expectedOutcomes.contains(SKIP)) {
948 throw new Exception("testCase.expectedOutcomes must not contain 'SKIP'.");
949 }
947 950
948 completer = new Completer<CommandOutput>(); 951 completer = new Completer<CommandOutput>();
949 startTime = new DateTime.now(); 952 startTime = new DateTime.now();
950 _runCommand(); 953 _runCommand();
951 return completer.future; 954 return completer.future;
952 } 955 }
953 956
954 void _runCommand() { 957 void _runCommand() {
955 command.outputIsUpToDate.then((bool isUpToDate) { 958 command.outputIsUpToDate.then((bool isUpToDate) {
956 if (isUpToDate) { 959 if (isUpToDate) {
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
1048 BatchRunnerProcess(TestCase testCase) { 1051 BatchRunnerProcess(TestCase testCase) {
1049 _command = testCase.commands.last; 1052 _command = testCase.commands.last;
1050 _executable = testCase.commands.last.executable; 1053 _executable = testCase.commands.last.executable;
1051 _batchArguments = testCase.batchRunnerArguments; 1054 _batchArguments = testCase.batchRunnerArguments;
1052 _isWebDriver = testCase.usesWebDriver; 1055 _isWebDriver = testCase.usesWebDriver;
1053 } 1056 }
1054 1057
1055 bool get active => _currentTest != null; 1058 bool get active => _currentTest != null;
1056 1059
1057 void startTest(TestCase testCase) { 1060 void startTest(TestCase testCase) {
1058 Expect.isNull(_currentTest); 1061 if (_currentTest != null) {
1062 throw new Exception("_currentTest must be null.");
1063 }
1059 _currentTest = testCase; 1064 _currentTest = testCase;
1060 _command = testCase.commands.last; 1065 _command = testCase.commands.last;
1061 if (_process == null) { 1066 if (_process == null) {
1062 // Start process if not yet started. 1067 // Start process if not yet started.
1063 _executable = testCase.commands.last.executable; 1068 _executable = testCase.commands.last.executable;
1064 _startProcess(() { 1069 _startProcess(() {
1065 doStartTest(testCase); 1070 doStartTest(testCase);
1066 }); 1071 });
1067 } else if (testCase.commands.last.executable != _executable) { 1072 } else if (testCase.commands.last.executable != _executable) {
1068 // Restart this runner with the right executable for this test 1073 // Restart this runner with the right executable for this test
(...skipping 576 matching lines...) Expand 10 before | Expand all | Expand 10 after
1645 } else { 1650 } else {
1646 return false; 1651 return false;
1647 } 1652 }
1648 } 1653 }
1649 1654
1650 Future runNextCommandWithRetries(TestCase testCase, bool allowRetry) { 1655 Future runNextCommandWithRetries(TestCase testCase, bool allowRetry) {
1651 var completer = new Completer(); 1656 var completer = new Completer();
1652 1657
1653 var nextCommandIndex = testCase.commandOutputs.keys.length; 1658 var nextCommandIndex = testCase.commandOutputs.keys.length;
1654 var numberOfCommands = testCase.commands.length; 1659 var numberOfCommands = testCase.commands.length;
1655 Expect.isTrue(nextCommandIndex < numberOfCommands); 1660 if (nextCommandIndex >= numberOfCommands) {
1661 throw new Exception(
1662 "nextCommandIndex must be less than numberOfCommands");
1663 }
1656 var command = testCase.commands[nextCommandIndex]; 1664 var command = testCase.commands[nextCommandIndex];
1657 var isLastCommand = nextCommandIndex == (numberOfCommands - 1); 1665 var isLastCommand = nextCommandIndex == (numberOfCommands - 1);
1658 1666
1659 void runCommand() { 1667 void runCommand() {
1660 var runningProcess = new RunningProcess(testCase, command); 1668 var runningProcess = new RunningProcess(testCase, command);
1661 runningProcess.start().then((CommandOutput commandOutput) { 1669 runningProcess.start().then((CommandOutput commandOutput) {
1662 if (isLastCommand) { 1670 if (isLastCommand) {
1663 // NOTE: We need to call commandOutput.unexpectedOutput here. 1671 // NOTE: We need to call commandOutput.unexpectedOutput here.
1664 // Calling this getter may result in the side-effect, that 1672 // Calling this getter may result in the side-effect, that
1665 // commandOutput.requestRetry is set to true. 1673 // commandOutput.requestRetry is set to true.
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
1718 } 1726 }
1719 } 1727 }
1720 1728
1721 void eventAllTestsDone() { 1729 void eventAllTestsDone() {
1722 for (var listener in _eventListener) { 1730 for (var listener in _eventListener) {
1723 listener.allDone(); 1731 listener.allDone();
1724 } 1732 }
1725 } 1733 }
1726 } 1734 }
1727 1735
OLDNEW
« tests/standalone/io/test_runner_test.dart ('K') | « tools/testing/dart/status_expression.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698