blob: 378ba9109ec2fc1f0ba16d1bd58b8837876d1358 [file] [log] [blame] [edit]
"""Tests for the java_toolchain rule"""
load("@rules_testing//lib:analysis_test.bzl", "analysis_test", "test_suite")
load("@rules_testing//lib:util.bzl", "util")
load("//java/toolchains:java_runtime.bzl", "java_runtime")
load("//java/toolchains:java_toolchain.bzl", "java_toolchain")
load("//test/java/testutil:java_toolchain_info_subject.bzl", "java_toolchain_info_subject")
def _declare_java_toolchain(*, name, **kwargs):
if "java_runtime" not in kwargs:
kwargs["java_runtime"] = name + "/runtime"
java_runtime(name = name + "/runtime")
util.helper_target(
java_toolchain,
name = name,
genclass = [kwargs.get("genclass", "default_genclass.jar")],
jacocorunner = kwargs.get("jacocorunner", None),
javabuilder = [kwargs.get("javabuilder", "default_javabuilder.jar")],
java_runtime = kwargs["java_runtime"],
ijar = [kwargs.get("ijar", "default_ijar.jar")],
singlejar = [kwargs.get("singlejar", "default_singlejar.jar")],
)
def _test_jacocorunner(name):
_declare_java_toolchain(
name = name + "/java_toolchain",
jacocorunner = "myjacocorunner.jar",
)
analysis_test(
name = name,
impl = _test_jacocorunner_impl,
target = name + "/java_toolchain",
)
def _test_jacocorunner_impl(env, target):
assert_toolchain = java_toolchain_info_subject.from_target(env, target)
assert_toolchain.jacocorunner().short_path_equals("{package}/myjacocorunner.jar")
def java_toolchain_tests(name):
test_suite(
name = name,
tests = [
_test_jacocorunner,
],
)