Skip to content

Commit 0f2618f

Browse files
authored
Fix or except leaks. (#141081)
Contributes to flutter/devtools#6909.
1 parent e58f43f commit 0f2618f

52 files changed

Lines changed: 352 additions & 99 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

packages/flutter/test/animation/live_binding_test.dart

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ library;
99

1010
import 'package:flutter/material.dart';
1111
import 'package:flutter_test/flutter_test.dart';
12+
import 'package:leak_tracker_flutter_testing/leak_tracker_flutter_testing.dart';
1213

1314
void main() {
1415
/*
@@ -77,7 +78,10 @@ void main() {
7778
// Currently skipped due to daily flake: https://github.com/flutter/flutter/issues/87588
7879
}, skip: true); // Typically skip: isBrowser https://github.com/flutter/flutter/issues/42767
7980

80-
testWidgets('Should show event indicator for pointer events with setSurfaceSize', (WidgetTester tester) async {
81+
testWidgets('Should show event indicator for pointer events with setSurfaceSize',
82+
// TODO(polina-c): clean up leaks, https://github.com/flutter/flutter/issues/134787
83+
experimentalLeakTesting: LeakTesting.settings.withIgnoredAll(),
84+
(WidgetTester tester) async {
8185
final AnimationSheetBuilder animationSheet = AnimationSheetBuilder(frameSize: const Size(200, 200), allLayers: true);
8286
addTearDown(animationSheet.dispose);
8387
final List<Offset> taps = <Offset>[];

packages/flutter/test/cupertino/refresh_test.dart

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import 'package:flutter/cupertino.dart';
1010
import 'package:flutter/foundation.dart';
1111
import 'package:flutter/services.dart';
1212
import 'package:flutter_test/flutter_test.dart';
13+
import 'package:leak_tracker_flutter_testing/leak_tracker_flutter_testing.dart';
1314

1415
void main() {
1516
late FakeBuilder mockHelper;
@@ -34,7 +35,10 @@ void main() {
3435
}
3536

3637
void uiTestGroup() {
37-
testWidgets("doesn't invoke anything without user interaction", (WidgetTester tester) async {
38+
testWidgets("doesn't invoke anything without user interaction",
39+
// TODO(polina-c): clean up leaks, https://github.com/flutter/flutter/issues/134787
40+
experimentalLeakTesting: LeakTesting.settings.withIgnoredAll(),
41+
(WidgetTester tester) async {
3842
await tester.pumpWidget(
3943
CupertinoApp(
4044
home: CustomScrollView(

packages/flutter/test/cupertino/text_field_test.dart

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10100,6 +10100,7 @@ void main() {
1010010100
final TextEditingController controller = TextEditingController(
1010110101
text: 'abcd',
1010210102
);
10103+
addTearDown(controller.dispose);
1010310104
await tester.pumpWidget(
1010410105
MaterialApp(
1010510106
home: Scaffold(

packages/flutter/test/cupertino/text_selection_toolbar_test.dart

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -343,6 +343,7 @@ void main() {
343343
final TextEditingController controller = TextEditingController(
344344
text: 'Select me custom menu',
345345
);
346+
addTearDown(controller.dispose);
346347
await tester.pumpWidget(
347348
CupertinoApp(
348349
home: Center(

packages/flutter/test/flutter_test_config.dart

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -43,14 +43,8 @@ Future<void> testExecutable(FutureOr<void> Function() testMain) {
4343

4444
LeakTesting.settings = LeakTesting
4545
.settings
46-
.withTrackedAll()
47-
// TODO(polina-c): clean up leaks and stop ignoring them.
48-
// https://github.com/flutter/flutter/issues/137311
4946
.withIgnored(
5047
allNotGCed: true,
51-
notDisposed: <String, int?>{
52-
'OverlayEntry': null,
53-
},
5448
);
5549
}
5650

packages/flutter/test/foundation/memory_allocations_test.dart

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import 'dart:ui';
66

77
import 'package:flutter/foundation.dart';
88
import 'package:flutter_test/flutter_test.dart';
9+
import 'package:leak_tracker_flutter_testing/leak_tracker_flutter_testing.dart';
910

1011
class PrintOverrideTestBinding extends AutomatedTestWidgetsFlutterBinding {
1112
@override
@@ -26,6 +27,9 @@ class PrintOverrideTestBinding extends AutomatedTestWidgetsFlutterBinding {
2627
}
2728

2829
void main() {
30+
// LeakTesting is turned off because it adds subscriptions to
31+
// [FlutterMemoryAllocations], that may interfere with the tests.
32+
LeakTesting.settings = LeakTesting.settings.withIgnoredAll();
2933
final FlutterMemoryAllocations ma = FlutterMemoryAllocations.instance;
3034

3135
PrintOverrideTestBinding();

packages/flutter/test/gestures/drag_test.dart

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -81,8 +81,8 @@ void main() {
8181
final HorizontalDragGestureRecognizer drag = HorizontalDragGestureRecognizer();
8282
final VerticalDragGestureRecognizer competingDrag = VerticalDragGestureRecognizer()
8383
..onStart = (_) {};
84-
addTearDown(() => drag.dispose);
85-
addTearDown(() => competingDrag.dispose);
84+
addTearDown(drag.dispose);
85+
addTearDown(competingDrag.dispose);
8686

8787
late Offset positionAtOnStart;
8888
drag.onStart = (DragStartDetails details) {
@@ -104,8 +104,8 @@ void main() {
104104
final HorizontalDragGestureRecognizer drag = HorizontalDragGestureRecognizer();
105105
final VerticalDragGestureRecognizer competingDrag = VerticalDragGestureRecognizer()
106106
..onStart = (_) {};
107-
addTearDown(() => drag.dispose);
108-
addTearDown(() => competingDrag.dispose);
107+
addTearDown(drag.dispose);
108+
addTearDown(competingDrag.dispose);
109109

110110
Offset? positionAtOnStart;
111111
drag.onStart = (DragStartDetails details) {
@@ -354,7 +354,7 @@ void main() {
354354

355355
final VerticalDragGestureRecognizer competingDrag = VerticalDragGestureRecognizer()
356356
..onStart = (_) {};
357-
addTearDown(() => competingDrag.dispose);
357+
addTearDown(competingDrag.dispose);
358358

359359
down = pointer.down(const Offset(10.0, 10.0), timeStamp: const Duration(milliseconds: 600));
360360
drag.addPointer(down);
@@ -436,8 +436,8 @@ void main() {
436436
final VerticalDragGestureRecognizer competingDrag = VerticalDragGestureRecognizer()
437437
..dragStartBehavior = DragStartBehavior.down
438438
..onStart = (_) {};
439-
addTearDown(() => drag.dispose);
440-
addTearDown(() => competingDrag.dispose);
439+
addTearDown(drag.dispose);
440+
addTearDown(competingDrag.dispose);
441441

442442
Offset? positionAtOnStart;
443443
drag.onStart = (DragStartDetails details) {
@@ -475,8 +475,8 @@ void main() {
475475
VerticalDragGestureRecognizer()
476476
..dragStartBehavior = DragStartBehavior.down
477477
..multitouchDragStrategy = MultitouchDragStrategy.sumAllPointers;
478-
addTearDown(() => drag1.dispose);
479-
addTearDown(() => drag2.dispose);
478+
addTearDown(drag1.dispose);
479+
addTearDown(drag2.dispose);
480480

481481
final List<String> log = <String>[];
482482
drag1.onDown = (_) { log.add('drag1-down'); };
@@ -556,8 +556,8 @@ void main() {
556556
HorizontalDragGestureRecognizer() ..dragStartBehavior = DragStartBehavior.down;
557557
final VerticalDragGestureRecognizer drag2 =
558558
VerticalDragGestureRecognizer() ..dragStartBehavior = DragStartBehavior.down;
559-
addTearDown(() => drag1.dispose);
560-
addTearDown(() => drag2.dispose);
559+
addTearDown(drag1.dispose);
560+
addTearDown(drag2.dispose);
561561

562562
final List<String> log = <String>[];
563563
drag1.onDown = (_) { log.add('drag1-down'); };

packages/flutter/test/gestures/force_press_test.dart

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ void main() {
3030
}
3131

3232
final ForcePressGestureRecognizer force = ForcePressGestureRecognizer();
33+
addTearDown(force.dispose);
3334

3435
force.onStart = onStart;
3536
force.onPeak = (ForcePressDetails details) => peaked += 1;
@@ -113,6 +114,7 @@ void main() {
113114
int ended = 0;
114115

115116
final ForcePressGestureRecognizer force = ForcePressGestureRecognizer();
117+
addTearDown(force.dispose);
116118

117119
force.onStart = (ForcePressDetails details) => started += 1;
118120
force.onPeak = (ForcePressDetails details) => peaked += 1;
@@ -167,6 +169,7 @@ void main() {
167169
int ended = 0;
168170

169171
final ForcePressGestureRecognizer force = ForcePressGestureRecognizer();
172+
addTearDown(force.dispose);
170173

171174
force.onStart = (_) => started += 1;
172175
force.onPeak = (_) => peaked += 1;
@@ -204,6 +207,7 @@ void main() {
204207

205208
testGesture('Should recognize drag and not force touch if there is a drag recognizer', (GestureTester tester) {
206209
final PanGestureRecognizer drag = PanGestureRecognizer();
210+
addTearDown(drag.dispose);
207211

208212
// Device specific constants that represent those from the iPhone X
209213
const double pressureMin = 0;
@@ -215,6 +219,7 @@ void main() {
215219
int ended = 0;
216220

217221
final ForcePressGestureRecognizer force = ForcePressGestureRecognizer();
222+
addTearDown(force.dispose);
218223

219224
force.onStart = (_) => started += 1;
220225
force.onPeak = (_) => peaked += 1;
@@ -276,6 +281,7 @@ void main() {
276281

277282
testGesture('Should not call ended on pointer up if the gesture was never accepted', (GestureTester tester) {
278283
final PanGestureRecognizer drag = PanGestureRecognizer();
284+
addTearDown(drag.dispose);
279285

280286
// Device specific constants that represent those from the iPhone X
281287
const double pressureMin = 0;
@@ -287,6 +293,7 @@ void main() {
287293
int ended = 0;
288294

289295
final ForcePressGestureRecognizer force = ForcePressGestureRecognizer();
296+
addTearDown(force.dispose);
290297

291298
force.onStart = (_) => started += 1;
292299
force.onPeak = (_) => peaked += 1;
@@ -321,6 +328,7 @@ void main() {
321328

322329
testGesture('Should call start only once if there is a competing gesture recognizer', (GestureTester tester) {
323330
final PanGestureRecognizer drag = PanGestureRecognizer();
331+
addTearDown(drag.dispose);
324332

325333
// Device specific constants that represent those from the iPhone X
326334
const double pressureMin = 0;
@@ -332,6 +340,7 @@ void main() {
332340
int ended = 0;
333341

334342
final ForcePressGestureRecognizer force = ForcePressGestureRecognizer();
343+
addTearDown(force.dispose);
335344

336345
force.onStart = (_) => started += 1;
337346
force.onPeak = (_) => peaked += 1;
@@ -398,6 +407,7 @@ void main() {
398407
}
399408

400409
final ForcePressGestureRecognizer force = ForcePressGestureRecognizer(interpolation: interpolateWithEasing);
410+
addTearDown(force.dispose);
401411

402412
force.onStart = onStart;
403413
force.onPeak = (ForcePressDetails details) => peaked += 1;
@@ -488,6 +498,7 @@ void main() {
488498
int ended = 0;
489499

490500
final ForcePressGestureRecognizer force = ForcePressGestureRecognizer();
501+
addTearDown(force.dispose);
491502

492503
force.onStart = (_) => started += 1;
493504
force.onPeak = (_) => peaked += 1;
@@ -536,6 +547,7 @@ void main() {
536547
int ended = 0;
537548

538549
final ForcePressGestureRecognizer force = ForcePressGestureRecognizer();
550+
addTearDown(force.dispose);
539551

540552
force.onStart = (_) => started += 1;
541553
force.onPeak = (_) => peaked += 1;

packages/flutter/test/gestures/monodrag_test.dart

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,10 @@ void main() {
4040

4141
final VerticalDragGestureRecognizer v = VerticalDragGestureRecognizer()
4242
..onStart = (_) { };
43+
addTearDown(v.dispose);
4344
final HorizontalDragGestureRecognizer h = HorizontalDragGestureRecognizer()
4445
..onStart = (_) { };
46+
addTearDown(h.dispose);
4547

4648
const PointerDownEvent down90 = PointerDownEvent(
4749
pointer: 90,

packages/flutter/test/gestures/scale_test.dart

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -633,6 +633,7 @@ void main() {
633633
// Regressing test for https://github.com/flutter/flutter/issues/78941
634634
testGesture('First rotation test', (GestureTester tester) {
635635
final ScaleGestureRecognizer scale = ScaleGestureRecognizer();
636+
addTearDown(scale.dispose);
636637

637638
double? updatedRotation;
638639
scale.onUpdate = (ScaleUpdateDetails details) {
@@ -712,7 +713,9 @@ void main() {
712713

713714
testGesture('Should recognize scale gestures from pointer pan/zoom events', (GestureTester tester) {
714715
final ScaleGestureRecognizer scale = ScaleGestureRecognizer();
716+
addTearDown(scale.dispose);
715717
final HorizontalDragGestureRecognizer drag = HorizontalDragGestureRecognizer();
718+
addTearDown(drag.dispose);
716719

717720
bool didStartScale = false;
718721
Offset? updatedFocalPoint;
@@ -812,7 +815,9 @@ void main() {
812815

813816
testGesture('Pointer pan/zooms should work alongside touches', (GestureTester tester) {
814817
final ScaleGestureRecognizer scale = ScaleGestureRecognizer();
818+
addTearDown(scale.dispose);
815819
final HorizontalDragGestureRecognizer drag = HorizontalDragGestureRecognizer();
820+
addTearDown(drag.dispose);
816821

817822
bool didStartScale = false;
818823
Offset? updatedFocalPoint;
@@ -1062,7 +1067,9 @@ void main() {
10621067

10631068
testGesture('Scale gesture from pan/zoom events properly handles DragStartBehavior.start', (GestureTester tester) {
10641069
final ScaleGestureRecognizer scale = ScaleGestureRecognizer(dragStartBehavior: DragStartBehavior.start);
1070+
addTearDown(scale.dispose);
10651071
final HorizontalDragGestureRecognizer drag = HorizontalDragGestureRecognizer();
1072+
addTearDown(drag.dispose);
10661073

10671074
bool didStartScale = false;
10681075
Offset? updatedFocalPoint;
@@ -1161,8 +1168,6 @@ void main() {
11611168
expect(updatedDelta, isNull);
11621169
expect(didEndScale, isTrue);
11631170
didEndScale = false;
1164-
1165-
scale.dispose();
11661171
});
11671172

11681173
testGesture('scale trackpadScrollCausesScale', (GestureTester tester) {

0 commit comments

Comments
 (0)