flutter / flutter/flutter

Ensure engine Android tests run on major version breaks.

Open
#146,146 0 comments 0 reactions 0 assignees View on GitHub
P2 team-engine triaged-engine
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.