| package( |
| default_visibility = ["//visibility:legacy_public"], |
| ) |
| |
| licenses(["notice"]) |
| |
| filegroup( |
| name = "bazel-srcs", |
| testonly = 0, |
| srcs = glob( |
| ["**"], |
| exclude = ["BUILD"], |
| ), |
| visibility = ["//third_party/bazel:__subpackages__"], |
| ) |
| |
| filegroup( |
| name = "srcs", |
| srcs = glob(["**"]), |
| ) |
| |
| filegroup( |
| name = "embedded_tools", |
| srcs = [ |
| "JacocoCoverage_jarjar_deploy.jar", |
| ], |
| ) |
| |
| filegroup( |
| name = "jacoco_coverage_runtime", |
| srcs = ["JacocoCoverage_deploy.jar"], |
| ) |
| |
| # Bazel custom Jacoco runner used to provide proper initialization and lcov |
| # report generation when using offline Jacoco instrumentation. |
| # This target should not be used as a dependency (except when writing tests for |
| # it). |
| # |
| # An implicit dependency of all "java_binary" rules. |
| java_binary( |
| name = "JacocoCoverage", |
| srcs = [ |
| "BranchCoverageDetail.java", |
| "BranchDetailAnalyzer.java", |
| "BranchExp.java", |
| "ClassProbesMapper.java", |
| "CovExp.java", |
| "JacocoCoverageRunner.java", |
| "JacocoLCOVFormatter.java", |
| "MethodProbesMapper.java", |
| "ProbeExp.java", |
| ], |
| deps = [ |
| ":bitfield", |
| "//third_party/java/jacoco:blaze-agent", |
| "//third_party/java/jacoco:core", |
| "//third_party/java/jacoco:report", |
| ], |
| ) |
| |
| java_library( |
| name = "bitfield", |
| srcs = [ |
| "BitField.java", |
| "IllegalStringException.java", |
| ], |
| deps = [ |
| "//third_party:apache_commons_lang", |
| ], |
| ) |
| |
| genrule( |
| name = "Jacoco_jarjar", |
| srcs = [ |
| ":JacocoCoverage_deploy.jar", |
| ":JacocoCoverage.jarjar", |
| ], |
| outs = ["JacocoCoverage_jarjar_deploy.jar"], |
| cmd = "\n".join([ |
| # Bazel 0.4.3 contains two bugs: a quoting bug in the Java cmd.exe |
| # wrapper script that makes it unable to handle $ signs in paths (#2306) |
| # and one that makes it occasionally put $ signs in the output base |
| # (#2342). |
| # |
| # These two collude to make it impossible to run built Java binaries on |
| # Windows if the output base happens to contain a $ sign. |
| # |
| # Thus, don't call jarjar when on Windows. This makes Java coverage not |
| # work if the code under test uses libraries the test runner also does |
| # (e.g. ASM). |
| # |
| # TODO(lberki): Remove this once a Bazel version with a fix to either of |
| # these bugs is out. |
| # |
| # Additionally, there is a hard-coded path to /bin/bash which is wrong on |
| # freebsd; so disable there as well until a fixed version is in there as |
| # well. |
| # TODO(aehlig): fix and remove once a version with the fix is out. |
| # |
| # We don't invoke jarjar_bin directly because this command is invoked |
| # during bootstrapping when we don't have build-runfiles, thus no |
| # runfiles trees. The Java launcher script looks in the runfiles tree |
| # for the jars (and rightfully so), thus, invoking the binary directly |
| # won't work. |
| "if [[ $$(uname -a) =~ MSYS ]] || [[ $$(uname -a) =~ CYGWIN ]] || [[ $$(uname -a) =~ freebsd ]]; then", |
| " cp \"$(location :JacocoCoverage_deploy.jar)\" \"$@\";", |
| "else", |
| " \"$(JAVA)\" -jar \"$(location //third_party/java/jarjar:jarjar_bin_deploy.jar)\" process \"$(location :JacocoCoverage.jarjar)\" \"$(location :JacocoCoverage_deploy.jar)\" \"$@\"", |
| "fi", |
| ]), |
| tools = [ |
| "//third_party/java/jarjar:jarjar_bin_deploy.jar", |
| "//tools/defaults:jdk", |
| ], |
| ) |