| // Copyright (c) 2015, 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. |
| |
| import 'dart:async'; |
| import 'dart:io'; |
| import 'dart:isolate'; |
| |
| const int answer = 42; |
| |
| String fooSync(int x) { |
| if (x == answer) { |
| return '*' * x; |
| } |
| return List.generate(x, (_) => 'xyzzy').join(' '); |
| } |
| |
| class BarClass { |
| BarClass(this.x); |
| |
| int x; |
| |
| void baz() { |
| print(x); |
| } |
| } |
| |
| Future<String> fooAsync(int x) async { |
| if (x == answer) { |
| return '*' * x; |
| } |
| return List.generate(x, (_) => 'xyzzy').join(' '); |
| } |
| |
| /// The number of covered lines is tested and expected to be 4. |
| /// |
| /// If you modify this method, you may have to update the tests! |
| void isolateTask(List threeThings) async { |
| sleep(const Duration(milliseconds: 500)); |
| |
| fooSync(answer); |
| unawaited(fooAsync(answer).then((_) { |
| final port = threeThings.first as SendPort; |
| final sum = (threeThings[1] as int) + (threeThings[2] as int); |
| port.send(sum); |
| })); |
| |
| final bar = BarClass(123); |
| bar.baz(); |
| |
| print('678'); // coverage:ignore-line |
| |
| // coverage:ignore-start |
| print('1'); |
| print('2'); |
| print('3'); |
| // coverage:ignore-end |
| |
| print('4 // coverage:ignore-line'); |
| print('5 // coverage:ignore-file'); |
| |
| print('6'); // coverage:ignore-start |
| print('7'); |
| print('8'); |
| // coverage:ignore-end |
| print('9'); // coverage:ignore-start |
| print('10'); |
| print('11'); // coverage:ignore-line |
| |
| // Regression test for https://github.com/dart-lang/tools/issues/520. |
| await Isolate.run(() => print('Isolate.run'), debugName: 'Grandchild'); |
| // coverage:ignore-end |
| } |