diff options
Diffstat (limited to 'src/java_tools/junitrunner/java/com/google/testing')
-rw-r--r-- | src/java_tools/junitrunner/java/com/google/testing/coverage/BUILD | 33 | ||||
-rw-r--r-- | src/java_tools/junitrunner/java/com/google/testing/coverage/JacocoCoverage.jarjar | 2 |
2 files changed, 34 insertions, 1 deletions
diff --git a/src/java_tools/junitrunner/java/com/google/testing/coverage/BUILD b/src/java_tools/junitrunner/java/com/google/testing/coverage/BUILD index 319f13b6d2..3a57a5b4f7 100644 --- a/src/java_tools/junitrunner/java/com/google/testing/coverage/BUILD +++ b/src/java_tools/junitrunner/java/com/google/testing/coverage/BUILD @@ -22,7 +22,7 @@ filegroup( filegroup( name = "embedded_tools", srcs = [ - "JacocoCoverage_deploy.jar", + "JacocoCoverage_jarjar_deploy.jar", ], ) @@ -68,3 +68,34 @@ java_library( "//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. + "if [[ $$(uname -a) =~ MSYS ]]; then", + " cp \"$(location :JacocoCoverage_deploy.jar)\" \"$@\";", + "else", + " \"$(location //third_party/java/jarjar:jarjar_bin)\" process \"$(location :JacocoCoverage.jarjar)\" \"$(location :JacocoCoverage_deploy.jar)\" \"$@\"", + "fi", + ]), + tools = ["//third_party/java/jarjar:jarjar_bin"], +) diff --git a/src/java_tools/junitrunner/java/com/google/testing/coverage/JacocoCoverage.jarjar b/src/java_tools/junitrunner/java/com/google/testing/coverage/JacocoCoverage.jarjar new file mode 100644 index 0000000000..56190d874c --- /dev/null +++ b/src/java_tools/junitrunner/java/com/google/testing/coverage/JacocoCoverage.jarjar @@ -0,0 +1,2 @@ +rule org.apache.commons.** com.google.testing.coverage.jarjar.@0 +rule org.objectweb.asm.** com.google.testing.coverage.jarjar.@0 |