Add test to mark recording as leaking. (#133073)
diff --git a/packages/flutter/test/animation/animation_sheet_test.dart b/packages/flutter/test/animation/animation_sheet_test.dart
index 0d60746..df48b9e 100644
--- a/packages/flutter/test/animation/animation_sheet_test.dart
+++ b/packages/flutter/test/animation/animation_sheet_test.dart
@@ -11,6 +11,7 @@
import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';
+import 'package:leak_tracker_flutter_testing/leak_tracker_flutter_testing.dart';
void main() {
@@ -19,7 +20,25 @@
* because [matchesGoldenFile] does not use Skia Gold in its native package.
*/
- testWidgets('correctly records frames using collate', (WidgetTester tester) async {
+ testWidgetsWithLeakTracking('recording disposes images',
+ (WidgetTester tester) async {
+ final AnimationSheetBuilder builder = AnimationSheetBuilder(frameSize: _DecuplePixels.size);
+
+ await tester.pumpFrames(
+ builder.record(
+ const _DecuplePixels(Duration(seconds: 1)),
+ ),
+ const Duration(milliseconds: 200),
+ const Duration(milliseconds: 100),
+ );
+ },
+ skip: isBrowser, // [intended] https://github.com/flutter/flutter/issues/56001
+ // TODO(polina-c): remove after fixing https://github.com/flutter/flutter/issues/133071
+ leakTrackingTestConfig: const LeakTrackingTestConfig(allowAllNotDisposed: true),
+ );
+
+ testWidgetsWithLeakTracking('correctly records frames using collate',
+ (WidgetTester tester) async {
final AnimationSheetBuilder builder = AnimationSheetBuilder(frameSize: _DecuplePixels.size);
await tester.pumpFrames(
@@ -53,10 +72,15 @@
image,
matchesGoldenFile('test.animation_sheet_builder.collate.png'),
);
- image.dispose();
- }, skip: isBrowser); // https://github.com/flutter/flutter/issues/56001
- testWidgets('use allLayers to record out-of-subtree contents', (WidgetTester tester) async {
+ image.dispose();
+ },
+ skip: isBrowser, // [intended] https://github.com/flutter/flutter/issues/56001
+ // TODO(polina-c): remove after fixing https://github.com/flutter/flutter/issues/133071
+ leakTrackingTestConfig: const LeakTrackingTestConfig(allowAllNotDisposed: true),
+ ); // https://github.com/flutter/flutter/issues/56001
+
+ testWidgetsWithLeakTracking('use allLayers to record out-of-subtree contents', (WidgetTester tester) async {
final AnimationSheetBuilder builder = AnimationSheetBuilder(
frameSize: const Size(8, 2),
allLayers: true,
@@ -88,7 +112,11 @@
matchesGoldenFile('test.animation_sheet_builder.out_of_tree.png'),
);
image.dispose();
- }, skip: isBrowser); // https://github.com/flutter/flutter/issues/56001
+ },
+ skip: isBrowser, // [intended] https://github.com/flutter/flutter/issues/56001
+ // TODO(polina-c): remove after fixing https://github.com/flutter/flutter/issues/133071
+ leakTrackingTestConfig: const LeakTrackingTestConfig(allowAllNotDisposed: true),
+ );
}
// An animation of a yellow pixel moving from left to right, in a container of
diff --git a/packages/flutter/test/animation/live_binding_test.dart b/packages/flutter/test/animation/live_binding_test.dart
index e0d523f..5959c66 100644
--- a/packages/flutter/test/animation/live_binding_test.dart
+++ b/packages/flutter/test/animation/live_binding_test.dart
@@ -79,7 +79,7 @@
// Currently skipped due to daily flake: https://github.com/flutter/flutter/issues/87588
}, skip: true); // Typically skip: isBrowser https://github.com/flutter/flutter/issues/42767
- testWidgets('Should show event indicator for pointer events with setSurfaceSize', (WidgetTester tester) async {
+ testWidgetsWithLeakTracking('Should show event indicator for pointer events with setSurfaceSize', (WidgetTester tester) async {
final AnimationSheetBuilder animationSheet = AnimationSheetBuilder(frameSize: const Size(200, 200), allLayers: true);
final List<Offset> taps = <Offset>[];
Widget target({bool recording = true}) => Container(
@@ -138,5 +138,9 @@
matchesGoldenFile('LiveBinding.press.animation.2.png'),
);
image.dispose();
- }, skip: isBrowser); // https://github.com/flutter/flutter/issues/56001
+ },
+ skip: isBrowser, // [intended] https://github.com/flutter/flutter/issues/56001
+ // TODO(polina-c): remove after fixing https://github.com/flutter/flutter/issues/133071
+ leakTrackingTestConfig: const LeakTrackingTestConfig(allowAllNotDisposed: true),
+ );
}
diff --git a/packages/flutter/test/material/date_range_picker_test.dart b/packages/flutter/test/material/date_range_picker_test.dart
index 021a85b..6bd0e10 100644
--- a/packages/flutter/test/material/date_range_picker_test.dart
+++ b/packages/flutter/test/material/date_range_picker_test.dart
@@ -255,12 +255,13 @@
await tester.tap(find.text('Cancel'));
await tester.pumpAndSettle();
},
- // TODO(polina-c): remove after resolving
- // https://github.com/flutter/flutter/issues/130354
- leakTrackingTestConfig: const LeakTrackingTestConfig(
- allowAllNotGCed: true,
- allowAllNotDisposed: true,
- ));
+ // TODO(polina-c): remove after resolving
+ // https://github.com/flutter/flutter/issues/130354
+ leakTrackingTestConfig: const LeakTrackingTestConfig(
+ allowAllNotGCed: true,
+ allowAllNotDisposed: true,
+ ),
+ );
});
testWidgets('Save and help text is used', (WidgetTester tester) async {
diff --git a/packages/flutter/test/material/text_selection_theme_test.dart b/packages/flutter/test/material/text_selection_theme_test.dart
index ecd0850..947df64 100644
--- a/packages/flutter/test/material/text_selection_theme_test.dart
+++ b/packages/flutter/test/material/text_selection_theme_test.dart
@@ -106,18 +106,19 @@
final RenderBox handle = tester.firstRenderObject<RenderBox>(find.byType(CustomPaint));
expect(handle, paints..path(color: defaultSelectionHandleColor));
},
- // TODO(polina-c): remove after fixing
- // https://github.com/flutter/flutter/issues/130469
- leakTrackingTestConfig: const LeakTrackingTestConfig(
- notDisposedAllowList: <String, int?>{
- 'ValueNotifier<MagnifierInfo>': 1,
- 'ValueNotifier<_OverlayEntryWidgetState?>': 2,
- 'ValueNotifier<bool>': 2,
- '_InputBorderGap': 1,
- },
- // TODO(polina-c): investigate notGCed, if it does not disappear after fixing notDisposed.
- allowAllNotGCed: true,
- ));
+ // TODO(polina-c): remove after fixing
+ // https://github.com/flutter/flutter/issues/130469
+ leakTrackingTestConfig: const LeakTrackingTestConfig(
+ notDisposedAllowList: <String, int?>{
+ 'ValueNotifier<MagnifierInfo>': 1,
+ 'ValueNotifier<_OverlayEntryWidgetState?>': 2,
+ 'ValueNotifier<bool>': 2,
+ '_InputBorderGap': 1,
+ },
+ // TODO(polina-c): investigate notGCed, if it does not disappear after fixing notDisposed.
+ allowAllNotGCed: true,
+ ),
+ );
testWidgetsWithLeakTracking('Material3 - Empty textSelectionTheme will use defaults', (WidgetTester tester) async {
final ThemeData theme = ThemeData(useMaterial3: true);
@@ -167,18 +168,19 @@
final RenderBox handle = tester.firstRenderObject<RenderBox>(find.byType(CustomPaint));
expect(handle, paints..path(color: defaultSelectionHandleColor));
},
- // TODO(polina-c): remove after fixing
- // https://github.com/flutter/flutter/issues/130469
- leakTrackingTestConfig: const LeakTrackingTestConfig(
- notDisposedAllowList: <String, int?>{
- 'ValueNotifier<MagnifierInfo>': 1,
- 'ValueNotifier<_OverlayEntryWidgetState?>': 2,
- 'ValueNotifier<bool>': 2,
- '_InputBorderGap': 1,
- },
- // TODO(polina-c): investigate notGCed, if it does not disappear after fixing notDisposed.
- allowAllNotGCed: true,
- ));
+ // TODO(polina-c): remove after fixing
+ // https://github.com/flutter/flutter/issues/130469
+ leakTrackingTestConfig: const LeakTrackingTestConfig(
+ notDisposedAllowList: <String, int?>{
+ 'ValueNotifier<MagnifierInfo>': 1,
+ 'ValueNotifier<_OverlayEntryWidgetState?>': 2,
+ 'ValueNotifier<bool>': 2,
+ '_InputBorderGap': 1,
+ },
+ // TODO(polina-c): investigate notGCed, if it does not disappear after fixing notDisposed.
+ allowAllNotGCed: true,
+ ),
+ );
testWidgets('ThemeData.textSelectionTheme will be used if provided', (WidgetTester tester) async {
const TextSelectionThemeData textSelectionTheme = TextSelectionThemeData(