aboutsummaryrefslogtreecommitdiff
path: root/java/org/brotli/dec/build_defs.bzl
blob: aa4a929d85c42ee3a43be3e8e8415bceef52e4ea (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
"""Utilities for Java brotli tests."""

_TEST_JVM_FLAGS = [
    "-DBROTLI_ENABLE_ASSERTS=true",
]

_KOTLIN_DECODER_DEPS = [
    "//org/brotli/dec/kt:dec",
]

def brotli_java_test(name, main_class = None, jvm_flags = None, test_kotlin = False, runtime_deps = [], **kwargs):
    """test duplication rule that creates 32/64-bit test pair.

    Args:
       name: target name prefix
       main_class: override for test_class
       jvm_flags: base Java VM options
       test_kotlin: add target for Kotlin BrotliInputStream
       runtime_deps: runtime target dependencies
       **kwargs: pass-through
    """

    if jvm_flags == None:
        jvm_flags = []
    jvm_flags = jvm_flags + _TEST_JVM_FLAGS

    test_package = native.package_name().replace("/", ".").replace("third_party.brotli.java.", "")

    if main_class == None:
        test_class = test_package + "." + name
    else:
        test_class = None

    native.java_test(
        name = name + "_32",
        main_class = main_class,
        test_class = test_class,
        jvm_flags = jvm_flags + ["-DBROTLI_32_BIT_CPU=true"],
        visibility = ["//visibility:private"],
        runtime_deps = runtime_deps,
        **kwargs
    )

    native.java_test(
        name = name + "_64",
        main_class = main_class,
        test_class = test_class,
        jvm_flags = jvm_flags + ["-DBROTLI_32_BIT_CPU=false"],
        visibility = ["//visibility:private"],
        runtime_deps = runtime_deps,
        **kwargs
    )

    if test_kotlin:
        native.java_test(
            name = name + "_kt",
            main_class = main_class,
            test_class = test_class,
            jvm_flags = jvm_flags + ["-DBROTLI_INPUT_STREAM=org.brotli.dec.kt.BrotliInputStream"],
            visibility = ["//visibility:private"],
            runtime_deps = runtime_deps + _KOTLIN_DECODER_DEPS,
            **kwargs
        )