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

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

Issue 2549793002: Add 'self_check' runtime for running self-checking unit tests (Closed)
Patch Set: Address comments Created 4 years 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
« no previous file with comments | « tools/testing/dart/test_runner.dart ('k') | no next file » | 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 enumerating and preparing tests. 6 * Classes and methods for enumerating and preparing tests.
7 * 7 *
8 * This library includes: 8 * This library includes:
9 * 9 *
10 * - Creating tests by listing all the Dart files in certain directories, 10 * - Creating tests by listing all the Dart files in certain directories,
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after
116 * 116 *
117 * Most TestSuites represent a directory or directory tree containing tests, 117 * Most TestSuites represent a directory or directory tree containing tests,
118 * and a status file containing the expected results when these tests are run. 118 * and a status file containing the expected results when these tests are run.
119 */ 119 */
120 abstract class TestSuite { 120 abstract class TestSuite {
121 final Map configuration; 121 final Map configuration;
122 final String suiteName; 122 final String suiteName;
123 // This function is set by subclasses before enqueueing starts. 123 // This function is set by subclasses before enqueueing starts.
124 Function doTest; 124 Function doTest;
125 Map<String, String> _environmentOverrides; 125 Map<String, String> _environmentOverrides;
126 RuntimeConfiguration runtimeConfiguration;
126 127
127 TestSuite(this.configuration, this.suiteName) { 128 TestSuite(this.configuration, this.suiteName) {
128 TestUtils.buildDir(configuration); // Sets configuration_directory. 129 TestUtils.buildDir(configuration); // Sets configuration_directory.
129 if (configuration['configuration_directory'] != null) { 130 if (configuration['configuration_directory'] != null) {
130 _environmentOverrides = { 131 _environmentOverrides = {
131 'DART_CONFIGURATION': configuration['configuration_directory'] 132 'DART_CONFIGURATION': configuration['configuration_directory']
132 }; 133 };
133 } 134 }
135 runtimeConfiguration = new RuntimeConfiguration(configuration);
134 } 136 }
135 137
136 Map<String, String> get environmentOverrides => _environmentOverrides; 138 Map<String, String> get environmentOverrides => _environmentOverrides;
137 139
138 /** 140 /**
139 * Whether or not binaries should be found in the root build directory or 141 * Whether or not binaries should be found in the root build directory or
140 * in the built SDK. 142 * in the built SDK.
141 */ 143 */
142 bool get useSdk { 144 bool get useSdk {
143 // The pub suite always uses the SDK. 145 // The pub suite always uses the SDK.
(...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after
286 void forEachTest(TestCaseEvent onTest, Map testCache, [VoidFunction onDone]); 288 void forEachTest(TestCaseEvent onTest, Map testCache, [VoidFunction onDone]);
287 289
288 // This function will be called for every TestCase of this test suite. 290 // This function will be called for every TestCase of this test suite.
289 // It will 291 // It will
290 // - handle sharding 292 // - handle sharding
291 // - update SummaryReport 293 // - update SummaryReport
292 // - handle SKIP/SKIP_BY_DESIGN markers 294 // - handle SKIP/SKIP_BY_DESIGN markers
293 // - test if the selector matches 295 // - test if the selector matches
294 // and will enqueue the test (if necessary). 296 // and will enqueue the test (if necessary).
295 void enqueueNewTestCase(TestCase testCase) { 297 void enqueueNewTestCase(TestCase testCase) {
298 if (testCase.isNegative && runtimeConfiguration.shouldSkipNegativeTests) {
299 return;
300 }
296 var expectations = testCase.expectedOutcomes; 301 var expectations = testCase.expectedOutcomes;
297 302
298 // Handle sharding based on the original test path (i.e. all multitests 303 // Handle sharding based on the original test path (i.e. all multitests
299 // of a given original test belong to the same shard) 304 // of a given original test belong to the same shard)
300 int shards = configuration['shards']; 305 int shards = configuration['shards'];
301 if (shards > 1 && testCase.hash % shards != configuration['shard'] - 1) { 306 if (shards > 1 && testCase.hash % shards != configuration['shard'] - 1) {
302 return; 307 return;
303 } 308 }
304 // Test if the selector includes this test. 309 // Test if the selector includes this test.
305 RegExp pattern = configuration['selectors'][suiteName]; 310 RegExp pattern = configuration['selectors'][suiteName];
(...skipping 782 matching lines...) Expand 10 before | Expand all | Expand 10 after
1088 } 1093 }
1089 } 1094 }
1090 1095
1091 CommandArtifact compilationArtifact = 1096 CommandArtifact compilationArtifact =
1092 compilerConfiguration.computeCompilationArtifact( 1097 compilerConfiguration.computeCompilationArtifact(
1093 buildDir, 1098 buildDir,
1094 tempDir, 1099 tempDir,
1095 CommandBuilder.instance, 1100 CommandBuilder.instance,
1096 compileTimeArguments, 1101 compileTimeArguments,
1097 environmentOverrides); 1102 environmentOverrides);
1098 commands.addAll(compilationArtifact.commands); 1103 if (!configuration['skip-compilation']) {
1104 commands.addAll(compilationArtifact.commands);
1105 }
1099 1106
1100 if (expectCompileError(info) && compilerConfiguration.hasCompiler) { 1107 if (expectCompileError(info) && compilerConfiguration.hasCompiler) {
1101 // Do not attempt to run the compiled result. A compilation 1108 // Do not attempt to run the compiled result. A compilation
1102 // error should be reported by the compilation command. 1109 // error should be reported by the compilation command.
1103 return commands; 1110 return commands;
1104 } 1111 }
1105 1112
1106 RuntimeConfiguration runtimeConfiguration =
1107 new RuntimeConfiguration(configuration);
1108 List<String> runtimeArguments = 1113 List<String> runtimeArguments =
1109 compilerConfiguration.computeRuntimeArguments( 1114 compilerConfiguration.computeRuntimeArguments(
1110 runtimeConfiguration, 1115 runtimeConfiguration,
1111 buildDir, 1116 buildDir,
1112 info, 1117 info,
1113 vmOptions, 1118 vmOptions,
1114 sharedOptions, 1119 sharedOptions,
1115 args, 1120 args,
1116 compilationArtifact); 1121 compilationArtifact);
1117 1122
(...skipping 1414 matching lines...) Expand 10 before | Expand all | Expand 10 after
2532 } 2537 }
2533 if (path.length > WINDOWS_SHORTEN_PATH_LIMIT) { 2538 if (path.length > WINDOWS_SHORTEN_PATH_LIMIT) {
2534 ++shortNameCounter; 2539 ++shortNameCounter;
2535 var pathEnd = path.substring(path.length - WINDOWS_PATH_END_LENGTH); 2540 var pathEnd = path.substring(path.length - WINDOWS_PATH_END_LENGTH);
2536 path = "short${shortNameCounter}_$pathEnd"; 2541 path = "short${shortNameCounter}_$pathEnd";
2537 } 2542 }
2538 } 2543 }
2539 return path; 2544 return path;
2540 } 2545 }
2541 } 2546 }
OLDNEW
« no previous file with comments | « tools/testing/dart/test_runner.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698