mirror of
https://github.com/flutter/flutter.git
synced 2025-06-03 00:51:18 +00:00

* opt out the flutter tool * oops EOF * fix import * Update tool_backend.dart * Update daemon_client.dart * fix more
109 lines
2.2 KiB
Dart
109 lines
2.2 KiB
Dart
// Copyright 2014 The Flutter Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style license that can be
|
|
// found in the LICENSE file.
|
|
|
|
// @dart = 2.8
|
|
|
|
import '../test_utils.dart';
|
|
import 'project.dart';
|
|
|
|
/// Spawns a background isolate that prints a debug message.
|
|
class BackgroundProject extends Project {
|
|
|
|
@override
|
|
final String pubspec = '''
|
|
name: test
|
|
environment:
|
|
sdk: ">=2.12.0-0 <3.0.0"
|
|
|
|
dependencies:
|
|
flutter:
|
|
sdk: flutter
|
|
''';
|
|
|
|
@override
|
|
final String main = r'''
|
|
import 'dart:async';
|
|
import 'dart:isolate';
|
|
|
|
import 'package:flutter/widgets.dart';
|
|
import 'package:flutter/material.dart';
|
|
|
|
void main() {
|
|
Isolate.spawn<void>(background, null, debugName: 'background');
|
|
TestMain();
|
|
}
|
|
|
|
void background(void message) {
|
|
TestIsolate();
|
|
}
|
|
|
|
class TestMain {
|
|
TestMain() {
|
|
debugPrint('Main thread');
|
|
}
|
|
}
|
|
|
|
class TestIsolate {
|
|
TestIsolate() {
|
|
debugPrint('Isolate thread');
|
|
}
|
|
}
|
|
''';
|
|
|
|
void updateTestIsolatePhrase(String message) {
|
|
final String newMainContents = main.replaceFirst('Isolate thread', message);
|
|
writeFile(fileSystem.path.join(dir.path, 'lib', 'main.dart'), newMainContents);
|
|
}
|
|
}
|
|
|
|
// Spawns a background isolate that repeats a message.
|
|
class RepeatingBackgroundProject extends Project {
|
|
|
|
@override
|
|
final String pubspec = '''
|
|
name: test
|
|
environment:
|
|
sdk: ">=2.12.0-0 <3.0.0"
|
|
|
|
dependencies:
|
|
flutter:
|
|
sdk: flutter
|
|
''';
|
|
|
|
@override
|
|
final String main = r'''
|
|
import 'dart:async';
|
|
import 'dart:isolate';
|
|
|
|
import 'package:flutter/widgets.dart';
|
|
import 'package:flutter/material.dart';
|
|
|
|
void main() {
|
|
Isolate.spawn<void>(background, null, debugName: 'background');
|
|
TestMain();
|
|
}
|
|
|
|
void background(void message) {
|
|
Timer.periodic(const Duration(milliseconds: 500), (Timer timer) => TestIsolate());
|
|
}
|
|
|
|
class TestMain {
|
|
TestMain() {
|
|
debugPrint('Main thread');
|
|
}
|
|
}
|
|
|
|
class TestIsolate {
|
|
TestIsolate() {
|
|
debugPrint('Isolate thread');
|
|
}
|
|
}
|
|
''';
|
|
|
|
void updateTestIsolatePhrase(String message) {
|
|
final String newMainContents = main.replaceFirst('Isolate thread', message);
|
|
writeFile(fileSystem.path.join(dir.path, 'lib', 'main.dart'), newMainContents);
|
|
}
|
|
}
|