Ensure engine Android tests run on major version breaks.
- Dominant language
- Dart
- Stars
- 179k
- Forks
- 31.1k
- PR merge metrics
- PR metrics pending
Description
This is prompted by the issue caused due to https://github.com/flutter/engine/pull/51839.
Among other things, Flutter enables different subsystems and features based on the version of Android the application is running on.
For complete test coverage, the naive approach is to obviously test on all Android versions and ideally on a device. This isn’t always feasible. This issue attempts to list the major version breaks. For a reasonable amount of confidence in the test setup, tests must run on each of the following versions.
As an aside, some of the features are optional. I’m not averse to backing them out if the test burden is too high. But that is a separate conversation.
|Version|Features|
|-|-|
|24|Choreographer on 64 bit platforms|
|26|AHB Acquisition|
|29|AHB Creation, Surface Controls/Transactions, Setting AHB contents in Surface Controls (via Transactions), Choreographer on 32 bit platforms too.|
|31|AHB IDs for LRU Image Caches|
Missing testing on one of the version breaks risks causing issues like https://github.com/flutter/engine/pull/51839 which was due to a missing test run on API version >= 29 but less than 31.
In fact as I write this, I am unsure if the right version check is used when the AHB is imported as an external texture. If the check for AHB creation is instead used, versions 26-29 will unnecessarily lose AHB external texture support.
Contributor guide
Assessment
This issue has not been assessed yet.