Skip to content

Clean up notDisposed leaks in Flutter Framework, phase 1. #134

@polina-c

Description

@polina-c

Looking for volunteers to help with this!

Subtask of: flutter/devtools#3951

Issues: all, open.
PRs: all, open.

All invocations of testWidgets under flutter/test (~ 10,000) should be converted to testWidgetsWithLeakTracking by iterating the steps:

  1. Comment on this issue what subset of tests you plan to work on so that we do not duplicate work. Then delete the added comment as soon as you are done or if your plans changed. If all tests seems to be occupied, let me know, and I will redistribute them.

  2. Convert set of testWidgets, create PR and, if tests pass, request review and merge. Example: Cover more tests with leak tracking. flutter/flutter#132806

  3. For tests that fail, investigate them and search for the culprit class name in onen issues or PRs (check links above). If the issue for this concrete leak is already created or PR is on the way, leave this test to be 'testWidgets'. Otherwise, move the conversion to a separate PR, and do one of two in this PR:

    a. Fix the failure if it is strait-forward.

    b. Create issue that explains the leak, create allowlist, and link the issue near the allowlist. Example: Mark leak in text_form_field_test.dart. flutter/flutter#130468. Then either allow triage process to happen or assign the issue to yourself and resolve it in a separate PR.

  4. Link the issue and the fix in a comment for this PR.

  5. Do not:

    • Instrument new disposables, because we want to clean up leaks first for already instrumented ones
    • Convert many tests with the same issue linked to allowlists. One test is enough to repro the issue.

Focus areas:
@ksokolovskyi: test/widgets
@droidbg: test/paintings, test/rendering and test/gestures
@NobodyForNothing: paused (thank you for what is done and in process)
@polina-c: coordinating complicated cases and integration with testWidgets

Discord calls: 1, 2
Thread on discord for leak_tracker updates

Metadata

Metadata

Assignees

Labels

P1A high priority bug; for example, a single project is unusable or has many test failuresgood first issueA good starting issue for contributors (issues with this label will appear in /contribute)subtaskThe issue is subtask of another bigger issue.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions