Skip to content
This repository was archived by the owner on Feb 25, 2025. It is now read-only.

Commit 201b800

Browse files
Clean up images properly.
1 parent 1da9028 commit 201b800

File tree

1 file changed

+19
-13
lines changed

1 file changed

+19
-13
lines changed

lib/web_ui/test/ui/image_golden_test.dart

Lines changed: 19 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -86,17 +86,23 @@ Future<void> testMain() async {
8686
// `imageGenerator` should produce an image that is 150x150 pixels.
8787
void emitImageTests(String name, Future<ui.Image> Function() imageGenerator) {
8888
group(name, () {
89-
late ui.Image image;
90-
setUp(() async {
91-
image = await imageGenerator();
92-
});
89+
final List<ui.Image> images = <ui.Image>[];
90+
91+
Future<ui.Image> generateImage() async {
92+
final ui.Image image = await imageGenerator();
93+
images.add(image);
94+
return image;
95+
}
9396

9497
tearDown(() {
95-
image.dispose();
98+
for (final ui.Image image in images) {
99+
image.dispose();
100+
}
101+
images.clear();
96102
});
97103

98104
test('drawImage', () async {
99-
final ui.Image image = await imageGenerator();
105+
final ui.Image image = await generateImage();
100106

101107
final ui.PictureRecorder recorder = ui.PictureRecorder();
102108
final ui.Canvas canvas = ui.Canvas(recorder, drawRegion);
@@ -111,7 +117,7 @@ Future<void> testMain() async {
111117
});
112118

113119
test('drawImageRect', () async {
114-
final ui.Image image = await imageGenerator();
120+
final ui.Image image = await generateImage();
115121

116122
final ui.PictureRecorder recorder = ui.PictureRecorder();
117123
final ui.Canvas canvas = ui.Canvas(recorder, drawRegion);
@@ -147,7 +153,7 @@ Future<void> testMain() async {
147153
});
148154

149155
test('drawImageNine', () async {
150-
final ui.Image image = await imageGenerator();
156+
final ui.Image image = await generateImage();
151157

152158
final ui.PictureRecorder recorder = ui.PictureRecorder();
153159
final ui.Canvas canvas = ui.Canvas(recorder, drawRegion);
@@ -168,7 +174,7 @@ Future<void> testMain() async {
168174
final ui.Canvas canvas = ui.Canvas(recorder, drawRegion);
169175
final Float64List matrix = Matrix4.rotationZ(pi / 6).toFloat64();
170176
Future<void> drawOvalWithShader(ui.Rect rect, ui.FilterQuality quality) async {
171-
final ui.Image image = await imageGenerator();
177+
final ui.Image image = await generateImage();
172178
final ui.ImageShader shader = ui.ImageShader(
173179
image,
174180
ui.TileMode.repeated,
@@ -199,7 +205,7 @@ Future<void> testMain() async {
199205
});
200206

201207
test('fragment_shader_sampler', () async {
202-
final ui.Image image = await imageGenerator();
208+
final ui.Image image = await generateImage();
203209

204210
final ui.FragmentProgram program = await renderer.createFragmentProgram('glitch_shader');
205211
final ui.FragmentShader shader = program.fragmentShader();
@@ -224,7 +230,7 @@ Future<void> testMain() async {
224230
}, skip: isHtml); // HTML doesn't support fragment shaders
225231

226232
test('drawVertices with image shader', () async {
227-
final ui.Image image = await imageGenerator();
233+
final ui.Image image = await generateImage();
228234

229235
final Float64List matrix = Matrix4.rotationZ(pi / 6).toFloat64();
230236
final ui.ImageShader shader = ui.ImageShader(
@@ -270,15 +276,15 @@ Future<void> testMain() async {
270276
});
271277

272278
test('toByteData_rgba', () async {
273-
final ui.Image image = await imageGenerator();
279+
final ui.Image image = await generateImage();
274280

275281
final ByteData? rgbaData = await image.toByteData();
276282
expect(rgbaData, isNotNull);
277283
expect(rgbaData!.lengthInBytes, isNonZero);
278284
});
279285

280286
test('toByteData_png', () async {
281-
final ui.Image image = await imageGenerator();
287+
final ui.Image image = await generateImage();
282288

283289
final ByteData? pngData = await image.toByteData(format: ui.ImageByteFormat.png);
284290
expect(pngData, isNotNull);

0 commit comments

Comments
 (0)