| Index: lib/src/backend/invoker.dart
|
| diff --git a/lib/src/backend/invoker.dart b/lib/src/backend/invoker.dart
|
| index 0dc42c9fa9fd4fe37d960f4df299d02fa1a8fa5f..644e49c8c82b040f63b32031ec1e6bd19c53d3ab 100644
|
| --- a/lib/src/backend/invoker.dart
|
| +++ b/lib/src/backend/invoker.dart
|
| @@ -14,13 +14,15 @@ import 'closed_exception.dart';
|
| import 'live_test.dart';
|
| import 'live_test_controller.dart';
|
| import 'metadata.dart';
|
| +import 'operating_system.dart';
|
| import 'outstanding_callback_counter.dart';
|
| import 'state.dart';
|
| import 'suite.dart';
|
| import 'test.dart';
|
| +import 'test_platform.dart';
|
|
|
| /// A test in this isolate.
|
| -class LocalTest implements Test {
|
| +class LocalTest extends Test {
|
| final String name;
|
| final Metadata metadata;
|
|
|
| @@ -36,11 +38,9 @@ class LocalTest implements Test {
|
| return invoker.liveTest;
|
| }
|
|
|
| - Test change({String name, Metadata metadata}) {
|
| - if (name == name && metadata == this.metadata) return this;
|
| - if (name == null) name = this.name;
|
| - if (metadata == null) metadata = this.metadata;
|
| - return new LocalTest(name, metadata, _body);
|
| + Test forPlatform(TestPlatform platform, {OperatingSystem os}) {
|
| + if (!metadata.testOn.evaluate(platform, os: os)) return null;
|
| + return new LocalTest(name, metadata.forPlatform(platform, os: os), _body);
|
| }
|
| }
|
|
|
| @@ -83,9 +83,6 @@ class Invoker {
|
| /// The test being run.
|
| LocalTest get _test => liveTest.test as LocalTest;
|
|
|
| - /// The test metadata merged with the suite metadata.
|
| - final Metadata metadata;
|
| -
|
| /// The outstanding callback counter for the current zone.
|
| OutstandingCallbackCounter get _outstandingCallbacks {
|
| var counter = Zone.current[_counterKey];
|
| @@ -120,8 +117,7 @@ class Invoker {
|
| /// This will be `null` until the test starts running.
|
| Timer _timeoutTimer;
|
|
|
| - Invoker._(Suite suite, LocalTest test)
|
| - : metadata = suite.metadata.merge(test.metadata) {
|
| + Invoker._(Suite suite, LocalTest test) {
|
| _controller = new LiveTestController(
|
| suite, test, _onRun, _onCloseCompleter.complete);
|
| }
|
| @@ -205,7 +201,8 @@ class Invoker {
|
| if (liveTest.isComplete) return;
|
| if (_timeoutTimer != null) _timeoutTimer.cancel();
|
|
|
| - var timeout = metadata.timeout.apply(new Duration(seconds: 30));
|
| + var timeout = liveTest.test.metadata.timeout
|
| + .apply(new Duration(seconds: 30));
|
| if (timeout == null) return;
|
| _timeoutTimer = _invokerZone.createTimer(timeout,
|
| Zone.current.bindCallback(() {
|
|
|