
Address the first item in https://github.com/flutter/flutter/issues/161456 (Unit tests in the display_list/ directory) Some new `DlPath::Make<Shape>` factories were added to make test writing simpler. `DlPath` is now bi-directional! You can construct one from either an `SkPath` or an `impeller::Path` and it will auto-convert to the other as needed. This allows unit tests with custom paths to rely on `impeller::Path` for path construction instead of `SkPath` (as long as only simple move/line/quad/curve verbs are needed). `RoundRect` now normalizes the argument rect in all constructors to match Flutter expectations and `SkRRect` legacy behavior. This behavior was already being enforced in `ui.rrect` but the unit tests we have to verify the behavior are written against the `RoundRect` object itself so this was the simplest way to make the unit tests work right, while ensuring that we maintain correct behavior for `ui` objects. Ideally these issues would be tested at the `ui` native interface instead of as unit tests on our internal objects and we should be allowed to decide how we want our internal APIs to behave with regard to this concept. Skia inverted path types are no longer allowed in `DlPath` and all use of them should be eliminated in the engine (except to test if they crash when used in a debug unit test) A couple of unit tests for `DlOpSpy` and Impeller's interop package were migrated here along for the ride even though this PR was focused primarily on `display_list/` unit tests.
Flutter Engine
gclient
bootstrap
Flutter engine uses gclient
to manage dependencies.
If you've already cloned the flutter repository: