blob: 8bbc6be315077474473678ddce7564c1bfbe36c2 [file] [log] [blame]
// 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
}