Status Update
Comments
al...@google.com <al...@google.com>
ap...@google.com <ap...@google.com> #2
Thanks for your detailed post.
However, benchmark build type is under configured: at least isProfileable is not set to true for existing build type, probably there's more.
We should set isProfileable = true
by default when overriding an existing benchmark build type.
This issue is not about some specific configuration flag, but the general approach of dealing with external configuration. As a developer adopting baseline profiles, it seems extremely risky to me using a custom configuration due to how it's applied under the hood and the fact it may break default configuration.
I agree that is not great but this is a little tricky to do. For custom baseline profile build types we override all the properties. For benchmark I left it open to configure but it's mostly about these 2 properties:
isMinifyEnabled
isShrinkResources
I don't have a way to see if the user is setting them before overriding, so for this reason, I'd prefer not to. I agree with you that some other properties could be set by default to make this easier, i.e.:
isJniDebuggable = false
isDebuggable = false
isProfileable = true
The reason why I mentioned the release signing config in the beginning is because I want to use debug signing config.
In the specific of your issue, i.e. using a debug certificate can you override the benchmark and baseline profile setting? You should be able to do something like:
android {
buildTypes {
release { ... }
debug { ... }
benchmarkRelease {
...
signingConfig signingConfigs.debug
}
nonMinifiedRelease {
...
signingConfig signingConfigs.debug
}
}
}
Description
Sample failure:https://android-build.googleplex.com/builds/tests/view?invocationId=I94500010032007415&redirect=https%3A%2F%2Fsponge2.corp.google.com%2Ff4bf3852-6d0c-4a6b-9419-71122febc2ff&testResultId=TR07327948635652186
These tests should pass false to assumeTrue() on unsupported devices, instead of throwing an UnsupportedOperationException. The exception should be used if someone tries to run the benchmark on an unsupported device (e.g. in PowerMetric.configure / start).
If you pass false to assumeTrue(), it throws a special exception that registers the test as a skipped test instead of a failure (in that dashboard, white instead of red).