blob: 7716a80efa567c081be4e016e0b3ba5c236d6184 [file] [log] [blame]
/*
* Copyright (c) 2011-2016, the Dart project authors. Please see the AUTHORS
* file for details. All rights reserved. Use of this source code is governed
* by a BSD-style license that can be found in the LICENSE file.
*/
/**
* @assertion Future<Isolate> spawnUri(Uri uri,
* List<String> args,
* message,
* { bool paused: false,
* SendPort onExit,
* SendPort onError,
* bool errorsAreFatal,
* bool checked,
* Map<String, String> environment,
* Uri packageRoot,
* Uri packageConfig,
* bool automaticPackageResolution: false
* }
* )
* Creates and spawns an isolate that runs the code from the library with
* the specified URI.
* ...
* If the paused parameter is set to true, the isolate will start up in
* a paused state, as if by an initial call of
* isolate.pause(isolate.pauseCapability). To resume the isolate, call
* isolate.resume(isolate.pauseCapability).
*
* @description Check that paused parameter with value true cause isolate to
* start up in a paused state, i.e. isolate entry function is not executed
*
* @author a.semenov@unipro.ru
*/
import "dart:isolate";
import "dart:async";
import "../../../Utils/expect.dart";
import "IsolateUtil.dart";
test() async {
bool testPassed = true;
ReceivePort receivePort = new ReceivePort();
receivePort.listen((_) => testPassed = false);
await Isolate.spawnUri(
new Uri.file("spawnUri_A01_t01_isolate.dart"),
["hello"],
receivePort.sendPort,
paused: true);
await new Future.delayed(TWO_SECONDS);
if (testPassed){
asyncEnd();
}
receivePort.close();
}
main() {
asyncStart();
test();
}