OLD | NEW |
1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2015, 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 import 'dart:async'; | 5 import 'dart:async'; |
6 import 'dart:io'; | 6 import 'dart:io'; |
7 | 7 |
8 import 'package:analyzer/analyzer.dart' hide Configuration; | 8 import 'package:analyzer/analyzer.dart' hide Configuration; |
9 import 'package:async/async.dart'; | 9 import 'package:async/async.dart'; |
10 import 'package:path/path.dart' as p; | 10 import 'package:path/path.dart' as p; |
11 | 11 |
12 import '../backend/group.dart'; | 12 import '../backend/group.dart'; |
| 13 import '../backend/invoker.dart'; |
13 import '../backend/metadata.dart'; | 14 import '../backend/metadata.dart'; |
14 import '../backend/test_platform.dart'; | 15 import '../backend/test_platform.dart'; |
15 import '../util/io.dart'; | 16 import '../util/io.dart'; |
16 import '../utils.dart'; | 17 import '../utils.dart'; |
17 import 'browser/platform.dart'; | 18 import 'browser/platform.dart'; |
18 import 'configuration.dart'; | 19 import 'configuration.dart'; |
19 import 'load_exception.dart'; | 20 import 'load_exception.dart'; |
20 import 'load_suite.dart'; | 21 import 'load_suite.dart'; |
21 import 'parse_metadata.dart'; | 22 import 'parse_metadata.dart'; |
22 import 'plugin/environment.dart'; | 23 import 'plugin/environment.dart'; |
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
129 path, 'When using "pub serve", all test files must be in test/.')); | 130 path, 'When using "pub serve", all test files must be in test/.')); |
130 return; | 131 return; |
131 } | 132 } |
132 | 133 |
133 for (var platform in _config.platforms) { | 134 for (var platform in _config.platforms) { |
134 if (!suiteMetadata.testOn.evaluate(platform, os: currentOS)) continue; | 135 if (!suiteMetadata.testOn.evaluate(platform, os: currentOS)) continue; |
135 | 136 |
136 var metadata = suiteMetadata.forPlatform(platform, os: currentOS); | 137 var metadata = suiteMetadata.forPlatform(platform, os: currentOS); |
137 | 138 |
138 // Don't load a skipped suite. | 139 // Don't load a skipped suite. |
139 if (metadata.skip) { | 140 if (metadata.skip && !_config.runSkipped) { |
140 yield new LoadSuite.forSuite(new RunnerSuite( | 141 yield new LoadSuite.forSuite(new RunnerSuite( |
141 const PluginEnvironment(), | 142 const PluginEnvironment(), |
142 new Group.root([], metadata: metadata), | 143 new Group.root( |
| 144 [new LocalTest("(suite)", metadata, () {})], |
| 145 metadata: metadata), |
143 path: path, platform: platform)); | 146 path: path, platform: platform)); |
144 continue; | 147 continue; |
145 } | 148 } |
146 | 149 |
147 var name = (platform.isJS ? "compiling " : "loading ") + path; | 150 var name = (platform.isJS ? "compiling " : "loading ") + path; |
148 yield new LoadSuite(name, () async { | 151 yield new LoadSuite(name, () async { |
149 var memo = _platformPlugins[platform]; | 152 var memo = _platformPlugins[platform]; |
150 | 153 |
151 try { | 154 try { |
152 var plugin = await memo.runOnce(_platformCallbacks[platform]); | 155 var plugin = await memo.runOnce(_platformCallbacks[platform]); |
(...skipping 24 matching lines...) Expand all Loading... |
177 })), | 180 })), |
178 Future.wait(_suites.map((suite) => suite.close())) | 181 Future.wait(_suites.map((suite) => suite.close())) |
179 ]); | 182 ]); |
180 | 183 |
181 _platformPlugins.clear(); | 184 _platformPlugins.clear(); |
182 _platformCallbacks.clear(); | 185 _platformCallbacks.clear(); |
183 _suites.clear(); | 186 _suites.clear(); |
184 }); | 187 }); |
185 final _closeMemo = new AsyncMemoizer(); | 188 final _closeMemo = new AsyncMemoizer(); |
186 } | 189 } |
OLD | NEW |