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

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

Issue 1086213002: Support a @Timeout annotation. (Closed) Base URL: git@github.com:dart-lang/test@master
Patch Set: CHANGELOG + README Created 5 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « lib/src/runner/browser/server.dart ('k') | lib/src/runner/parse_metadata.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 14e33503a1bc5cd32e00c55287f31f27dcb5b864..498b14bda176fe1b45019125ebf77b3707966af6 100644
--- a/lib/src/runner/loader.dart
+++ b/lib/src/runner/loader.dart
@@ -135,35 +135,41 @@ class Loader {
'When using "pub serve", all test files must be in test/.');
}
- if (platform.isBrowser) return _loadBrowserFile(path, platform);
- assert(platform == TestPlatform.vm);
- return _loadVmFile(path);
+ if (platform == TestPlatform.vm) return _loadVmFile(path, metadata);
+ assert(platform.isBrowser);
+ return _loadBrowserFile(path, platform, metadata);
}).then((suite) {
if (suite == null) return;
- controller.add(suite
- .change(metadata: metadata).filter(platform, os: currentOS));
+ controller.add(suite.filter(platform, os: currentOS));
}).catchError(controller.addError);
}).then((_) => controller.close());
return controller.stream;
}
- /// Load the test suite at [path] in a browser.
- Future<Suite> _loadBrowserFile(String path, TestPlatform platform) =>
+ /// Load the test suite at [path] in [platform].
+ ///
+ /// [metadata] is the suite-level metadata for the test.
+ Future<Suite> _loadBrowserFile(String path, TestPlatform platform,
+ Metadata metadata) =>
_browserServer.then((browserServer) =>
- browserServer.loadSuite(path, platform));
+ browserServer.loadSuite(path, platform, metadata));
/// Load the test suite at [path] in VM isolate.
- Future<Suite> _loadVmFile(String path) {
+ ///
+ /// [metadata] is the suite-level metadata for the test.
+ Future<Suite> _loadVmFile(String path, Metadata metadata) {
var receivePort = new ReceivePort();
return new Future.sync(() {
if (_pubServeUrl != null) {
var url = _pubServeUrl.resolve(
p.relative(path, from: 'test') + '.vm_test.dart');
- return Isolate.spawnUri(url, [], {'reply': receivePort.sendPort})
- .then((isolate) => new IsolateWrapper(isolate, () {}))
+ return Isolate.spawnUri(url, [], {
+ 'reply': receivePort.sendPort,
+ 'metadata': metadata.serialize()
+ }).then((isolate) => new IsolateWrapper(isolate, () {}))
.catchError((error, stackTrace) {
if (error is! IsolateSpawnException) throw error;
@@ -181,16 +187,19 @@ class Loader {
});
} else {
return runInIsolate('''
+import "package:test/src/backend/metadata.dart";
import "package:test/src/runner/vm/isolate_listener.dart";
import "${p.toUri(p.absolute(path))}" as test;
void main(_, Map message) {
var sendPort = message['reply'];
- IsolateListener.start(sendPort, () => test.main);
+ var metadata = new Metadata.deserialize(message['metadata']);
+ IsolateListener.start(sendPort, metadata, () => test.main);
}
''', {
- 'reply': receivePort.sendPort
+ 'reply': receivePort.sendPort,
+ 'metadata': metadata.serialize()
}, packageRoot: _packageRoot);
}
}).catchError((error, stackTrace) {
@@ -211,9 +220,9 @@ void main(_, Map message) {
}
return new Suite(response["tests"].map((test) {
- var metadata = new Metadata.deserialize(test['metadata']);
- return new IsolateTest(test['name'], metadata, test['sendPort']);
- }), path: path, platform: "VM");
+ var testMetadata = new Metadata.deserialize(test['metadata']);
+ return new IsolateTest(test['name'], testMetadata, test['sendPort']);
+ }), metadata: metadata, path: path, platform: "VM");
});
}
« no previous file with comments | « lib/src/runner/browser/server.dart ('k') | lib/src/runner/parse_metadata.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698