Chromium Code Reviews

Unified Diff: lib/src/runner/loader.dart

Issue 1379203002: Refactor groups to pipe them through to the runner. (Closed) Base URL: git@github.com:dart-lang/test@master
Patch Set: Code review changes Created 5 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View side-by-side diff with in-line comments
« no previous file with comments | « lib/src/runner/load_suite.dart ('k') | lib/src/runner/runner_suite.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: lib/src/runner/loader.dart
diff --git a/lib/src/runner/loader.dart b/lib/src/runner/loader.dart
index abf22b94f957633d5a77205253ff16402deb2b72..b666c136d95bafd9790b59acd9d34bc399554aaa 100644
--- a/lib/src/runner/loader.dart
+++ b/lib/src/runner/loader.dart
@@ -14,7 +14,9 @@ import 'package:path/path.dart' as p;
import 'package:stack_trace/stack_trace.dart';
import '../backend/invoker.dart';
+import '../backend/group.dart';
import '../backend/metadata.dart';
+import '../backend/suite_entry.dart';
import '../backend/test_platform.dart';
import '../util/dart.dart' as dart;
import '../util/io.dart';
@@ -219,16 +221,14 @@ void main(_, Map message) {
asyncError.stackTrace);
} else {
assert(response["type"] == "success");
- completer.complete(response["tests"]);
+ completer.complete(response["entries"]);
}
});
try {
- var suite = new RunnerSuite(const VMEnvironment(),
- (await completer.future).map((test) {
- var testMetadata = new Metadata.deserialize(test['metadata']);
- return new IsolateTest(test['name'], testMetadata, test['sendPort']);
- }),
+ var suite = new RunnerSuite(
+ const VMEnvironment(),
+ _deserializeEntries(await completer.future),
metadata: metadata,
path: path,
platform: TestPlatform.vm,
@@ -241,6 +241,19 @@ void main(_, Map message) {
}
}
+ /// Deserializes [entries] into concrete [SuiteEntry] subclasses.
+ Iterable<SuiteEntry> _deserializeEntries(List<Map> entries) {
+ return entries.map((entry) {
+ var metadata = new Metadata.deserialize(entry['metadata']);
+ if (entry['type'] == 'group') {
+ return new Group(
+ entry['name'], metadata, _deserializeEntries(entry['entries']));
+ } else {
+ return new IsolateTest(entry['name'], metadata, entry['sendPort']);
+ }
+ });
+ }
+
/// Closes the loader and releases all resources allocated by it.
Future close() {
return _closeMemo.runOnce(() async {
« no previous file with comments | « lib/src/runner/load_suite.dart ('k') | lib/src/runner/runner_suite.dart » ('j') | no next file with comments »

Powered by Google App Engine