aboutsummaryrefslogtreecommitdiff
path: root/agent/src/jmh/java/com/code_intelligence/jazzer/instrumentor/BUILD.bazel
blob: fe68f903aee1b8b3adec49e50fb3f3c383dc2f7d (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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
load("@fmeum_rules_jni//jni:defs.bzl", "cc_jni_library", "java_jni_library")
load("@io_bazel_rules_kotlin//kotlin:jvm.bzl", "kt_jvm_library")
load("//agent/src/jmh/java/com/code_intelligence/jazzer:jmh.bzl", "JMH_TEST_ARGS")

java_binary(
    name = "CoverageInstrumentationBenchmark",
    main_class = "org.openjdk.jmh.Main",
    runtime_deps = [
        ":coverage_instrumentation_benchmark",
    ],
)

java_test(
    name = "CoverageInstrumentationBenchmarkTest",
    args = JMH_TEST_ARGS,
    jvm_flags = [
        "-XX:CompileCommand=print,*CoverageMap.recordCoverage",
    ],
    main_class = "org.openjdk.jmh.Main",
    # Directly invoke JMH's main without using a testrunner.
    use_testrunner = False,
    runtime_deps = [
        ":coverage_instrumentation_benchmark",
    ],
)

java_library(
    name = "coverage_instrumentation_benchmark",
    srcs = ["CoverageInstrumentationBenchmark.java"],
    plugins = ["//agent/src/jmh/java/com/code_intelligence/jazzer:JmhGeneratorAnnotationProcessor"],
    runtime_deps = [
        "@maven//:com_mikesamuel_json_sanitizer",
    ],
    deps = [
        ":kotlin_strategies",
        ":strategies",
        "//agent/src/main/java/com/code_intelligence/jazzer/instrumentor",
        "@maven//:org_openjdk_jmh_jmh_core",
    ],
)

java_library(
    name = "strategies",
    srcs = [
        "DirectByteBuffer2CoverageMap.java",
        "DirectByteBufferCoverageMap.java",
        "Unsafe2CoverageMap.java",
        "UnsafeBranchfreeCoverageMap.java",
        "UnsafeCoverageMap.java",
        "UnsafeSimpleIncrementCoverageMap.java",
    ],
    deps = [
        "//agent/src/main/java/com/code_intelligence/jazzer/instrumentor",
        "@jazzer_jacoco//:jacoco_internal",
        "@org_ow2_asm_asm//jar",
    ],
)

kt_jvm_library(
    name = "kotlin_strategies",
    srcs = ["DirectByteBufferStrategy.kt"],
    deps = [
        "//agent/src/main/java/com/code_intelligence/jazzer/instrumentor",
        "@jazzer_jacoco//:jacoco_internal",
        "@org_ow2_asm_asm//jar",
    ],
)

java_binary(
    name = "EdgeCoverageInstrumentationBenchmark",
    main_class = "org.openjdk.jmh.Main",
    runtime_deps = [
        ":edge_coverage_instrumentation_benchmark",
    ],
)

java_test(
    name = "EdgeCoverageInstrumentationBenchmarkTest",
    args = JMH_TEST_ARGS,
    main_class = "org.openjdk.jmh.Main",
    # Directly invoke JMH's main without using a testrunner.
    use_testrunner = False,
    runtime_deps = [
        ":edge_coverage_instrumentation_benchmark",
    ],
)

java_jni_library(
    name = "edge_coverage_instrumentation_benchmark",
    srcs = [
        "EdgeCoverageInstrumentation.java",
        "EdgeCoverageTarget.java",
    ],
    native_libs = ["//driver/src/main/native/com/code_intelligence/jazzer/driver:jazzer_driver"],
    plugins = ["//agent/src/jmh/java/com/code_intelligence/jazzer:JmhGeneratorAnnotationProcessor"],
    deps = [
        "//agent/src/main/java/com/code_intelligence/jazzer/instrumentor",
        "//agent/src/main/java/com/code_intelligence/jazzer/runtime:coverage_map",
        "//agent/src/test/java/com/code_intelligence/jazzer/instrumentor:patch_test_utils",
        "@maven//:org_openjdk_jmh_jmh_core",
    ],
)