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

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

Issue 14103003: Remove use of Expect from test scripts and idlparser_test. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Run test scripts in checked mode. 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 library multitest; 5 library multitest;
6 6
7 import "dart:async"; 7 import "dart:async";
8 import "dart:io"; 8 import "dart:io";
9 import "test_suite.dart"; 9 import "test_suite.dart";
10 import "utils.dart"; 10 import "utils.dart";
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
89 testsAsLines.putIfAbsent(annotation.key, 89 testsAsLines.putIfAbsent(annotation.key,
90 () => new List<String>.from(testTemplate)).add(line); 90 () => new List<String>.from(testTemplate)).add(line);
91 outcomes.putIfAbsent(annotation.key, 91 outcomes.putIfAbsent(annotation.key,
92 () => new Set<String>()); 92 () => new Set<String>());
93 if (annotation.rest == 'continued') { 93 if (annotation.rest == 'continued') {
94 continue; 94 continue;
95 } else { 95 } else {
96 for (String nextOutcome in annotation.outcomesList) { 96 for (String nextOutcome in annotation.outcomesList) {
97 outcomes[annotation.key].add(nextOutcome); 97 outcomes[annotation.key].add(nextOutcome);
98 if (!validMultitestOutcomes.contains(nextOutcome)) { 98 if (!validMultitestOutcomes.contains(nextOutcome)) {
99 Expect.fail( 99 print(
100 "Invalid test directive '$nextOutcome' on line ${lineCount}:\n" 100 "Invalid test directive '$nextOutcome' on line ${lineCount}:\n"
101 "${annotation.rest} "); 101 "${annotation.rest} ");
102 exit(1);
102 } 103 }
103 } 104 }
104 } 105 }
105 } else { 106 } else {
106 testTemplate.add(line); 107 testTemplate.add(line);
107 for (var test in testsAsLines.values) test.add(line); 108 for (var test in testsAsLines.values) test.add(line);
108 } 109 }
109 } 110 }
110 111
111 // Check that every key (other than the none case) has at least one outcome 112 // Check that every key (other than the none case) has at least one outcome
112 for (var outcomeKey in outcomes.keys) { 113 for (var outcomeKey in outcomes.keys) {
113 if (outcomeKey != 'none' && outcomes[outcomeKey].isEmpty) { 114 if (outcomeKey != 'none' && outcomes[outcomeKey].isEmpty) {
114 Expect.fail("Test ${outcomeKey} has no valid annotated outcomes.\n" 115 print("Test ${outcomeKey} has no valid annotated outcomes.\n"
115 "Expected one of: ${validMultitestOutcomes.toString()}"); 116 "Expected one of: ${validMultitestOutcomes.toString()}");
117 exit(1);
116 } 118 }
117 } 119 }
118 120
119 // Add the template, with no multitest lines, as a test with key 'none'. 121 // Add the template, with no multitest lines, as a test with key 'none'.
120 testsAsLines['none'] = testTemplate; 122 testsAsLines['none'] = testTemplate;
121 outcomes['none'] = new Set<String>(); 123 outcomes['none'] = new Set<String>();
122 124
123 // Copy all the tests into the output map tests, as multiline strings. 125 // Copy all the tests into the output map tests, as multiline strings.
124 for (String key in testsAsLines.keys) { 126 for (String key in testsAsLines.keys) {
125 tests[key] = testsAsLines[key].join(line_separator).concat(line_separator); 127 tests[key] = testsAsLines[key].join(line_separator).concat(line_separator);
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
165 Match match = relativeImportRegExp.firstMatch(line); 167 Match match = relativeImportRegExp.firstMatch(line);
166 if (match != null) { 168 if (match != null) {
167 Path relativePath = new Path(match.group(3)); 169 Path relativePath = new Path(match.group(3));
168 if (foundImports.contains(relativePath)) { 170 if (foundImports.contains(relativePath)) {
169 continue; 171 continue;
170 } 172 }
171 if (relativePath.toString().contains('..')) { 173 if (relativePath.toString().contains('..')) {
172 // This is just for safety reasons, we don't want 174 // This is just for safety reasons, we don't want
173 // to unintentionally clobber files relative to the destination 175 // to unintentionally clobber files relative to the destination
174 // dir when copying them ove. 176 // dir when copying them ove.
175 Expect.fail("relative paths containing .. are not allowed."); 177 print("relative paths containing .. are not allowed.");
178 exit(1);
176 } 179 }
177 foundImports.add(relativePath); 180 foundImports.add(relativePath);
178 toSearch.add(libraryDir.join(relativePath)); 181 toSearch.add(libraryDir.join(relativePath));
179 } 182 }
180 } 183 }
181 } 184 }
182 } 185 }
183 return foundImports; 186 return foundImports;
184 } 187 }
185 188
186 Future doMultitest(Path filePath, String outputDir, Path suiteDir, 189 Future doMultitest(Path filePath, String outputDir, Path suiteDir,
187 CreateTest doTest) { 190 CreateTest doTest) {
188 // Each new test is a single String value in the Map tests. 191 // Each new test is a single String value in the Map tests.
189 Map<String, String> tests = new Map<String, String>(); 192 Map<String, String> tests = new Map<String, String>();
190 Map<String, Set<String>> outcomes = new Map<String, Set<String>>(); 193 Map<String, Set<String>> outcomes = new Map<String, Set<String>>();
191 ExtractTestsFromMultitest(filePath, tests, outcomes); 194 ExtractTestsFromMultitest(filePath, tests, outcomes);
192 195
193 Path sourceDir = filePath.directoryPath; 196 Path sourceDir = filePath.directoryPath;
194 Path targetDir = CreateMultitestDirectory(outputDir, suiteDir); 197 Path targetDir = CreateMultitestDirectory(outputDir, suiteDir);
195 Expect.isNotNull(targetDir); 198 assert(targetDir != null);
196 199
197 // Copy all the relative imports of the multitest. 200 // Copy all the relative imports of the multitest.
198 Set<Path> importsToCopy = _findAllRelativeImports(filePath); 201 Set<Path> importsToCopy = _findAllRelativeImports(filePath);
199 List<Future> futureCopies = []; 202 List<Future> futureCopies = [];
200 for (Path importPath in importsToCopy) { 203 for (Path importPath in importsToCopy) {
201 // Make sure the target directory exists. 204 // Make sure the target directory exists.
202 Path importDir = importPath.directoryPath; 205 Path importDir = importPath.directoryPath;
203 if (!importDir.isEmpty) { 206 if (!importDir.isEmpty) {
204 TestUtils.mkdirRecursive(targetDir, importDir); 207 TestUtils.mkdirRecursive(targetDir, importDir);
205 } 208 }
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
253 // TestSuite.forDirectory. 256 // TestSuite.forDirectory.
254 split.removeLast(); 257 split.removeLast();
255 } 258 }
256 String path = '${generatedTestDir.path}/${split.last}'; 259 String path = '${generatedTestDir.path}/${split.last}';
257 Directory dir = new Directory(path); 260 Directory dir = new Directory(path);
258 if (!dir.existsSync()) { 261 if (!dir.existsSync()) {
259 dir.createSync(); 262 dir.createSync();
260 } 263 }
261 return new Path(new File(path).fullPathSync()); 264 return new Path(new File(path).fullPathSync());
262 } 265 }
OLDNEW
« tools/test.py ('K') | « tools/test.py ('k') | tools/testing/dart/test_suite.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698