Skip to content

Commit 8e7fce9

Browse files
authored
[leak-tracking] Add more leak tracking in test/painting flutter#3 (#136170)
1 parent e1b420c commit 8e7fce9

File tree

4 files changed

+28
-24
lines changed

4 files changed

+28
-24
lines changed

packages/flutter/test/painting/paint_image_test.dart

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import 'dart:ui' as ui;
77
import 'package:flutter/foundation.dart';
88
import 'package:flutter/material.dart';
99
import 'package:flutter_test/flutter_test.dart';
10+
import 'package:leak_tracker_flutter_testing/leak_tracker_flutter_testing.dart';
1011

1112
class TestCanvas implements Canvas {
1213
final List<Invocation> invocations = <Invocation>[];
@@ -160,7 +161,7 @@ void main() {
160161
expect(command.positionalArguments[2], equals(const Rect.fromLTRB(20.0, 40.0, 860.0, 840.0)));
161162
});
162163

163-
testWidgets('Reports Image painting', (WidgetTester tester) async {
164+
testWidgetsWithLeakTracking('Reports Image painting', (WidgetTester tester) async {
164165
late ImageSizeInfo imageSizeInfo;
165166
int count = 0;
166167
debugOnPaintImage = (ImageSizeInfo info) {
@@ -199,7 +200,7 @@ void main() {
199200
debugOnPaintImage = null;
200201
});
201202

202-
testWidgets('Reports Image painting - change per frame', (WidgetTester tester) async {
203+
testWidgetsWithLeakTracking('Reports Image painting - change per frame', (WidgetTester tester) async {
203204
late ImageSizeInfo imageSizeInfo;
204205
int count = 0;
205206
debugOnPaintImage = (ImageSizeInfo info) {
@@ -242,7 +243,7 @@ void main() {
242243
debugOnPaintImage = null;
243244
});
244245

245-
testWidgets('Reports Image painting - no debug label', (WidgetTester tester) async {
246+
testWidgetsWithLeakTracking('Reports Image painting - no debug label', (WidgetTester tester) async {
246247
late ImageSizeInfo imageSizeInfo;
247248
int count = 0;
248249
debugOnPaintImage = (ImageSizeInfo info) {

packages/flutter/test/painting/star_border_test.dart

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ library;
77

88
import 'package:flutter/material.dart';
99
import 'package:flutter_test/flutter_test.dart';
10+
import 'package:leak_tracker_flutter_testing/leak_tracker_flutter_testing.dart';
1011

1112
void main() {
1213
Future<void> testBorder(WidgetTester tester, String name, StarBorder border,
@@ -114,12 +115,12 @@ void main() {
114115
expect(copy, isNot(equals(copy.copyWith(squash: 0.0))));
115116
});
116117

117-
testWidgets('StarBorder basic geometry', (WidgetTester tester) async {
118+
testWidgetsWithLeakTracking('StarBorder basic geometry', (WidgetTester tester) async {
118119
await testBorder(tester, 'basic_star', const StarBorder());
119120
await testBorder(tester, 'basic_polygon', const StarBorder.polygon());
120121
});
121122

122-
testWidgets('StarBorder parameters', (WidgetTester tester) async {
123+
testWidgetsWithLeakTracking('StarBorder parameters', (WidgetTester tester) async {
123124
await testBorder(tester, 'points_6', const StarBorder(points: 6));
124125
await testBorder(tester, 'points_2', const StarBorder(points: 2));
125126
await testBorder(tester, 'inner_radius_0', const StarBorder(innerRadiusRatio: 0.0));
@@ -144,7 +145,7 @@ void main() {
144145
await testBorder(tester, 'side_align_outside', const StarBorder(side: BorderSide(color: Color(0xffff0000), strokeAlign: BorderSide.strokeAlignOutside)));
145146
});
146147

147-
testWidgets('StarBorder.polygon parameters', (WidgetTester tester) async {
148+
testWidgetsWithLeakTracking('StarBorder.polygon parameters', (WidgetTester tester) async {
148149
await testBorder(tester, 'poly_sides_6', const StarBorder.polygon(sides: 6));
149150
await testBorder(tester, 'poly_sides_2', const StarBorder.polygon(sides: 2));
150151
await testBorder(tester, 'poly_point_rounding_20', const StarBorder.polygon(pointRounding: 0.2));
@@ -163,7 +164,7 @@ void main() {
163164
await testBorder(tester, 'poly_side_align_outside', const StarBorder.polygon(side: BorderSide(color: Color(0xffff0000), strokeAlign: BorderSide.strokeAlignOutside)));
164165
});
165166

166-
testWidgets("StarBorder doesn't try to scale an infinite scale matrix", (WidgetTester tester) async {
167+
testWidgetsWithLeakTracking("StarBorder doesn't try to scale an infinite scale matrix", (WidgetTester tester) async {
167168
await tester.pumpWidget(
168169
Directionality(
169170
textDirection: TextDirection.ltr,
@@ -191,7 +192,7 @@ void main() {
191192
expect(tester.takeException(), isNull);
192193
});
193194

194-
testWidgets('StarBorder lerped with StarBorder', (WidgetTester tester) async {
195+
testWidgetsWithLeakTracking('StarBorder lerped with StarBorder', (WidgetTester tester) async {
195196
const StarBorder from = StarBorder();
196197
const ShapeBorder otherBorder = StarBorder(
197198
points: 6,
@@ -208,7 +209,7 @@ void main() {
208209
await testBorder(tester, 'from_star_border_100', from, lerpFrom: otherBorder, lerpAmount: 1.0);
209210
});
210211

211-
testWidgets('StarBorder lerped with CircleBorder', (WidgetTester tester) async {
212+
testWidgetsWithLeakTracking('StarBorder lerped with CircleBorder', (WidgetTester tester) async {
212213
const StarBorder from = StarBorder();
213214
const ShapeBorder otherBorder = CircleBorder();
214215
const ShapeBorder eccentricCircle = CircleBorder(eccentricity: 0.6);
@@ -226,7 +227,7 @@ void main() {
226227
await testBorder(tester, 'from_eccentric_circle_border_100', from, lerpFrom: eccentricCircle, lerpAmount: 1.0);
227228
});
228229

229-
testWidgets('StarBorder lerped with RoundedRectangleBorder', (WidgetTester tester) async {
230+
testWidgetsWithLeakTracking('StarBorder lerped with RoundedRectangleBorder', (WidgetTester tester) async {
230231
const StarBorder from = StarBorder();
231232
const RoundedRectangleBorder rectangleBorder = RoundedRectangleBorder();
232233
await testBorder(tester, 'to_rect_border_20', from, lerpTo: rectangleBorder, lerpAmount: 0.2);
@@ -250,7 +251,7 @@ void main() {
250251
await testBorder(tester, 'from_rrect_border_100', from, lerpFrom: roundedRectBorder, lerpAmount: 1.0);
251252
});
252253

253-
testWidgets('StarBorder lerped with StadiumBorder', (WidgetTester tester) async {
254+
testWidgetsWithLeakTracking('StarBorder lerped with StadiumBorder', (WidgetTester tester) async {
254255
const StarBorder from = StarBorder();
255256
const StadiumBorder stadiumBorder = StadiumBorder();
256257

packages/flutter/test/painting/system_fonts_test.dart

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import 'package:flutter/material.dart';
1010
import 'package:flutter/rendering.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
Future<void> verifyMarkedNeedsLayoutDuringTransientCallbacksPhase(WidgetTester tester, RenderObject renderObject) async {
1516
assert(!renderObject.debugNeedsLayout);
@@ -36,7 +37,7 @@ Future<void> verifyMarkedNeedsLayoutDuringTransientCallbacksPhase(WidgetTester t
3637
}
3738

3839
void main() {
39-
testWidgets('RenderParagraph relayout upon system fonts changes', (WidgetTester tester) async {
40+
testWidgetsWithLeakTracking('RenderParagraph relayout upon system fonts changes', (WidgetTester tester) async {
4041
await tester.pumpWidget(
4142
const MaterialApp(
4243
home: Text('text widget'),
@@ -46,7 +47,7 @@ void main() {
4647
await verifyMarkedNeedsLayoutDuringTransientCallbacksPhase(tester, renderObject);
4748
});
4849

49-
testWidgets(
50+
testWidgetsWithLeakTracking(
5051
'Safe to query a RelayoutWhenSystemFontsChangeMixin for text layout after system fonts changes',
5152
(WidgetTester tester) async {
5253
final _RenderCustomRelayoutWhenSystemFontsChange child = _RenderCustomRelayoutWhenSystemFontsChange();
@@ -68,7 +69,7 @@ void main() {
6869
},
6970
);
7071

71-
testWidgets('RenderEditable relayout upon system fonts changes', (WidgetTester tester) async {
72+
testWidgetsWithLeakTracking('RenderEditable relayout upon system fonts changes', (WidgetTester tester) async {
7273
await tester.pumpWidget(
7374
const MaterialApp(
7475
home: SelectableText('text widget'),
@@ -79,7 +80,7 @@ void main() {
7980
await verifyMarkedNeedsLayoutDuringTransientCallbacksPhase(tester, state.renderEditable);
8081
});
8182

82-
testWidgets('Banner repaint upon system fonts changes', (WidgetTester tester) async {
83+
testWidgetsWithLeakTracking('Banner repaint upon system fonts changes', (WidgetTester tester) async {
8384
await tester.pumpWidget(
8485
const Banner(
8586
message: 'message',
@@ -100,7 +101,7 @@ void main() {
100101
expect(renderObject.debugNeedsPaint, isTrue);
101102
});
102103

103-
testWidgets('CupertinoDatePicker reset cache upon system fonts change - date time mode', (WidgetTester tester) async {
104+
testWidgetsWithLeakTracking('CupertinoDatePicker reset cache upon system fonts change - date time mode', (WidgetTester tester) async {
104105
await tester.pumpWidget(
105106
CupertinoApp(
106107
home: CupertinoDatePicker(
@@ -126,7 +127,7 @@ void main() {
126127
expect(element.dirty, isTrue);
127128
}, skip: isBrowser); // TODO(yjbanov): cupertino does not work on the Web yet: https://github.com/flutter/flutter/issues/41920
128129

129-
testWidgets('CupertinoDatePicker reset cache upon system fonts change - date mode', (WidgetTester tester) async {
130+
testWidgetsWithLeakTracking('CupertinoDatePicker reset cache upon system fonts change - date mode', (WidgetTester tester) async {
130131
await tester.pumpWidget(
131132
CupertinoApp(
132133
home: CupertinoDatePicker(
@@ -154,7 +155,7 @@ void main() {
154155
expect(element.dirty, isTrue);
155156
}, skip: isBrowser); // TODO(yjbanov): cupertino does not work on the Web yet: https://github.com/flutter/flutter/issues/41920
156157

157-
testWidgets('CupertinoDatePicker reset cache upon system fonts change - time mode', (WidgetTester tester) async {
158+
testWidgetsWithLeakTracking('CupertinoDatePicker reset cache upon system fonts change - time mode', (WidgetTester tester) async {
158159
await tester.pumpWidget(
159160
CupertinoApp(
160161
home: CupertinoTimerPicker(
@@ -189,7 +190,7 @@ void main() {
189190
expect(element.dirty, isTrue);
190191
}, skip: isBrowser); // TODO(yjbanov): cupertino does not work on the Web yet: https://github.com/flutter/flutter/issues/41920
191192

192-
testWidgets('RangeSlider relayout upon system fonts changes', (WidgetTester tester) async {
193+
testWidgetsWithLeakTracking('RangeSlider relayout upon system fonts changes', (WidgetTester tester) async {
193194
await tester.pumpWidget(
194195
MaterialApp(
195196
home: Material(
@@ -212,7 +213,7 @@ void main() {
212213
await verifyMarkedNeedsLayoutDuringTransientCallbacksPhase(tester, renderObject);
213214
});
214215

215-
testWidgets('Slider relayout upon system fonts changes', (WidgetTester tester) async {
216+
testWidgetsWithLeakTracking('Slider relayout upon system fonts changes', (WidgetTester tester) async {
216217
await tester.pumpWidget(
217218
MaterialApp(
218219
home: Material(
@@ -228,7 +229,7 @@ void main() {
228229
await verifyMarkedNeedsLayoutDuringTransientCallbacksPhase(tester, renderObject);
229230
});
230231

231-
testWidgets('TimePicker relayout upon system fonts changes', (WidgetTester tester) async {
232+
testWidgetsWithLeakTracking('TimePicker relayout upon system fonts changes', (WidgetTester tester) async {
232233
await tester.pumpWidget(
233234
MaterialApp(
234235
home: Material(

packages/flutter/test/painting/text_span_test.dart

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import 'package:flutter/gestures.dart';
88
import 'package:flutter/rendering.dart';
99
import 'package:flutter/widgets.dart';
1010
import 'package:flutter_test/flutter_test.dart';
11+
import 'package:leak_tracker_flutter_testing/leak_tracker_flutter_testing.dart';
1112

1213
void main() {
1314
test('TextSpan equals', () {
@@ -327,7 +328,7 @@ void main() {
327328
expect(indexInTree(const TextSpan(text: 'foobar')), null);
328329
});
329330

330-
testWidgets('handles mouse cursor', (WidgetTester tester) async {
331+
testWidgetsWithLeakTracking('handles mouse cursor', (WidgetTester tester) async {
331332
await tester.pumpWidget(
332333
const Directionality(
333334
textDirection: TextDirection.ltr,
@@ -364,7 +365,7 @@ void main() {
364365
expect(RendererBinding.instance.mouseTracker.debugDeviceActiveCursor(1), SystemMouseCursors.basic);
365366
});
366367

367-
testWidgets('handles onEnter and onExit', (WidgetTester tester) async {
368+
testWidgetsWithLeakTracking('handles onEnter and onExit', (WidgetTester tester) async {
368369
final List<PointerEvent> logEvents = <PointerEvent>[];
369370
await tester.pumpWidget(
370371
Directionality(
@@ -409,7 +410,7 @@ void main() {
409410
expect(logEvents[1], isA<PointerExitEvent>());
410411
});
411412

412-
testWidgets('TextSpan can compute StringAttributes', (WidgetTester tester) async {
413+
testWidgetsWithLeakTracking('TextSpan can compute StringAttributes', (WidgetTester tester) async {
413414
const TextSpan span = TextSpan(
414415
text: 'aaaaa',
415416
spellOut: true,

0 commit comments

Comments
 (0)