commit | 2337b4c885ee79b76346302664dc82802ff06ca5 | [log] [tgz] |
---|---|---|
author | Googler <noreply@google.com> | Tue Nov 10 16:12:14 2020 -0800 |
committer | Copybara-Service <copybara-worker@google.com> | Tue Nov 10 16:13:37 2020 -0800 |
tree | 0f42512f31e2a962481e552b93c99802065e18b8 | |
parent | 821d85032f53d70335919ef69de5d679b7f28541 [diff] |
Propagate instrumented files for transitive sources of `android_library` and `android_binary` RELNOTES: Propagate instrumented files for transitive sources of `android_library` and `android_binary` BEGIN_PUBLIC When Flutter applications are instrumented with `android_instrumentation_test`, non-Java source files cannot be instrumented. This is because these transitive source files are not propagated in the dependency tree in two places: (simplified) ``` <flutter assets> <- android_library (1) <- android_binary <-instruments- android_binary (2) <- android_instrumentation_test ``` 1. `android_library` does not propagate instrumented files from its dependencies 2. `android_binary` does not propagate instrumented files from the `instruments` attr As a result, `android_instrumentation_test` cannot access the instrumented files of the `android_binary`, and the generated COVERAGE_MANIFEST will be empty. This CL addresses the above issues by fixing the chain to propagate the instrumented files. This is not a problem for Java instrumented files in `android_instrumentation_test`, because of the lcov_merger has a special rule for Java source code – they do not need to be included in the COVERAGE_MANIFEST [1]. END_PUBLIC PiperOrigin-RevId: 341718948
{Fast, Correct} - Choose two
Build and test software of any size, quickly and reliably.
Speed up your builds and tests: Bazel rebuilds only what is necessary. With advanced local and distributed caching, optimized dependency analysis and parallel execution, you get fast and incremental builds.
One tool, multiple languages: Build and test Java, C++, Android, iOS, Go, and a wide variety of other language platforms. Bazel runs on Windows, macOS, and Linux.
Scalable: Bazel helps you scale your organization, codebase, and continuous integration solution. It handles codebases of any size, in multiple repositories or a huge monorepo.
Extensible to your needs: Easily add support for new languages and platforms with Bazel's familiar extension language. Share and re-use language rules written by the growing Bazel community.
Follow our tutorials:
See CONTRIBUTING.md