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

Side by Side Diff: tools/test.dart

Issue 15944005: Record/replay support to test.py (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 7 years, 6 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/execute_recorded_testcases.py ('k') | tools/testing/dart/record_and_replay.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 #!/usr/bin/env dart 1 #!/usr/bin/env dart
2 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file 2 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
3 // for details. All rights reserved. Use of this source code is governed by a 3 // for details. All rights reserved. Use of this source code is governed by a
4 // BSD-style license that can be found in the LICENSE file. 4 // BSD-style license that can be found in the LICENSE file.
5 5
6 /** 6 /**
7 * This file is the entrypoint of the dart test suite. This suite is used 7 * This file is the entrypoint of the dart test suite. This suite is used
8 * to test: 8 * to test:
9 * 9 *
10 * 1. the dart vm 10 * 1. the dart vm
11 * 2. the dart2js compiler 11 * 2. the dart2js compiler
12 * 3. the dartc static analyzer 12 * 3. the dartc static analyzer
13 * 4. the dart core library 13 * 4. the dart core library
14 * 5. other standard dart libraries (DOM bindings, ui libraries, 14 * 5. other standard dart libraries (DOM bindings, ui libraries,
15 * io libraries etc.) 15 * io libraries etc.)
16 * 16 *
17 * This script is normally invoked by test.py. (test.py finds the dart vm 17 * This script is normally invoked by test.py. (test.py finds the dart vm
18 * and passses along all command line arguments to this script.) 18 * and passses along all command line arguments to this script.)
19 * 19 *
20 * The command line args of this script are documented in 20 * The command line args of this script are documented in
21 * "tools/testing/test_options.dart". 21 * "tools/testing/test_options.dart".
22 * 22 *
23 */ 23 */
24 24
25 library test; 25 library test;
26 26
27 import "dart:async"; 27 import "dart:async";
28 import "dart:io"; 28 import "dart:io";
29 import "testing/dart/http_server.dart";
30 import "testing/dart/record_and_replay.dart";
31 import "testing/dart/test_options.dart";
32 import "testing/dart/test_progress.dart";
29 import "testing/dart/test_runner.dart"; 33 import "testing/dart/test_runner.dart";
30 import "testing/dart/test_options.dart";
31 import "testing/dart/test_suite.dart"; 34 import "testing/dart/test_suite.dart";
32 import "testing/dart/test_progress.dart";
33 import "testing/dart/http_server.dart";
34 import "testing/dart/utils.dart"; 35 import "testing/dart/utils.dart";
35 36
36 import "../compiler/tests/dartc/test_config.dart"; 37 import "../compiler/tests/dartc/test_config.dart";
37 import "../runtime/tests/vm/test_config.dart"; 38 import "../runtime/tests/vm/test_config.dart";
38 import "../samples/tests/dartc/test_config.dart"; 39 import "../samples/tests/dartc/test_config.dart";
39 import "../tests/co19/test_config.dart"; 40 import "../tests/co19/test_config.dart";
40 import "../tests/lib/analyzer/test_config.dart"; 41 import "../tests/lib/analyzer/test_config.dart";
41 42
42 /** 43 /**
43 * The directories that contain test suites which follow the conventions 44 * The directories that contain test suites which follow the conventions
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
80 var maxProcesses = firstConf['tasks']; 81 var maxProcesses = firstConf['tasks'];
81 var progressIndicator = firstConf['progress']; 82 var progressIndicator = firstConf['progress'];
82 // TODO(kustermann): Remove this option once the buildbots don't use it 83 // TODO(kustermann): Remove this option once the buildbots don't use it
83 // anymore. 84 // anymore.
84 var failureSummary = firstConf['failure-summary']; 85 var failureSummary = firstConf['failure-summary'];
85 BuildbotProgressIndicator.stepName = firstConf['step_name']; 86 BuildbotProgressIndicator.stepName = firstConf['step_name'];
86 var verbose = firstConf['verbose']; 87 var verbose = firstConf['verbose'];
87 var printTiming = firstConf['time']; 88 var printTiming = firstConf['time'];
88 var listTests = firstConf['list']; 89 var listTests = firstConf['list'];
89 90
91 var recordingPath = firstConf['record_to_file'];
92 var recordingOutputPath = firstConf['replay_from_file'];
93
94 if (recordingPath != null && recordingOutputPath != null) {
95 print("Fatal: Can't have the '--record_to_file' and '--replay_from_file'"
96 "at the same time. Exiting ...");
97 exit(1);
98 }
99
100 var testCaseRecorder;
101 if (recordingPath != null) {
102 testCaseRecorder = new TestCaseRecorder(new Path(recordingPath));
103 }
104
105 var testCaseOutputArchive;
106 if (recordingOutputPath != null) {
107 testCaseOutputArchive = new TestCaseOutputArchive();
108 testCaseOutputArchive.loadFromPath(new Path(recordingOutputPath));
109 }
110
111
90 if (!firstConf['append_logs']) { 112 if (!firstConf['append_logs']) {
91 var file = new File(TestUtils.flakyFileName()); 113 var file = new File(TestUtils.flakyFileName());
92 if (file.existsSync()) { 114 if (file.existsSync()) {
93 file.deleteSync(); 115 file.deleteSync();
94 } 116 }
95 } 117 }
96 118
97 DebugLogger.init(firstConf['write_debug_log'] ? 119 DebugLogger.init(firstConf['write_debug_log'] ?
98 TestUtils.debugLogfile() : null, append: firstConf['append_logs']); 120 TestUtils.debugLogfile() : null, append: firstConf['append_logs']);
99 121
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after
209 startTime, 231 startTime,
210 formatter)); 232 formatter));
211 if (printTiming) { 233 if (printTiming) {
212 eventListener.add(new TimingPrinter(startTime)); 234 eventListener.add(new TimingPrinter(startTime));
213 } 235 }
214 eventListener.add(new SkippedCompilationsPrinter()); 236 eventListener.add(new SkippedCompilationsPrinter());
215 eventListener.add(new LeftOverTempDirPrinter()); 237 eventListener.add(new LeftOverTempDirPrinter());
216 } 238 }
217 eventListener.add(new ExitCodeSetter()); 239 eventListener.add(new ExitCodeSetter());
218 240
241
219 void startProcessQueue() { 242 void startProcessQueue() {
220 // Start process queue. 243 // Start process queue.
221 new ProcessQueue(maxProcesses, 244 new ProcessQueue(maxProcesses,
222 maxBrowserProcesses, 245 maxBrowserProcesses,
223 startTime, 246 startTime,
224 testSuites, 247 testSuites,
225 eventListener, 248 eventListener,
226 allTestsFinished, 249 allTestsFinished,
227 verbose, 250 verbose,
228 listTests); 251 listTests,
252 testCaseRecorder,
253 testCaseOutputArchive);
229 } 254 }
230 255
231 // Start all the HTTP servers required before starting the process queue. 256 // Start all the HTTP servers required before starting the process queue.
232 if (serverFutures.isEmpty) { 257 if (serverFutures.isEmpty) {
233 startProcessQueue(); 258 startProcessQueue();
234 } else { 259 } else {
235 Future.wait(serverFutures).then((_) => startProcessQueue()); 260 Future.wait(serverFutures).then((_) => startProcessQueue());
236 } 261 }
237 } 262 }
238 263
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
277 void main() { 302 void main() {
278 deleteTemporaryDartDirectories().then((_) { 303 deleteTemporaryDartDirectories().then((_) {
279 var optionsParser = new TestOptionsParser(); 304 var optionsParser = new TestOptionsParser();
280 var configurations = optionsParser.parse(new Options().arguments); 305 var configurations = optionsParser.parse(new Options().arguments);
281 if (configurations != null && configurations.length > 0) { 306 if (configurations != null && configurations.length > 0) {
282 testConfigurations(configurations); 307 testConfigurations(configurations);
283 } 308 }
284 }); 309 });
285 } 310 }
286 311
OLDNEW
« no previous file with comments | « tools/execute_recorded_testcases.py ('k') | tools/testing/dart/record_and_replay.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698