commit | 68c7e5a3c679be51f750d44aae146007f0f04b4d | [log] [tgz] |
---|---|---|
author | elenairina <elenairina@google.com> | Tue Feb 19 09:35:04 2019 -0800 |
committer | Copybara-Service <copybara-worker@google.com> | Tue Feb 19 09:36:56 2019 -0800 |
tree | 817eadd352c3303f1809c6e78833fc2234c5d778 | |
parent | 85c77fefc453547bffa662b219a9bb5e75d576e8 [diff] |
Enable coverage for executing a java binary with --experimental_java_coverage. When using --experimental_java_coverage coverage was not collected after building a java deploy jar in coverage mode and executing the corresponding binary (see Example 1 below). The identified issues: 1) JacocoCoverageRunner did not know it has to use the new implementation. It decides whether to use the new implementation based on the suffix of JACOCO_METADATA_JAR, which is unset in this case. To solve this we now set an environment variable in the java_stub_template to mark if the new implementation is used or not. 2) JarInputStream could not see the entries in the deploy jar. I fetched the entries directly from the JarFile instead. Example 1) bazel build --collect_code_coverage --experimental_java_coverage //java/main:main_deploy.jar JAVA_COVERAGE_FILE=java_coverage.dat bazel-bin/java/main/main --singlejar RELNOTES: None. PiperOrigin-RevId: 234617047
{Fast, Correct} - Choose two
Build and test software of any size, quickly and reliably.
Speed up your builds and tests: Bazel only rebuilds 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
Bazel is released in ‘Beta’. See the product roadmap to learn about the path toward a stable 1.0 release.