aboutsummaryrefslogtreecommitdiffhomepage
path: root/tools/test/LcovMerger/java/com/google/devtools/lcovmerger/BUILD
diff options
context:
space:
mode:
authorGravatar elenairina <elenairina@google.com>2018-06-11 08:25:41 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-06-11 08:27:22 -0700
commite28c0ab84c7967e10cc3cd5333560c54653084bd (patch)
tree9a66b0192d9049d16956218ca3bafc65af1de63f /tools/test/LcovMerger/java/com/google/devtools/lcovmerger/BUILD
parentbbf3e421ed8b2b431a72cd3ab4ba591dc8833634 (diff)
Implement LcovMerger.
LcovMerger is a tool that merges all the intermediate lcov tracefiles (with .dat extension) found under a coverage directory and prints the merged tracefile to a given output file. A custom implementation for merging lcov tracefiles is needed because the merging functionality of lcov itself is very slow. LcovMerger is required to get a single coverage report (lcov tracefile) from a bazel coverage command that executes multiple tests. ATM LcovMerger is only invoked by tools/test/collect_coverage.sh that collects and merges the tracefiles from a single test invocation. It will also be used from a CoverageReportAction. Progress on #5246. PiperOrigin-RevId: 200054506
Diffstat (limited to 'tools/test/LcovMerger/java/com/google/devtools/lcovmerger/BUILD')
-rw-r--r--tools/test/LcovMerger/java/com/google/devtools/lcovmerger/BUILD106
1 files changed, 106 insertions, 0 deletions
diff --git a/tools/test/LcovMerger/java/com/google/devtools/lcovmerger/BUILD b/tools/test/LcovMerger/java/com/google/devtools/lcovmerger/BUILD
new file mode 100644
index 0000000000..b7d4d7b08c
--- /dev/null
+++ b/tools/test/LcovMerger/java/com/google/devtools/lcovmerger/BUILD
@@ -0,0 +1,106 @@
+package(
+ default_visibility = [
+ "//tools/test/LcovMerger/javatests/com/google/devtools/lcovmerger:__pkg__",
+ ],
+)
+
+licenses(["notice"]) # Apache 2.0
+
+java_library(
+ name = "BranchCoverage",
+ srcs = ["BranchCoverage.java"],
+ deps = [
+ "//third_party:auto_value",
+ ],
+)
+
+java_library(
+ name = "LineCoverage",
+ srcs = ["LineCoverage.java"],
+ deps = [
+ "//third_party:auto_value",
+ "//third_party:jsr305",
+ ],
+)
+
+java_library(
+ name = "SourceFileCoverage",
+ srcs = ["SourceFileCoverage.java"],
+ deps = [
+ ":BranchCoverage",
+ ":LineCoverage",
+ "//third_party:auto_value",
+ "//third_party:guava",
+ "//third_party:jsr305",
+ ],
+)
+
+java_library(
+ name = "LcovPrinter",
+ srcs = ["LcovPrinter.java"],
+ deps = [
+ ":BranchCoverage",
+ ":Coverage",
+ ":LcovConstants",
+ ":LineCoverage",
+ ":SourceFileCoverage",
+ "//third_party:guava",
+ ],
+)
+
+java_library(
+ name = "LcovConstants",
+ srcs = ["LcovConstants.java"],
+)
+
+java_library(
+ name = "LcovParser",
+ srcs = ["LcovParser.java"],
+ deps = [
+ ":BranchCoverage",
+ ":LcovConstants",
+ ":LineCoverage",
+ ":SourceFileCoverage",
+ ],
+)
+
+java_library(
+ name = "Coverage",
+ srcs = ["Coverage.java"],
+ deps = [":SourceFileCoverage"],
+)
+
+java_library(
+ name = "MainLibrary",
+ srcs = ["Main.java"],
+ deps = [
+ ":Coverage",
+ ":LcovConstants",
+ ":LcovParser",
+ ":LcovPrinter",
+ ":SourceFileCoverage",
+ "//third_party:guava",
+ ],
+)
+
+java_binary(
+ name = "Main",
+ srcs = ["Main.java"],
+ main_class = "com.google.devtools.lcovmerger.Main",
+ visibility = ["//visibility:public"],
+ deps = [
+ ":Coverage",
+ ":LcovConstants",
+ ":LcovParser",
+ ":LcovPrinter",
+ ":MainLibrary",
+ ":SourceFileCoverage",
+ "//third_party:guava",
+ ],
+)
+
+filegroup(
+ name = "srcs",
+ srcs = glob(["**"]),
+ visibility = ["//visibility:public"],
+)