Files
sdk/pkg/vm_service/test/regress_43940_test.dart
T
Ben Konyi 67a4bbb60b [ package:vm_service ] Ensure VmService.onDone doesn't complete until the provided dispose handler has finished
Fixes https://github.com/dart-lang/sdk/issues/43940
TEST=regress_43940_test.dart

Fixed: 43940
Change-Id: I7ad57e0c35a91bf1e1e3dada6662b33b59e2d7bf
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/176922
Commit-Queue: Ben Konyi <bkonyi@google.com>
Reviewed-by: Jacob Richman <jacobr@google.com>
2021-01-05 23:39:29 +00:00

30 lines
868 B
Dart

// Copyright (c) 2020, 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 'package:pedantic/pedantic.dart';
import 'package:test/test.dart';
import 'package:vm_service/vm_service.dart';
void main() {
test('Call dispose handler before onDone completion', () async {
final controller = StreamController<String>(onCancel: () async {
await Future.delayed(const Duration(seconds: 1));
});
bool completed = false;
final fakeService = VmService(
controller.stream,
controller.sink.add,
disposeHandler: () async {
completed = true;
},
);
unawaited(fakeService.dispose());
await fakeService.onDone;
expect(completed, true);
});
}