bazel
bazel copied to clipboard
Default value for `instrumentation_filter` will change when using on instrumentation test targets
Description of the problem / feature request:
The behavior of instrumentation_filter
doesn't match the documentation's description: default: "-/javatests[/:],-/test/java[/:]"
For example, here is the result of offline instrumentation test result of different commands with options:
bazel coverage app → offline instrumentation works
bazel coverage app //unit-test-target → only unit test lib got offline instrumentation
bazel coverage app-instrumentation-test → offline instrumentation doesn't work
bazel build app-instrumentation-test --collect_code_coverage → offline instrumentation works
bazel coverage app-instrumentation-test --collect_code_coverage → offline instrumentation doesn't work
As you can see, the behavior is very inconsistent and the root cause is that the default value of instrumentation_filter
will be changed to match the target itself when we run test
command on an instrumentation test target, meaning none of the dependency will got instrumented.
Example, say //app
depends on //battery
, when we run bazel coverage app-instrumentation-test
, the default instrumentation_filter
for //battery
will be "-/battery[/:]" and the same applies to all other libraries
Expected behavior
Either update the documentation, or keep default value of instrumentation_filter
unchanged everywhere.
@ahumesky
cc @c-mita
The behaviour is weird. I'd suggest updating the documentation for now, because the implementation contains some tech-debt, which I'm unsure how it should be removed.