aboutsummaryrefslogtreecommitdiff
path: root/src/test/java/com/code_intelligence/jazzer/junit/BUILD.bazel
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/java/com/code_intelligence/jazzer/junit/BUILD.bazel')
-rw-r--r--src/test/java/com/code_intelligence/jazzer/junit/BUILD.bazel321
1 files changed, 321 insertions, 0 deletions
diff --git a/src/test/java/com/code_intelligence/jazzer/junit/BUILD.bazel b/src/test/java/com/code_intelligence/jazzer/junit/BUILD.bazel
new file mode 100644
index 00000000..a9a5e2ea
--- /dev/null
+++ b/src/test/java/com/code_intelligence/jazzer/junit/BUILD.bazel
@@ -0,0 +1,321 @@
+load("@contrib_rules_jvm//java:defs.bzl", "JUNIT5_DEPS", "java_junit5_test")
+
+java_library(
+ name = "test-method",
+ srcs = ["TestMethod.java"],
+ visibility = ["//src/test/java/com/code_intelligence/jazzer/junit:__pkg__"],
+ deps = [
+ "@maven//:org_junit_platform_junit_platform_engine",
+ ],
+)
+
+java_junit5_test(
+ name = "UtilsTest",
+ size = "small",
+ srcs = ["UtilsTest.java"],
+ deps = JUNIT5_DEPS + [
+ "//src/main/java/com/code_intelligence/jazzer/junit:utils",
+ "@maven//:com_google_truth_extensions_truth_java8_extension",
+ "@maven//:com_google_truth_truth",
+ "@maven//:org_junit_jupiter_junit_jupiter_api",
+ "@maven//:org_junit_jupiter_junit_jupiter_params",
+ ],
+)
+
+java_test(
+ name = "RegressionTestTest",
+ srcs = ["RegressionTestTest.java"],
+ test_class = "com.code_intelligence.jazzer.junit.RegressionTestTest",
+ runtime_deps = [
+ "//examples/junit/src/test/java/com/example:ExampleFuzzTests_deploy.jar",
+ "@maven//:org_junit_jupiter_junit_jupiter_engine",
+ ],
+ deps = [
+ "//src/main/java/com/code_intelligence/jazzer/api:hooks",
+ "@maven//:com_google_truth_extensions_truth_java8_extension",
+ "@maven//:com_google_truth_truth",
+ "@maven//:junit_junit",
+ "@maven//:org_junit_jupiter_junit_jupiter_api",
+ "@maven//:org_junit_platform_junit_platform_engine",
+ "@maven//:org_junit_platform_junit_platform_testkit",
+ "@maven//:org_opentest4j_opentest4j",
+ ],
+)
+
+[
+ java_test(
+ name = "FuzzingWithCrashTest" + JAZZER_FUZZ,
+ srcs = ["FuzzingWithCrashTest.java"],
+ env = {
+ "JAZZER_FUZZ": JAZZER_FUZZ,
+ },
+ test_class = "com.code_intelligence.jazzer.junit.FuzzingWithCrashTest",
+ runtime_deps = [
+ "//examples/junit/src/test/java/com/example:ExampleFuzzTests_deploy.jar",
+ "@maven//:org_junit_jupiter_junit_jupiter_engine",
+ ],
+ deps = [
+ "//src/main/java/com/code_intelligence/jazzer/api:hooks",
+ "//src/test/java/com/code_intelligence/jazzer/junit:test-method",
+ "@maven//:com_google_truth_extensions_truth_java8_extension",
+ "@maven//:com_google_truth_truth",
+ "@maven//:junit_junit",
+ "@maven//:org_assertj_assertj_core",
+ "@maven//:org_junit_platform_junit_platform_engine",
+ "@maven//:org_junit_platform_junit_platform_launcher",
+ "@maven//:org_junit_platform_junit_platform_testkit",
+ "@maven//:org_opentest4j_opentest4j",
+ ],
+ )
+ for JAZZER_FUZZ in [
+ "",
+ "_fuzzing",
+ ]
+]
+
+[
+ java_test(
+ name = "FuzzingWithoutCrashTest" + JAZZER_FUZZ,
+ srcs = ["FuzzingWithoutCrashTest.java"],
+ env = {
+ "JAZZER_FUZZ": JAZZER_FUZZ,
+ },
+ test_class = "com.code_intelligence.jazzer.junit.FuzzingWithoutCrashTest",
+ runtime_deps = [
+ "//examples/junit/src/test/java/com/example:ExampleFuzzTests_deploy.jar",
+ "@maven//:org_junit_jupiter_junit_jupiter_engine",
+ ],
+ deps = [
+ "//src/main/java/com/code_intelligence/jazzer/api:hooks",
+ "@maven//:com_google_truth_extensions_truth_java8_extension",
+ "@maven//:com_google_truth_truth",
+ "@maven//:junit_junit",
+ "@maven//:org_assertj_assertj_core",
+ "@maven//:org_junit_platform_junit_platform_engine",
+ "@maven//:org_junit_platform_junit_platform_testkit",
+ "@maven//:org_opentest4j_opentest4j",
+ ],
+ )
+ for JAZZER_FUZZ in [
+ "",
+ "_fuzzing",
+ ]
+]
+
+[
+ java_test(
+ name = "ValueProfileTest_" + str(JAZZER_VALUE_PROFILE),
+ srcs = ["ValueProfileTest.java"],
+ env = {
+ "JAZZER_FUZZ": "true",
+ "JAZZER_VALUE_PROFILE": str(JAZZER_VALUE_PROFILE),
+ },
+ # The test is both CPU-intensive and sensitive to timing, which causes it to be flaky on
+ # slow runners (particularly macOS on GitHub Actions). Since we need to distinguish the two
+ # test variants by whether they find a finding, we can't just increase the timeout without
+ # the risk to make the other variant flaky.
+ tags = ["exclusive"] if JAZZER_VALUE_PROFILE else [],
+ test_class = "com.code_intelligence.jazzer.junit.ValueProfileTest",
+ runtime_deps = [
+ "//examples/junit/src/test/java/com/example:ExampleFuzzTests_deploy.jar",
+ "@maven//:org_junit_jupiter_junit_jupiter_engine",
+ ],
+ deps = [
+ "//src/main/java/com/code_intelligence/jazzer/api:hooks",
+ "@maven//:com_google_truth_extensions_truth_java8_extension",
+ "@maven//:com_google_truth_truth",
+ "@maven//:junit_junit",
+ "@maven//:org_junit_platform_junit_platform_engine",
+ "@maven//:org_junit_platform_junit_platform_testkit",
+ ],
+ )
+ for JAZZER_VALUE_PROFILE in [
+ True,
+ False,
+ ]
+]
+
+[
+ java_test(
+ name = "DirectoryInputsTest" + JAZZER_FUZZ,
+ srcs = ["DirectoryInputsTest.java"],
+ args = [
+ # Add a test resource root containing the seed corpus directory in a Maven layout to
+ # the classpath rather than seeds in a resource directory packaged in a JAR, as
+ # would happen if we added the directory to java_test's resources.
+ "--main_advice_classpath=$(rootpath test_resources_root)",
+ ],
+ data = ["test_resources_root"],
+ env = {
+ "JAZZER_FUZZ": JAZZER_FUZZ,
+ },
+ test_class = "com.code_intelligence.jazzer.junit.DirectoryInputsTest",
+ runtime_deps = [
+ "//examples/junit/src/test/java/com/example:ExampleFuzzTests_deploy.jar",
+ "@maven//:org_junit_jupiter_junit_jupiter_engine",
+ ],
+ deps = [
+ "//src/main/java/com/code_intelligence/jazzer/api:hooks",
+ "@maven//:com_google_truth_extensions_truth_java8_extension",
+ "@maven//:com_google_truth_truth",
+ "@maven//:junit_junit",
+ "@maven//:org_junit_platform_junit_platform_engine",
+ "@maven//:org_junit_platform_junit_platform_testkit",
+ ],
+ )
+ for JAZZER_FUZZ in [
+ "",
+ "_fuzzing",
+ ]
+]
+
+[
+ java_test(
+ name = "CorpusDirectoryTest" + JAZZER_FUZZ,
+ srcs = ["CorpusDirectoryTest.java"],
+ args = [
+ # Add a test resource root containing the seed corpus directory in a Maven layout to
+ # the classpath rather than seeds in a resource directory packaged in a JAR, as
+ # would happen if we added the directory to java_test's resources.
+ "--main_advice_classpath=$(rootpath test_resources_root)",
+ ],
+ data = ["test_resources_root"],
+ env = {
+ "JAZZER_FUZZ": JAZZER_FUZZ,
+ },
+ test_class = "com.code_intelligence.jazzer.junit.CorpusDirectoryTest",
+ runtime_deps = [
+ "//examples/junit/src/test/java/com/example:ExampleFuzzTests_deploy.jar",
+ "@maven//:org_junit_jupiter_junit_jupiter_engine",
+ ],
+ deps = [
+ "//src/main/java/com/code_intelligence/jazzer/api:hooks",
+ "@maven//:com_google_truth_extensions_truth_java8_extension",
+ "@maven//:com_google_truth_truth",
+ "@maven//:junit_junit",
+ "@maven//:org_junit_platform_junit_platform_engine",
+ "@maven//:org_junit_platform_junit_platform_testkit",
+ ],
+ )
+ for JAZZER_FUZZ in [
+ "",
+ "_fuzzing",
+ ]
+]
+
+[
+ java_test(
+ name = "AutofuzzTest" + JAZZER_FUZZ,
+ srcs = ["AutofuzzTest.java"],
+ env = {
+ "JAZZER_FUZZ": JAZZER_FUZZ,
+ },
+ test_class = "com.code_intelligence.jazzer.junit.AutofuzzTest",
+ runtime_deps = [
+ "//examples/junit/src/test/java/com/example:ExampleFuzzTests_deploy.jar",
+ "@maven//:org_junit_jupiter_junit_jupiter_engine",
+ ],
+ deps = [
+ "//src/main/java/com/code_intelligence/jazzer/api:hooks",
+ "@maven//:com_google_truth_extensions_truth_java8_extension",
+ "@maven//:com_google_truth_truth",
+ "@maven//:junit_junit",
+ "@maven//:org_junit_platform_junit_platform_engine",
+ "@maven//:org_junit_platform_junit_platform_testkit",
+ "@maven//:org_opentest4j_opentest4j",
+ ],
+ )
+ for JAZZER_FUZZ in [
+ "",
+ "_fuzzing",
+ ]
+]
+
+[
+ java_test(
+ name = "LifecycleTest" + JAZZER_FUZZ,
+ srcs = ["LifecycleTest.java"],
+ env = {
+ "JAZZER_FUZZ": JAZZER_FUZZ,
+ },
+ test_class = "com.code_intelligence.jazzer.junit.LifecycleTest",
+ runtime_deps = [
+ "//examples/junit/src/test/java/com/example:ExampleFuzzTests_deploy.jar",
+ "@maven//:org_junit_jupiter_junit_jupiter_engine",
+ ],
+ deps = [
+ "//src/main/java/com/code_intelligence/jazzer/api:hooks",
+ "@maven//:junit_junit",
+ "@maven//:org_junit_platform_junit_platform_engine",
+ "@maven//:org_junit_platform_junit_platform_testkit",
+ ],
+ )
+ for JAZZER_FUZZ in [
+ "",
+ "_fuzzing",
+ ]
+]
+
+java_test(
+ name = "HermeticInstrumentationTest",
+ srcs = ["HermeticInstrumentationTest.java"],
+ test_class = "com.code_intelligence.jazzer.junit.HermeticInstrumentationTest",
+ runtime_deps = [
+ "//examples/junit/src/test/java/com/example:ExampleFuzzTests_deploy.jar",
+ "@maven//:org_junit_jupiter_junit_jupiter_engine",
+ ],
+ deps = [
+ "//src/main/java/com/code_intelligence/jazzer/api:hooks",
+ "@maven//:com_google_truth_truth",
+ "@maven//:junit_junit",
+ "@maven//:org_junit_platform_junit_platform_engine",
+ "@maven//:org_junit_platform_junit_platform_testkit",
+ ],
+)
+
+java_test(
+ name = "FindingsBaseDirTest",
+ srcs = ["FindingsBaseDirTest.java"],
+ env = {
+ "JAZZER_FUZZ": "1",
+ },
+ test_class = "com.code_intelligence.jazzer.junit.FindingsBaseDirTest",
+ runtime_deps = [
+ "//examples/junit/src/test/java/com/example:ExampleFuzzTests_deploy.jar",
+ "@maven//:org_junit_jupiter_junit_jupiter_engine",
+ ],
+ deps = [
+ "//src/main/java/com/code_intelligence/jazzer/api:hooks",
+ "@maven//:com_google_truth_extensions_truth_java8_extension",
+ "@maven//:com_google_truth_truth",
+ "@maven//:junit_junit",
+ "@maven//:org_junit_platform_junit_platform_engine",
+ "@maven//:org_junit_platform_junit_platform_testkit",
+ ],
+)
+
+[
+ java_test(
+ name = "MutatorTest" + JAZZER_FUZZ,
+ srcs = ["MutatorTest.java"],
+ env = {
+ "JAZZER_FUZZ": JAZZER_FUZZ,
+ },
+ test_class = "com.code_intelligence.jazzer.junit.MutatorTest",
+ runtime_deps = [
+ "//examples/junit/src/test/java/com/example:ExampleFuzzTests_deploy.jar",
+ "@maven//:org_junit_jupiter_junit_jupiter_engine",
+ ],
+ deps = [
+ "//src/main/java/com/code_intelligence/jazzer/api:hooks",
+ "@maven//:junit_junit",
+ "@maven//:org_assertj_assertj_core",
+ "@maven//:org_junit_platform_junit_platform_engine",
+ "@maven//:org_junit_platform_junit_platform_testkit",
+ ],
+ )
+ for JAZZER_FUZZ in [
+ "",
+ "_fuzzing",
+ ]
+]