load("@rules_java//java:defs.bzl", "java_binary", "java_import", "java_library", "java_test")

# Description:
#   Tests for the Java 8 desugaring tool for Android.
package(
    default_testonly = 1,
    default_visibility = ["//src/test/java/com/google/devtools/build/android/desugar:__subpackages__"],
)

licenses(["notice"])  # Apache 2.0

filegroup(
    name = "srcs",
    testonly = 0,
    srcs = glob(["**"]) + [
        "//src/test/java/com/google/devtools/build/android/desugar/classes_for_testing_type_inference:srcs",
        "//src/test/java/com/google/devtools/build/android/desugar/dependencies:srcs",
        "//src/test/java/com/google/devtools/build/android/desugar/io:srcs",
        "//src/test/java/com/google/devtools/build/android/desugar/langmodel:srcs",
        "//src/test/java/com/google/devtools/build/android/desugar/nest:srcs",
        "//src/test/java/com/google/devtools/build/android/desugar/covariantreturn:srcs",
        "//src/test/java/com/google/devtools/build/android/desugar/runtime:srcs",
        "//src/test/java/com/google/devtools/build/android/desugar/scan:srcs",
        "//src/test/java/com/google/devtools/build/android/desugar/stringconcat:srcs",
        "//src/test/java/com/google/devtools/build/android/desugar/testing/junit:srcs",
    ],
    visibility = ["//src/test/java/com/google/devtools/build/android:__pkg__"],
)

filegroup(
    name = "android_jar_for_testing",
    srcs = select({
        # TODO(ajmichael): Use @bazel_tools//tools/android:android_jar here once it supplies runfiles.
        "//external:has_androidsdk": ["@androidsdk//:platforms/android-24/android.jar"],
        "//conditions:default": ["@bazel_tools//tools/android:error_message.jar"],
    }),
)

java_test(
    name = "DesugarFunctionalTest",
    size = "small",
    srcs = [
        "DesugarFunctionalTest.java",
    ],
    tags = ["no_windows"],
    deps = [
        ":testdata_desugared",  # Make tests run against desugared library
        "//src/test/java/com/google/devtools/build/lib/testutil",
        "//src/test/java/com/google/devtools/build/lib/testutil:JunitUtils",
        "//third_party:asm",
        "//third_party:guava",
        "//third_party:jsr305",
        "//third_party:junit4",
        "//third_party:truth",
    ],
)

java_test(
    name = "DesugarIdempotencyFunctionalTest",
    size = "small",
    srcs = [
        "DesugarFunctionalTest.java",
    ],
    tags = ["no_windows"],
    test_class = "com.google.devtools.build.android.desugar.DesugarFunctionalTest",
    deps = [
        ":testdata_desugared_twice",  # Make tests run against twice-desugared library
        "//src/test/java/com/google/devtools/build/lib/testutil",
        "//src/test/java/com/google/devtools/build/lib/testutil:JunitUtils",
        "//third_party:asm",
        "//third_party:guava",
        "//third_party:jsr305",
        "//third_party:junit4",
        "//third_party:truth",
    ],
)

# Test for b/62060793. Verifies constant lambda arguments that were pushed using *CONST_0
# instructions.
java_test(
    name = "DesugarFunctionalTestForConstantArgumentsInLambdas",
    size = "small",
    srcs = ["DesugarLambdaTest.java"],
    tags = ["no_windows"],
    test_class = "com.google.devtools.build.android.desugar.DesugarLambdaTest",
    deps = [
        ":desugar_lambda_with_constant_arguments_lib",
        "//third_party:guava",
        "//third_party:junit4",
        "//third_party:truth",
    ],
)

# Test for b/62456849. If a synthetic method is named "lambda$XXX", but not used in invokedynamic,
# then Desugar should keep it in the class, rather than renaming it.
java_test(
    name = "DesugarFunctionalTestForSyntheticMethodsWithLambdaNames",
    size = "small",
    srcs = ["DesugarFunctionalTest.java"],
    tags = ["no_windows"],
    test_class = "com.google.devtools.build.android.desugar.DesugarFunctionalTest",
    deps = [
        ":desugar_testdata_with_synthetic_methods_with_lambda_names",
        ":separate",
        "//src/test/java/com/google/devtools/build/lib/testutil",
        "//src/test/java/com/google/devtools/build/lib/testutil:JunitUtils",
        "//third_party:asm",
        "//third_party:guava",
        "//third_party:jsr305",
        "//third_party:junit4",
        "//third_party:truth",
    ],
)

java_test(
    name = "DesugarLongCompareTest",
    size = "small",
    srcs = [
        "DesugarLongCompareTest.java",
    ],
    tags = ["no_windows"],
    deps = [
        ":testdata_desugared",  # Make tests run against desugared library
        "//third_party:asm",
        "//third_party:guava",
        "//third_party:jsr305",
        "//third_party:junit4",
        "//third_party:truth",
    ],
)

java_test(
    name = "DesugarObjectsRequireNonNullTest",
    size = "small",
    srcs = [
        "DesugarObjectsRequireNonNullTest.java",
    ],
    tags = ["no_windows"],
    deps = [
        ":testdata_desugared",  # Make tests run against desugared library
        "//src/test/java/com/google/devtools/build/lib/testutil",
        "//src/test/java/com/google/devtools/build/lib/testutil:JunitUtils",
        "//third_party:asm",
        "//third_party:guava",
        "//third_party:jsr305",
        "//third_party:junit4",
        "//third_party:truth",
    ],
)

java_test(
    name = "DesugarObjectsRequireNonNullTestForAndroidLintMode",
    size = "small",
    srcs = ["DesugarObjectsRequireNonNullTest.java"],
    tags = ["no_windows"],
    test_class = "com.google.devtools.build.android.desugar.DesugarObjectsRequireNonNullTest",
    deps = [
        ":desugar_testdata_by_disabling_lambda_desugaring",  # Make tests run against desugared library
        "//src/test/java/com/google/devtools/build/lib/testutil",
        "//src/test/java/com/google/devtools/build/lib/testutil:JunitUtils",
        "//third_party:asm",
        "//third_party:guava",
        "//third_party:jsr305",
        "//third_party:junit4",
        "//third_party:truth",
    ],
)

java_test(
    name = "DesugarJava8FunctionalTest",
    size = "small",
    srcs = [
        "DesugarFunctionalTest.java",
        "DesugarJava8FunctionalTest.java",
    ],
    tags = ["no_windows"],
    deps = [
        ":testdata_desugared_java8",  # Make tests run against desugared library
        "//src/test/java/com/google/devtools/build/lib/testutil",
        "//src/test/java/com/google/devtools/build/lib/testutil:JunitUtils",
        "//third_party:guava",
        "//third_party:jsr305",
        "//third_party:junit4",
        "//third_party:truth",
    ],
)

java_test(
    name = "DesugarJava8LikeAndroidStudioFunctionalTest",
    size = "small",
    srcs = [
        "DesugarFunctionalTest.java",
        "DesugarJava8FunctionalTest.java",
        "DesugarJava8LikeAndroidStudioFunctionalTest.java",
    ],
    tags = ["no_windows"],
    deps = [
        ":testdata_desugared_java8_like_in_android_studio",  # Make tests run against desugared library
        "//src/test/java/com/google/devtools/build/lib/testutil",
        "//src/test/java/com/google/devtools/build/lib/testutil:JunitUtils",
        "//third_party:guava",
        "//third_party:jsr305",
        "//third_party:junit4",
        "//third_party:truth",
    ],
)

java_test(
    name = "DesugarDefaultMethodsFunctionalTest",
    size = "small",
    srcs = [
        "DesugarDefaultMethodsFunctionalTest.java",
        "DesugarFunctionalTest.java",
        "DesugarJava8FunctionalTest.java",
    ],
    tags = ["no_windows"],
    deps = [
        ":testdata_desugared_default_methods",  # Make tests run against desugared library
        "//src/test/java/com/google/devtools/build/lib/testutil",
        "//src/test/java/com/google/devtools/build/lib/testutil:JunitUtils",
        "//third_party:guava",
        "//third_party:jsr305",
        "//third_party:junit4",
        "//third_party:truth",
    ],
)

java_test(
    name = "DesugarDefaultMethodsIdempotencyFunctionalTest",
    size = "small",
    srcs = [
        "DesugarDefaultMethodsFunctionalTest.java",
        "DesugarFunctionalTest.java",
        "DesugarJava8FunctionalTest.java",
    ],
    tags = ["no_windows"],
    test_class = "com.google.devtools.build.android.desugar.DesugarDefaultMethodsFunctionalTest",
    deps = [
        ":testdata_desugared_default_methods_twice",  # Make tests run against 2x desugared library
        "//src/test/java/com/google/devtools/build/lib/testutil",
        "//src/test/java/com/google/devtools/build/lib/testutil:JunitUtils",
        "//third_party:guava",
        "//third_party:jsr305",
        "//third_party:junit4",
        "//third_party:truth",
    ],
)

java_test(
    name = "DesugarLikeAndroidStudioFunctionalTest",
    size = "small",
    srcs = [
        "DesugarFunctionalTest.java",
    ],
    tags = ["no_windows"],
    test_class = "com.google.devtools.build.android.desugar.DesugarFunctionalTest",
    deps = [
        ":testdata_desugared_like_in_android_studio",  # Make tests run against desugared library
        "//src/test/java/com/google/devtools/build/lib/testutil",
        "//src/test/java/com/google/devtools/build/lib/testutil:JunitUtils",
        "//third_party:guava",
        "//third_party:jsr305",
        "//third_party:junit4",
        "//third_party:truth",
    ],
)

java_test(
    name = "DesugarFunctionalTestWithMultipleInputs",
    size = "small",
    srcs = [
        "DesugarFunctionalTest.java",
    ],
    tags = ["no_windows"],
    test_class = "com.google.devtools.build.android.desugar.DesugarFunctionalTest",
    deps = [
        ":testdata_desugared_with_multiple_inputs",  # Make tests run against desugared library
        "//src/test/java/com/google/devtools/build/lib/testutil",
        "//src/test/java/com/google/devtools/build/lib/testutil:JunitUtils",
        "//third_party:guava",
        "//third_party:jsr305",
        "//third_party:junit4",
        "//third_party:truth",
    ],
)

java_test(
    name = "DesugarFunctionalTestFromDirectoryToJar",
    size = "small",
    srcs = [
        "DesugarFunctionalTest.java",
    ],
    tags = ["no_windows"],
    test_class = "com.google.devtools.build.android.desugar.DesugarFunctionalTest",
    deps = [
        ":testdata_desugared_from_directory_to_jar",  # Make tests run against desugared library
        "//src/test/java/com/google/devtools/build/lib/testutil",
        "//src/test/java/com/google/devtools/build/lib/testutil:JunitUtils",
        "//third_party:guava",
        "//third_party:jsr305",
        "//third_party:junit4",
        "//third_party:truth",
    ],
)

java_test(
    name = "DesugarFunctionalTestFromDirectoryToDirectory",
    size = "small",
    srcs = [
        "DesugarFunctionalTest.java",
    ],
    tags = ["no_windows"],
    test_class = "com.google.devtools.build.android.desugar.DesugarFunctionalTest",
    deps = [
        ":testdata_desugared_from_directory_to_directory",  # Make tests run against desugared library
        "//src/test/java/com/google/devtools/build/lib/testutil",
        "//src/test/java/com/google/devtools/build/lib/testutil:JunitUtils",
        "//third_party:guava",
        "//third_party:jsr305",
        "//third_party:junit4",
        "//third_party:truth",
    ],
)

java_test(
    name = "DesugarFunctionalTestWithClasspathDirectory",
    size = "small",
    srcs = [
        "DesugarFunctionalTest.java",
    ],
    tags = ["no_windows"],
    test_class = "com.google.devtools.build.android.desugar.DesugarFunctionalTest",
    deps = [
        ":testdata_desugared_with_classpath_directory",  # Make tests run against desugared library
        "//src/test/java/com/google/devtools/build/lib/testutil",
        "//src/test/java/com/google/devtools/build/lib/testutil:JunitUtils",
        "//third_party:guava",
        "//third_party:jsr305",
        "//third_party:junit4",
        "//third_party:truth",
    ],
)

java_test(
    name = "DesugarCoreLibraryFunctionalTest",
    size = "small",
    srcs = [
        "DesugarCoreLibraryFunctionalTest.java",
    ],
    jvm_flags = [
        # TODO (b/72181101): -Xbootclasspath/p is removed in JDK 9.
        "-XX:+IgnoreUnrecognizedVMOptions",
        "-Xbootclasspath/a:$(location :testdata_desugared_core_library):$(location //third_party/java/jacoco:blaze-agent-0.8.3)",
        "--patch-module=java.base=$(location :testdata_desugared_core_library)",
    ],
    tags = ["no_windows"],
    deps = [
        ":testdata_desugared_core_library",  # Make tests run against desugared library
        "//third_party:guava",
        "//third_party:jsr305",
        "//third_party:junit4",
        "//third_party:truth",
        # Depend on Jacoco runtime in case testdata was built with coverage
        # instrumentation
        "//third_party/java/jacoco:blaze-agent-0.8.3",
    ],
)

java_test(
    name = "StackMapBugTest",
    size = "small",
    srcs = [
        "StackMapBugTest.java",
    ],
    jvm_flags = ["-Xbootclasspath/a:$(location //third_party/java/jacoco:blaze-agent-0.8.3)"],
    tags = ["no_windows"],
    deps = [
        ":testdata_desugared_core_library",  # Make tests run against desugared library
        "//third_party:guava",
        "//third_party:junit4",
        "//third_party:truth",
        # Depend on Jacoco runtime in case testdata was built with coverage
        # instrumentation
        "//third_party/java/jacoco:blaze-agent-0.8.3",
    ],
)

java_test(
    name = "DefaultMethodClassFixerTest",
    size = "small",
    srcs = ["DefaultMethodClassFixerTest.java"],
    data = [
        ":android_jar_for_testing",
        ":separate",
        ":testdata_java8",
        "//third_party:guava-jars",
    ],
    jvm_flags = [
        "-DDefaultMethodClassFixerTest.bootclasspath=$(location :android_jar_for_testing)",
        "-DDefaultMethodClassFixerTest.classpath=$(location :separate):$(location //third_party:guava-jars):$(location //third_party/java/jacoco:blaze-agent-0.8.3)",
        "-DDefaultMethodClassFixerTest.input=$(location :testdata_java8)",
    ],
    tags = ["no_windows"],
    deps = [
        "//src/tools/android/java/com/google/devtools/build/android/desugar",
        "//src/tools/android/java/com/google/devtools/build/android/desugar:deps_collector_api",
        "//src/tools/android/java/com/google/devtools/build/android/desugar/io",
        "//third_party:asm",
        "//third_party:asm-tree",
        "//third_party:guava",
        "//third_party:junit4",
        "//third_party:truth",
        "//third_party/java/jacoco:blaze-agent-0.8.3",
    ],
)

java_test(
    name = "MethodInfoTest",
    size = "small",
    srcs = ["MethodInfoTest.java"],
    deps = [
        "//src/tools/android/java/com/google/devtools/build/android/desugar",
        "//third_party:junit4",
        "//third_party:truth",
    ],
)

java_test(
    name = "Java7CompatibilityTest",
    size = "small",
    srcs = ["Java7CompatibilityTest.java"],
    deps = [
        "//src/test/java/com/google/devtools/build/lib/testutil",
        "//src/test/java/com/google/devtools/build/lib/testutil:JunitUtils",
        "//src/tools/android/java/com/google/devtools/build/android/desugar",
        "//src/tools/android/java/com/google/devtools/build/android/desugar/io",
        "//third_party:asm",
        "//third_party:junit4",
        "//third_party:truth",
    ],
)

java_test(
    name = "TryWithResourcesRewriterUnitTestWithReuseStrategy",
    size = "small",
    srcs = [
        "TryWithResourcesRewriterTest.java",
    ],
    jvm_flags = [
        "-Dfortest.simulated.android.sdk_int=19",
        "'-Dexpected.strategy=com.google.devtools.build.android.desugar.runtime.ThrowableExtension$$ReuseDesugaringStrategy'",
    ],
    tags = ["no_windows"],
    test_class = "com.google.devtools.build.android.desugar.TryWithResourcesRewriterTest",
    deps = [
        ":mocked_android_os_sdk_for_testing",
        ":testdata",
        "//src/test/java/com/google/devtools/build/android/desugar/runtime:throwable_extension_test_utility",
        "//src/test/java/com/google/devtools/build/lib/testutil",
        "//src/test/java/com/google/devtools/build/lib/testutil:JunitUtils",
        "//src/tools/android/java/com/google/devtools/build/android/desugar",
        "//src/tools/android/java/com/google/devtools/build/android/desugar/io",
        "//src/tools/android/java/com/google/devtools/build/android/desugar/runtime:throwable_extension",
        "//third_party:asm",
        "//third_party:guava",
        "//third_party:junit4",
        "//third_party:truth",
    ],
)

java_test(
    name = "TryWithResourcesRewriterUnitTestWithMimicStrategy",
    size = "small",
    srcs = [
        "TryWithResourcesRewriterTest.java",
    ],
    jvm_flags = [
        "-Dfortest.simulated.android.sdk_int=18",
        "'-Dexpected.strategy=com.google.devtools.build.android.desugar.runtime.ThrowableExtension$$MimicDesugaringStrategy'",
    ],
    tags = ["no_windows"],
    test_class = "com.google.devtools.build.android.desugar.TryWithResourcesRewriterTest",
    deps = [
        ":mocked_android_os_sdk_for_testing",
        ":testdata",
        "//src/test/java/com/google/devtools/build/android/desugar/runtime:throwable_extension_test_utility",
        "//src/test/java/com/google/devtools/build/lib/testutil",
        "//src/test/java/com/google/devtools/build/lib/testutil:JunitUtils",
        "//src/tools/android/java/com/google/devtools/build/android/desugar",
        "//src/tools/android/java/com/google/devtools/build/android/desugar/io",
        "//src/tools/android/java/com/google/devtools/build/android/desugar/runtime:throwable_extension",
        "//third_party:asm",
        "//third_party:guava",
        "//third_party:junit4",
        "//third_party:truth",
    ],
)

java_test(
    name = "TryWithResourcesRewriterUnitTestWithNullStrategy",
    size = "small",
    srcs = [
        "TryWithResourcesRewriterTest.java",
    ],
    jvm_flags = [
        "-Dfortest.simulated.android.sdk_int=18",
        "-Dcom.google.devtools.build.android.desugar.runtime.twr_disable_mimic=true",
        "'-Dexpected.strategy=com.google.devtools.build.android.desugar.runtime.ThrowableExtension$$NullDesugaringStrategy'",
    ],
    tags = ["no_windows"],
    test_class = "com.google.devtools.build.android.desugar.TryWithResourcesRewriterTest",
    deps = [
        ":mocked_android_os_sdk_for_testing",
        ":testdata",
        "//src/test/java/com/google/devtools/build/android/desugar/runtime:throwable_extension_test_utility",
        "//src/test/java/com/google/devtools/build/lib/testutil",
        "//src/test/java/com/google/devtools/build/lib/testutil:JunitUtils",
        "//src/tools/android/java/com/google/devtools/build/android/desugar",
        "//src/tools/android/java/com/google/devtools/build/android/desugar/io",
        "//src/tools/android/java/com/google/devtools/build/android/desugar/runtime:throwable_extension",
        "//third_party:asm",
        "//third_party:guava",
        "//third_party:junit4",
        "//third_party:truth",
    ],
)

# This test sets the lambda dump directory via the system property in the command line
# (i.e., jvm_flags). So the dump directory is expected to succeed.
java_test(
    name = "DesugarMainClassTestLambdaDirectoryCorrectlySet",
    size = "small",
    srcs = ["DesugarMainClassTest.java"],
    jvm_flags = ["-Djdk.internal.lambda.dumpProxyClasses=$$(mktemp -d)"],
    tags = ["no_windows"],
    test_class = "com.google.devtools.build.android.desugar.DesugarMainClassTest",
    deps = [
        "//src/test/java/com/google/devtools/build/lib/testutil",
        "//src/test/java/com/google/devtools/build/lib/testutil:JunitUtils",
        "//src/tools/android/java/com/google/devtools/build/android/desugar",
        "//third_party:guava",
        "//third_party:junit4",
        "//third_party:truth",
    ],
)

# Different from the test target above, this test does not set the lambda dump directory in the
# command line. Instead, it sets the system property in the test code, which is expected to fail.
java_test(
    name = "DesugarMainClassTestLambdaDirectoryIncorrectlySet",
    size = "small",
    srcs = ["DesugarMainClassTest.java"],
    tags = ["no_windows"],
    test_class = "com.google.devtools.build.android.desugar.DesugarMainClassTest",
    deps = [
        "//src/test/java/com/google/devtools/build/lib/testutil",
        "//src/test/java/com/google/devtools/build/lib/testutil:JunitUtils",
        "//src/tools/android/java/com/google/devtools/build/android/desugar",
        "//third_party:guava",
        "//third_party:junit4",
        "//third_party:truth",
    ],
)

java_test(
    name = "BytecodeTypeInferenceTest",
    srcs = ["BytecodeTypeInferenceTest.java"],
    data = [
        "BytecodeTypeInferenceTest.golden.txt",
        "//src/test/java/com/google/devtools/build/android/desugar/classes_for_testing_type_inference:test_subjects",
    ],
    jvm_flags = [
        "-Djar_path=$(location //src/test/java/com/google/devtools/build/android/desugar/classes_for_testing_type_inference:test_subjects)",
        "-Dgolden_file=$(location BytecodeTypeInferenceTest.golden.txt)",
    ],
    tags = ["no_windows"],
    deps = [
        ":bytecode_type_printer",
        "//src/test/java/com/google/devtools/build/lib/testutil",
        "//src/tools/android/java/com/google/devtools/build/android/desugar",
        "//third_party:asm",
        "//third_party:guava",
        "//third_party:junit4",
        "//third_party:truth",
    ],
)

sh_test(
    name = "testdata_desugared_jar_test",
    size = "small",
    srcs = ["testdata_desugared_jar_test.sh"],
    args = [
        "$(location testdata_desugared.jar)",
        "$(location testdata_desugared_jar_toc_golden.txt)",
        "$(JAVABASE)",
    ],
    data = [
        "testdata_desugared.jar",
        "testdata_desugared_jar_toc_golden.txt",  # Golden file
        "@bazel_tools//tools/jdk",
    ],
    tags = ["no_windows"],
    toolchains = ["@bazel_tools//tools/jdk:current_java_runtime"],
)

# Make sure desugaring twice doesn't add any files
sh_test(
    name = "testdata_desugared_twice_jar_test",
    size = "small",
    srcs = ["testdata_desugared_jar_test.sh"],
    args = [
        "$(location testdata_desugared_twice.jar)",
        "$(location testdata_desugared_jar_toc_golden.txt)",
        "$(JAVABASE)",
    ],
    data = [
        "testdata_desugared_jar_toc_golden.txt",
        "testdata_desugared_twice.jar",
        "@bazel_tools//tools/jdk",
    ],
    tags = ["no_windows"],
    toolchains = ["@bazel_tools//tools/jdk:current_java_runtime"],
)

sh_test(
    name = "testdata_desugared_java8_jar_test",
    size = "small",
    srcs = ["testdata_desugared_jar_test.sh"],
    args = [
        "$(location testdata_desugared_java8.jar)",
        "$(location testdata_desugared_java8_jar_toc_golden.txt)",
        "$(JAVABASE)",
    ],
    data = [
        "testdata_desugared_java8.jar",
        "testdata_desugared_java8_jar_toc_golden.txt",  # Golden file
        "@bazel_tools//tools/jdk",
    ],
    tags = ["no_windows"],
    toolchains = ["@bazel_tools//tools/jdk:current_java_runtime"],
)

# TODO(b/37110951): Add jar content test for desugared default methods that works with coverage on

sh_test(
    name = "testdata_desugared_core_library_jar_test",
    size = "small",
    srcs = ["testdata_desugared_jar_test.sh"],
    args = [
        "$(location testdata_desugared_core_library.jar)",
        "$(location testdata_desugared_core_library_jar_toc_golden.txt)",
        "$(JAVABASE)",
    ],
    data = [
        "testdata_desugared_core_library.jar",
        "testdata_desugared_core_library_jar_toc_golden.txt",  # Golden file
        "@bazel_tools//tools/jdk",
    ],
    tags = ["no_windows"],
    toolchains = ["@bazel_tools//tools/jdk:current_java_runtime"],
)

sh_test(
    name = "testdata_desugared_for_try_with_resources_test",
    size = "small",
    srcs = ["testdata_desugared_jar_test.sh"],
    args = [
        "$(location testdata_desugared_for_try_with_resources.jar)",
        "$(location testdata_desugared_for_try_with_resources_jar_toc_golden.txt)",
        "$(JAVABASE)",
    ],
    data = [
        "testdata_desugared_for_try_with_resources.jar",
        "testdata_desugared_for_try_with_resources_jar_toc_golden.txt",  # Golden file
        "@bazel_tools//tools/jdk",
    ],
    tags = ["no_windows"],
    toolchains = ["@bazel_tools//tools/jdk:current_java_runtime"],
)

sh_test(
    name = "testdata_desugared_for_try_with_resources_test_twice",
    size = "small",
    srcs = ["testdata_desugared_jar_test.sh"],
    args = [
        "$(location testdata_desugared_for_try_with_resources_twice.jar)",
        "$(location testdata_desugared_for_try_with_resources_jar_toc_golden.txt)",
        "$(JAVABASE)",
    ],
    data = [
        "testdata_desugared_for_try_with_resources_jar_toc_golden.txt",  # Golden file
        "testdata_desugared_for_try_with_resources_twice.jar",
        "@bazel_tools//tools/jdk",
    ],
    tags = ["no_windows"],
    toolchains = ["@bazel_tools//tools/jdk:current_java_runtime"],
)

# Test for b/63900665
sh_test(
    name = "testdata_desugared_for_disabling_try_with_resources_with_large_minsdkversion_test",
    size = "small",
    srcs = ["testdata_desugared_jar_test.sh"],
    args = [
        "$(location testdata_desugared_for_NO_desugaring_try_with_resources.jar)",
        "$(location testdata_desugared_for_disabling_twr_with_large_minsdkversion_jar_toc_golden.txt)",
        "$(JAVABASE)",
    ],
    data = [
        "testdata_desugared_for_NO_desugaring_try_with_resources.jar",
        "testdata_desugared_for_disabling_twr_with_large_minsdkversion_jar_toc_golden.txt",  # Golden file
        "@bazel_tools//tools/jdk",
    ],
    tags = ["no_windows"],
    toolchains = ["@bazel_tools//tools/jdk:current_java_runtime"],
)

# Test for b/62047432
sh_test(
    name = "initializer_of_functional_interface_should_not_execute",
    size = "small",
    srcs = ["static_initializer_of_functional_interface_should_not_execute.sh"],
    args = [
        "$(location :desugar_testdata_with_default_methods_for_static_initializer_test) ",
    ],
    data = [
        ":desugar_testdata_with_default_methods_for_static_initializer_test",
    ],
    tags = ["no_windows"],
)

java_library(
    name = "testdata",
    srcs = glob(["testdata/*.java"]),
    javacopts = ["-Xep:SelfAssignment:OFF"],
    resources = ["testdata/testresource.txt"],
    deps = [
        ":separate",
        "//third_party:guava",
    ],
)

java_library(
    name = "testdata_java8",
    srcs = glob([
        "testdata/*.java",
        "testdata/java8/**/*.java",
    ]),
    javacopts = ["-Xep:SelfAssignment:OFF"],
    resources = ["testdata/testresource.txt"],
    deps = [
        ":separate",
        ":separate_java8",
        "//third_party:guava",
    ],
)

java_library(
    name = "testdata_core_library",
    srcs = glob([
        "testdata/core_library/**/*.java",
    ]),
    resources = ["testdata/testresource.txt"],
    deps = [
        "//third_party:error_prone",
        "//third_party:guava",
    ],
)

java_library(
    name = "separate",
    srcs = glob(["testdata/separate/*.java"]),
)

java_library(
    name = "separate_java8",
    srcs = glob(["testdata/separate8/*.java"]),
)

java_library(
    name = "testdata_like_in_android_studio",
    srcs = glob(["testdata/*.java"]),
    javacopts = ["-Xep:SelfAssignment:OFF"],
    resources = ["testdata/testresource.txt"],
    deps = [
        ":libseparate.jar",  # puts full Jar instead of header Jar on the classpath
        "//third_party:guava",
    ],
)

java_library(
    name = "testdata_java8_like_in_android_studio",
    srcs = glob([
        "testdata/*.java",
        "testdata/java8/**/*.java",
    ]),
    javacopts = ["-Xep:SelfAssignment:OFF"],
    resources = ["testdata/testresource.txt"],
    deps = [
        ":libseparate.jar",  # puts full Jar instead of header Jar on the classpath
        ":libseparate_java8.jar",  # puts full Jar instead of header Jar on the classpath
        "//third_party:guava",
    ],
)

java_library(
    name = "bytecode_type_printer",
    srcs = ["ByteCodeTypePrinter.java"],
    deps = [
        "//src/tools/android/java/com/google/devtools/build/android/desugar",
        "//third_party:asm",
        "//third_party:asm-tree",
        "//third_party:asm-util",
        "//third_party:guava",
    ],
)

# The golden file for this target should NEVER contain generated lambda classes.
sh_test(
    name = "desugar_testdata_by_disabling_lambda_desugaring_test",
    size = "small",
    srcs = ["testdata_desugared_jar_test.sh"],
    args = [
        "$(location testdata_desugared_without_lambda_desugared.jar)",
        "$(location testdata_desugared_without_lambda_desugared_jar_toc_golden.txt)",
        "$(JAVABASE)",
    ],
    data = [
        "testdata_desugared_without_lambda_desugared.jar",
        "testdata_desugared_without_lambda_desugared_jar_toc_golden.txt",  # Golden file
        "@bazel_tools//tools/jdk",
    ],
    tags = ["no_windows"],
    toolchains = ["@bazel_tools//tools/jdk:current_java_runtime"],
)

# The following genrules run the code tested here as a build tool.  While that's
# very similar to how Bazel will invoke it natively, the downside is that
# running the tested tool in a genrule doesn't contribute code coverage
# information for the tested tool.  Note that the code in :testdata doesn't
# appear in coverage reports when depending on this target regardless because
# the needed metadata doesn't survive these genrules.
genrule(
    name = "desugar_testdata",
    srcs = [
        "//third_party:guava-jars",
        ":separate",
        ":testdata",
        # Depend on Jacoco runtime in case testdata was built with coverage
        # instrumentation
        "//third_party/java/jacoco:blaze-agent-0.8.3",
        "@bazel_tools//tools/android:android_jar",
    ],
    outs = ["testdata_desugared.jar"],
    cmd = "$(location //src/tools/android/java/com/google/devtools/build/android/desugar:Desugar) " +
          "--nodesugar_interface_method_bodies_if_needed -i $(location :testdata) -o $@ " +
          "--classpath_entry $(location :separate) " +
          "--classpath_entry $(location //third_party:guava-jars) " +
          "--classpath_entry $(location //third_party/java/jacoco:blaze-agent-0.8.3) " +
          "--bootclasspath_entry $(location @bazel_tools//tools/android:android_jar)",
    tags = ["no_windows"],
    tools = ["//src/tools/android/java/com/google/devtools/build/android/desugar:Desugar"],
)

# Generates special lambda invocation so we can test for b/62060793.
genrule(
    name = "generate_lambda_with_constant_arguments_in_test_data",
    outs = ["testdata_generate_lambda_with_constant_arguments.jar"],
    cmd = "$(location :generate_lambda_with_constant_arguments) $@",
    tags = ["no_windows"],
    tools = [":generate_lambda_with_constant_arguments"],
)

# Desugar the test data for b/62456849
genrule(
    name = "desugar_lambda_with_constant_arguments",
    srcs = [
        ":generate_lambda_with_constant_arguments_in_test_data",
        # Depend on Jacoco runtime in case testdata was built with coverage instrumentation
        "//third_party/java/jacoco:blaze-agent-0.8.3",
        "@bazel_tools//tools/android:android_jar",
    ],
    outs = ["testdata_desugar_generate_lambda_with_constant_arguments.jar"],
    cmd = "$(location //src/tools/android/java/com/google/devtools/build/android/desugar:Desugar) " +
          "-i $(location :generate_lambda_with_constant_arguments_in_test_data) -o $@ " +
          "--classpath_entry $(location //third_party/java/jacoco:blaze-agent-0.8.3) " +
          "--bootclasspath_entry $(location @bazel_tools//tools/android:android_jar)",
    tags = ["no_windows"],
    tools = ["//src/tools/android/java/com/google/devtools/build/android/desugar:Desugar"],
)

java_import(
    name = "desugar_lambda_with_constant_arguments_lib",
    jars = [":desugar_lambda_with_constant_arguments"],
    tags = ["no_windows"],
)

# Convert human-written methods whose names start with "lambda$XXX" to synthetic methods, so we can
# test for b/62456849.
genrule(
    name = "generate_synthetic_methods_with_lambda_names_in_test_data",
    srcs = [":testdata"],
    outs = ["testdata_with_generated_synthetic_methods_with_lambda_names.jar"],
    cmd = "$(location :generate_synthetic_method_with_lambda_name_convention) " +
          " $(location :testdata) " +
          " $@ ",
    tags = ["no_windows"],
    tools = [":generate_synthetic_method_with_lambda_name_convention"],
)

# Desugar the test data for b/62456849
genrule(
    name = "desugar_testdata_with_synthetic_methods_with_lambda_names",
    srcs = [
        "//third_party:guava-jars",
        ":separate",
        ":generate_synthetic_methods_with_lambda_names_in_test_data",
        # Depend on Jacoco runtime in case testdata was built with coverage instrumentation
        "//third_party/java/jacoco:blaze-agent-0.8.3",
        "@bazel_tools//tools/android:android_jar",
    ],
    outs = ["testdata_desugared_with_synthetic_methods_with_lambda_names.jar"],
    cmd = "$(location //src/tools/android/java/com/google/devtools/build/android/desugar:Desugar) " +
          "--nodesugar_interface_method_bodies_if_needed -i $(location :generate_synthetic_methods_with_lambda_names_in_test_data) -o $@ " +
          "--classpath_entry $(location :separate) " +
          "--classpath_entry $(location //third_party:guava-jars) " +
          "--classpath_entry $(location //third_party/java/jacoco:blaze-agent-0.8.3) " +
          "--bootclasspath_entry $(location @bazel_tools//tools/android:android_jar)",
    tags = ["no_windows"],
    tools = ["//src/tools/android/java/com/google/devtools/build/android/desugar:Desugar"],
)

genrule(
    name = "desugar_testdata_again",
    srcs = [
        "//third_party:guava-jars",
        ":separate",
        ":testdata_desugared.jar",
        # Depend on Jacoco runtime in case testdata was built with coverage
        # instrumentation
        "//third_party/java/jacoco:blaze-agent-0.8.3",
        "@bazel_tools//tools/android:android_jar",
    ],
    outs = ["testdata_desugared_twice.jar"],
    cmd = "$(location //src/tools/android/java/com/google/devtools/build/android/desugar:Desugar) " +
          "--nodesugar_interface_method_bodies_if_needed -i $(location :testdata_desugared.jar) -o $@ " +
          "--classpath_entry $(location :separate) " +
          "--classpath_entry $(location //third_party:guava-jars) " +
          "--classpath_entry $(location //third_party/java/jacoco:blaze-agent-0.8.3) " +
          "--bootclasspath_entry $(location @bazel_tools//tools/android:android_jar)",
    tags = ["no_windows"],
    tools = ["//src/tools/android/java/com/google/devtools/build/android/desugar:Desugar"],
)

# This target tests the flag --allow_desugaring_lambda_for_lint=true, which is introduced to solve
# the incompatibility issue with Android Lint. When the issue is addressed, this target and the
# flag will be removed.
genrule(
    name = "desugar_testdata_by_disabling_lambda_desugaring",
    srcs = [
        "//third_party:guava-jars",
        ":separate",
        ":testdata",
        # Depend on Jacoco runtime in case testdata was built with coverage
        # instrumentation
        "//third_party/java/jacoco:blaze-agent-0.8.3",
        "@bazel_tools//tools/android:android_jar",
    ],
    outs = ["testdata_desugared_without_lambda_desugared.jar"],
    cmd = "$(location //src/tools/android/java/com/google/devtools/build/android/desugar:Desugar) " +
          "--min_sdk_version 17 -i $(location :testdata) -o $@ " +
          "--nodesugar_try_with_resources_if_needed " +
          "--classpath_entry $(location :separate) " +
          "--classpath_entry $(location //third_party:guava-jars) " +
          "--classpath_entry $(location //third_party/java/jacoco:blaze-agent-0.8.3) " +
          "--bootclasspath_entry $(location @bazel_tools//tools/android:android_jar) " +
          "--only_desugar_javac9_for_lint",
    tags = ["no_windows"],
    tools = ["//src/tools/android/java/com/google/devtools/build/android/desugar:Desugar"],
)

java_test(
    name = "DesugarTryWithResourcesFunctionalTestWithNullStrategy",
    size = "small",
    srcs = [
        "DesugarTryWithResourcesFunctionalTest.java",
    ],
    jvm_flags = [
        "-Dfortest.simulated.android.sdk_int=18",
        "-Dcom.google.devtools.build.android.desugar.runtime.twr_disable_mimic=true",
        "'-Dexpected.strategy=com.google.devtools.build.android.desugar.runtime.ThrowableExtension$$NullDesugaringStrategy'",
    ],
    tags = ["no_windows"],
    test_class = "com.google.devtools.build.android.desugar.DesugarTryWithResourcesFunctionalTest",
    deps = [
        "mocked_android_os_sdk_for_testing",
        ":desugar_testdata_by_desugaring_try_with_resources",
        "//src/test/java/com/google/devtools/build/android/desugar/runtime:throwable_extension_test_utility",
        "//src/test/java/com/google/devtools/build/lib/testutil",
        "//src/test/java/com/google/devtools/build/lib/testutil:JunitUtils",
        "//third_party:asm",
        "//third_party:guava",
        "//third_party:junit4",
        "//third_party:truth",
    ],
)

java_test(
    name = "DesugarTryWithResourcesFunctionalTestWithNullStrategyTwice",
    size = "small",
    srcs = [
        "DesugarTryWithResourcesFunctionalTest.java",
    ],
    jvm_flags = [
        "-Dfortest.simulated.android.sdk_int=18",
        "-Dcom.google.devtools.build.android.desugar.runtime.twr_disable_mimic=true",
        "'-Dexpected.strategy=com.google.devtools.build.android.desugar.runtime.ThrowableExtension$$NullDesugaringStrategy'",
    ],
    tags = ["no_windows"],
    test_class = "com.google.devtools.build.android.desugar.DesugarTryWithResourcesFunctionalTest",
    deps = [
        "mocked_android_os_sdk_for_testing",
        ":desugar_testdata_by_desugaring_try_with_resources_twice",  # the lib desugared twice
        "//src/test/java/com/google/devtools/build/android/desugar/runtime:throwable_extension_test_utility",
        "//src/test/java/com/google/devtools/build/lib/testutil",
        "//src/test/java/com/google/devtools/build/lib/testutil:JunitUtils",
        "//third_party:asm",
        "//third_party:guava",
        "//third_party:junit4",
        "//third_party:truth",
    ],
)

java_test(
    name = "DesugarTryWithResourcesFunctionalTestWithMimicStrategy",
    size = "small",
    srcs = [
        "DesugarTryWithResourcesFunctionalTest.java",
    ],
    jvm_flags = [
        "-Dfortest.simulated.android.sdk_int=18",
        "'-Dexpected.strategy=com.google.devtools.build.android.desugar.runtime.ThrowableExtension$$MimicDesugaringStrategy'",
    ],
    tags = ["no_windows"],
    test_class = "com.google.devtools.build.android.desugar.DesugarTryWithResourcesFunctionalTest",
    deps = [
        ":desugar_testdata_by_desugaring_try_with_resources",
        ":mocked_android_os_sdk_for_testing",
        "//src/test/java/com/google/devtools/build/android/desugar/runtime:throwable_extension_test_utility",
        "//src/test/java/com/google/devtools/build/lib/testutil",
        "//src/test/java/com/google/devtools/build/lib/testutil:JunitUtils",
        "//third_party:asm",
        "//third_party:guava",
        "//third_party:junit4",
        "//third_party:truth",
    ],
)

java_test(
    name = "DesugarTryWithResourcesFunctionalTestWithMimicStrategyTwice",
    size = "small",
    srcs = [
        "DesugarTryWithResourcesFunctionalTest.java",
    ],
    jvm_flags = [
        "-Dfortest.simulated.android.sdk_int=18",
        "'-Dexpected.strategy=com.google.devtools.build.android.desugar.runtime.ThrowableExtension$$MimicDesugaringStrategy'",
    ],
    tags = ["no_windows"],
    test_class = "com.google.devtools.build.android.desugar.DesugarTryWithResourcesFunctionalTest",
    deps = [
        ":desugar_testdata_by_desugaring_try_with_resources_twice",  # the lib desugared twice.
        ":mocked_android_os_sdk_for_testing",
        "//src/test/java/com/google/devtools/build/android/desugar/runtime:throwable_extension_test_utility",
        "//src/test/java/com/google/devtools/build/lib/testutil",
        "//src/test/java/com/google/devtools/build/lib/testutil:JunitUtils",
        "//third_party:asm",
        "//third_party:guava",
        "//third_party:junit4",
        "//third_party:truth",
    ],
)

java_test(
    name = "DesugarTryWithResourcesFunctionalTestWithReuseStrategy",
    size = "small",
    srcs = [
        "DesugarTryWithResourcesFunctionalTest.java",
    ],
    jvm_flags = [
        "-Dfortest.simulated.android.sdk_int=19",
        "'-Dexpected.strategy=com.google.devtools.build.android.desugar.runtime.ThrowableExtension$$ReuseDesugaringStrategy'",
    ],
    tags = ["no_windows"],
    test_class = "com.google.devtools.build.android.desugar.DesugarTryWithResourcesFunctionalTest",
    deps = [
        ":desugar_testdata_by_desugaring_try_with_resources",
        ":mocked_android_os_sdk_for_testing",
        "//src/test/java/com/google/devtools/build/android/desugar/runtime:throwable_extension_test_utility",
        "//src/test/java/com/google/devtools/build/lib/testutil",
        "//src/test/java/com/google/devtools/build/lib/testutil:JunitUtils",
        "//third_party:asm",
        "//third_party:guava",
        "//third_party:junit4",
        "//third_party:truth",
    ],
)

java_test(
    name = "DesugarTryWithResourcesFunctionalTestWithReuseStrategyTwice",
    size = "small",
    srcs = [
        "DesugarTryWithResourcesFunctionalTest.java",
    ],
    jvm_flags = [
        "-Dfortest.simulated.android.sdk_int=19",
        "'-Dexpected.strategy=com.google.devtools.build.android.desugar.runtime.ThrowableExtension$$ReuseDesugaringStrategy'",
    ],
    tags = ["no_windows"],
    test_class = "com.google.devtools.build.android.desugar.DesugarTryWithResourcesFunctionalTest",
    deps = [
        ":desugar_testdata_by_desugaring_try_with_resources_twice",  # the lib desugared twice.
        ":mocked_android_os_sdk_for_testing",
        "//src/test/java/com/google/devtools/build/android/desugar/runtime:throwable_extension_test_utility",
        "//src/test/java/com/google/devtools/build/lib/testutil",
        "//src/test/java/com/google/devtools/build/lib/testutil:JunitUtils",
        "//third_party:asm",
        "//third_party:guava",
        "//third_party:junit4",
        "//third_party:truth",
    ],
)

java_library(
    name = "mocked_android_os_sdk_for_testing",
    srcs = ["mocked_android_framework/android/os/Build.java"],
)

genrule(
    name = "desugar_testdata_java8",
    srcs = [
        "//third_party:guava-jars",
        ":separate",
        ":separate_java8",
        ":testdata_java8",
        # Depend on Jacoco runtime in case testdata was built with coverage
        # instrumentation
        "//third_party/java/jacoco:blaze-agent-0.8.3",
        "@bazel_tools//tools/android:android_jar",
    ],
    outs = ["testdata_desugared_java8.jar"],
    cmd = "$(location //src/tools/android/java/com/google/devtools/build/android/desugar:Desugar) " +
          "--min_sdk_version 24 " +
          "-i $(location :testdata_java8) -o $@ " +
          "--classpath_entry $(location :separate) " +
          "--classpath_entry $(location :separate_java8) " +
          "--classpath_entry $(location //third_party:guava-jars) " +
          "--classpath_entry $(location //third_party/java/jacoco:blaze-agent-0.8.3) " +
          "--bootclasspath_entry $(location @bazel_tools//tools/android:android_jar)",
    tags = ["no_windows"],
    tools = ["//src/tools/android/java/com/google/devtools/build/android/desugar:Desugar"],
)

genrule(
    name = "desugar_testdata_java8_like_in_android_studio",
    srcs = [
        "//third_party:guava-jars",
        ":separate",
        ":separate_java8",
        ":testdata_java8_like_in_android_studio",
        # Depend on Jacoco runtime in case testdata was built with coverage
        # instrumentation
        "//third_party/java/jacoco:blaze-agent-0.8.3",
        "@bazel_tools//tools/android:android_jar",
    ],
    outs = ["testdata_desugared_java8_like_in_android_studio.jar"],
    cmd = "$(location //src/tools/android/java/com/google/devtools/build/android/desugar:Desugar) " +
          "--copy_bridges_from_classpath " +
          "--legacy_jacoco_fix " +
          "--min_sdk_version 24 " +
          "-i $(location :testdata_java8_like_in_android_studio) -o $@ " +
          "--classpath_entry $(location :separate) " +
          "--classpath_entry $(location :separate_java8) " +
          "--classpath_entry $(location //third_party:guava-jars) " +
          "--classpath_entry $(location //third_party/java/jacoco:blaze-agent-0.8.3) " +
          "--bootclasspath_entry $(location @bazel_tools//tools/android:android_jar)",
    tags = ["no_windows"],
    tools = ["//src/tools/android/java/com/google/devtools/build/android/desugar:Desugar"],
)

genrule(
    name = "desugar_testdata_with_default_methods",
    srcs = [
        "//third_party:guava-jars",
        ":separate",
        ":separate_java8",
        ":testdata_java8",
        # Depend on Jacoco runtime in case testdata was built with coverage
        # instrumentation
        "//third_party/java/jacoco:blaze-agent-0.8.3",
        "@bazel_tools//tools/android:android_jar",
    ],
    outs = ["testdata_desugared_default_methods.jar"],
    cmd = "$(location //src/tools/android/java/com/google/devtools/build/android/desugar:Desugar) " +
          "-i $(location :testdata_java8) -o $@ " +
          "--emit_dependency_metadata_as_needed " +
          "--classpath_entry $(location :separate) " +
          "--classpath_entry $(location :separate_java8) " +
          "--classpath_entry $(location //third_party:guava-jars) " +
          "--classpath_entry $(location //third_party/java/jacoco:blaze-agent-0.8.3) " +
          "--bootclasspath_entry $(location @bazel_tools//tools/android:android_jar)",
    tags = ["no_windows"],
    tools = ["//src/tools/android/java/com/google/devtools/build/android/desugar:Desugar"],
)

genrule(
    name = "desugar_separate_java8_with_default_methods",
    srcs = [
        ":separate_java8",
        # Depend on Jacoco runtime in case testdata was built with coverage
        # instrumentation
        "//third_party/java/jacoco:blaze-agent-0.8.3",
        "@bazel_tools//tools/android:android_jar",
    ],
    outs = ["separate_java8_desugared_default_methods.jar"],
    cmd = "$(location //src/tools/android/java/com/google/devtools/build/android/desugar:Desugar) " +
          "-i $(location :separate_java8) -o $@ " +
          "--emit_dependency_metadata_as_needed " +
          "--classpath_entry $(location //third_party/java/jacoco:blaze-agent-0.8.3) " +
          "--bootclasspath_entry $(location @bazel_tools//tools/android:android_jar)",
    tags = ["no_windows"],
    tools = ["//src/tools/android/java/com/google/devtools/build/android/desugar:Desugar"],
)

genrule(
    name = "desugar_testdata_with_default_methods_for_static_initializer_test",
    srcs = [
        "//third_party:guava-jars",
        ":separate",
        ":separate_java8",
        ":testdata_java8",
        # Depend on Jacoco runtime in case testdata was built with coverage
        # instrumentation
        "//third_party/java/jacoco:blaze-agent-0.8.3",
        "@bazel_tools//tools/android:android_jar",
    ],
    outs = ["testdata_desugared_default_methods.output.txt"],
    cmd = "$(location //src/tools/android/java/com/google/devtools/build/android/desugar:Desugar) " +
          "--desugar_interface_method_bodies_if_needed -i $(location :testdata_java8) " +
          "-o desugar_testdata_with_default_methods_for_static_initializer_test.jar " +
          "--classpath_entry $(location :separate) " +
          "--classpath_entry $(location :separate_java8) " +
          "--classpath_entry $(location //third_party:guava-jars) " +
          "--classpath_entry $(location //third_party/java/jacoco:blaze-agent-0.8.3) " +
          "--bootclasspath_entry $(location @bazel_tools//tools/android:android_jar) " +
          " &> $@",
    tags = ["no_windows"],
    tools = ["//src/tools/android/java/com/google/devtools/build/android/desugar:Desugar"],
)

genrule(
    name = "desugar_testdata_with_default_methods_again",
    srcs = [
        "//third_party:guava-jars",
        ":separate",
        ":separate_java8",
        ":testdata_desugared_default_methods.jar",
        # Depend on Jacoco runtime in case testdata was built with coverage
        # instrumentation
        "//third_party/java/jacoco:blaze-agent-0.8.3",
        "@bazel_tools//tools/android:android_jar",
    ],
    outs = ["testdata_desugared_default_methods_twice.jar"],
    cmd = "$(location //src/tools/android/java/com/google/devtools/build/android/desugar:Desugar) " +
          "--desugar_interface_method_bodies_if_needed -i $(location :testdata_desugared_default_methods.jar) -o $@ " +
          "--classpath_entry $(location :separate) " +
          "--classpath_entry $(location :separate_java8) " +
          "--classpath_entry $(location //third_party:guava-jars) " +
          "--classpath_entry $(location //third_party/java/jacoco:blaze-agent-0.8.3) " +
          "--bootclasspath_entry $(location @bazel_tools//tools/android:android_jar)",
    tags = ["no_windows"],
    tools = ["//src/tools/android/java/com/google/devtools/build/android/desugar:Desugar"],
)

genrule(
    name = "desugar_testdata_core_library",
    srcs = [
        ":testdata_core_library",
        # Depend on Jacoco runtime in case testdata was built with coverage
        # instrumentation
        "//third_party/java/jacoco:blaze-agent-0.8.3",
        "@bazel_tools//tools/android:android_jar",
    ],
    outs = ["testdata_desugared_core_library.jar"],
    cmd = "$(location //src/tools/android/java/com/google/devtools/build/android/desugar:Desugar) " +
          "--core_library -i $(location :testdata_core_library) -o $@ " +
          "--classpath_entry $(location //third_party/java/jacoco:blaze-agent-0.8.3) " +
          "--bootclasspath_entry $(location @bazel_tools//tools/android:android_jar)",
    tags = ["no_windows"],
    tools = ["//src/tools/android/java/com/google/devtools/build/android/desugar:Desugar"],
)

genrule(
    name = "desugar_testdata_like_in_android_studio",
    srcs = [
        "//third_party:guava-jars",
        ":separate",
        ":testdata_like_in_android_studio",
        # Depend on Jacoco runtime in case testdata was built with coverage
        # instrumentation
        "//third_party/java/jacoco:blaze-agent-0.8.3",
        "@bazel_tools//tools/android:android_jar",
    ],
    outs = ["testdata_desugared_like_in_android_studio.jar"],
    cmd = "$(location //src/tools/android/java/com/google/devtools/build/android/desugar:Desugar) " +
          "--min_sdk_version 23 " +
          "--legacy_jacoco_fix " +
          "--nodesugar_interface_method_bodies_if_needed " +
          "-i $(location :testdata_like_in_android_studio) -o $@ " +
          "--copy_bridges_from_classpath " +
          "--classpath_entry $(location :separate) " +
          "--classpath_entry $(location //third_party:guava-jars) " +
          "--classpath_entry $(location //third_party/java/jacoco:blaze-agent-0.8.3) " +
          "--bootclasspath_entry $(location @bazel_tools//tools/android:android_jar)",
    tags = ["no_windows"],
    tools = ["//src/tools/android/java/com/google/devtools/build/android/desugar:Desugar"],
)

genrule(
    name = "desugar_testdata_and_separate_with_multiple_inputs",
    srcs = [
        "//third_party:guava-jars",
        ":separate",
        ":testdata_like_in_android_studio",
        # Depend on Jacoco runtime in case testdata was built with coverage
        # instrumentation
        "//third_party/java/jacoco:blaze-agent-0.8.3",
        "@bazel_tools//tools/android:android_jar",
    ],
    outs = [
        "testdata_desugared_with_multiple_inputs.jar",
        "separate_desugared_with_multiple_inputs.jar",
    ],
    cmd = "$(location //src/tools/android/java/com/google/devtools/build/android/desugar:Desugar) " +
          "--min_sdk_version 23 --nodesugar_interface_method_bodies_if_needed " +
          "-i $(location :testdata_like_in_android_studio) -o $(location testdata_desugared_with_multiple_inputs.jar) " +
          "-i $(location :separate) -o $(location separate_desugared_with_multiple_inputs.jar) " +
          "--copy_bridges_from_classpath " +
          "--classpath_entry $(location :separate) " +
          "--classpath_entry $(location //third_party:guava-jars) " +
          "--classpath_entry $(location //third_party/java/jacoco:blaze-agent-0.8.3) " +
          "--bootclasspath_entry $(location @bazel_tools//tools/android:android_jar)",
    tags = ["no_windows"],
    tools = ["//src/tools/android/java/com/google/devtools/build/android/desugar:Desugar"],
)

genrule(
    name = "desugar_testdata_from_directory_to_jar",
    srcs = [
        "//third_party:guava-jars",
        ":separate",
        ":testdata_like_in_android_studio",
        # Depend on Jacoco runtime in case testdata was built with coverage
        # instrumentation
        "//third_party/java/jacoco:blaze-agent-0.8.3",
        "@bazel_tools//tools/android:android_jar",
    ],
    outs = [
        "testdata_desugared_from_directory_to_jar.jar",
    ],
    cmd = """
    tmpdir=$$(mktemp -d)
    # unzip input jar in order to pass a folder to desugar
    pwddir=$$PWD
    (cd $$tmpdir; $$pwddir/$(location //tools/zip:zipper) x $$pwddir/$(location :testdata_like_in_android_studio))
    $(location //src/tools/android/java/com/google/devtools/build/android/desugar:Desugar) \
          --min_sdk_version 23 --nodesugar_interface_method_bodies_if_needed \
          -i $$tmpdir -o $(location testdata_desugared_from_directory_to_jar.jar) \
          --copy_bridges_from_classpath \
          --classpath_entry $(location :separate) \
          --classpath_entry $(location //third_party:guava-jars) \
          --classpath_entry $(location //third_party/java/jacoco:blaze-agent-0.8.3) \
          --bootclasspath_entry $(location @bazel_tools//tools/android:android_jar)
     rm -rf $$tmpdir
    """,
    tags = ["no_windows"],
    tools = [
        "//src/tools/android/java/com/google/devtools/build/android/desugar:Desugar",
        "//tools/zip:zipper",
    ],
)

genrule(
    name = "desugar_testdata_from_directory_to_directory",
    srcs = [
        "//third_party:guava-jars",
        ":separate",
        ":testdata_like_in_android_studio",
        # Depend on Jacoco runtime in case testdata was built with coverage
        # instrumentation
        "//third_party/java/jacoco:blaze-agent-0.8.3",
        "@bazel_tools//tools/android:android_jar",
    ],
    outs = [
        "testdata_desugared_from_directory_to_directory.jar",
    ],
    cmd = """
    tmpdirIn=$$(mktemp -d)
    tmpdirOut=$$(mktemp -d)
    # unzip input jar in order to pass a folder to desugar
    pwddir=$$PWD
    (cd $$tmpdirIn; $$pwddir/$(location //tools/zip:zipper) x $$pwddir/$(location :testdata_like_in_android_studio))
    $(location //src/tools/android/java/com/google/devtools/build/android/desugar:Desugar) \
          --min_sdk_version 23 --nodesugar_interface_method_bodies_if_needed \
          -i $$tmpdirIn  -o $$tmpdirOut \
          --copy_bridges_from_classpath \
          --classpath_entry $(location :separate) \
          --classpath_entry $(location //third_party:guava-jars) \
          --classpath_entry $(location //third_party/java/jacoco:blaze-agent-0.8.3) \
          --bootclasspath_entry $(location @bazel_tools//tools/android:android_jar)
     pushd $$tmpdirOut
     $$pwddir/$(location //tools/zip:zipper) c $$pwddir/$(location testdata_desugared_from_directory_to_directory.jar) $$(find *)
     popd
     rm -rf $$tmpdirIn
     rm -rf $$tmpdirOut
    """,
    tags = ["no_windows"],
    tools = [
        "//src/tools/android/java/com/google/devtools/build/android/desugar:Desugar",
        "//tools/zip:zipper",
    ],
)

genrule(
    name = "desugar_testdata_with_classpath_directory",
    srcs = [
        "//third_party:guava-jars",
        ":separate",
        ":testdata_like_in_android_studio",
        # Depend on Jacoco runtime in case testdata was built with coverage
        # instrumentation
        "//third_party/java/jacoco:blaze-agent-0.8.3",
        "@bazel_tools//tools/android:android_jar",
    ],
    outs = [
        "testdata_desugared_with_classpath_directory.jar",
    ],
    cmd = """
    tmpdir=$$(mktemp -d)
    # unzip a classpath entry jar in order to pass a folder to desugar
    pwddir=$$PWD
    (cd $$tmpdir; $$pwddir/$(location //tools/zip:zipper) x $$pwddir/$(location :separate))
    $(location //src/tools/android/java/com/google/devtools/build/android/desugar:Desugar) \
          --min_sdk_version 23 --nodesugar_interface_method_bodies_if_needed \
          -i $(location :testdata_like_in_android_studio) -o $(location testdata_desugared_with_classpath_directory.jar) \
          --copy_bridges_from_classpath \
          --classpath_entry $$tmpdir \
          --classpath_entry $(location //third_party:guava-jars) \
          --classpath_entry $(location //third_party/java/jacoco:blaze-agent-0.8.3) \
          --bootclasspath_entry $(location @bazel_tools//tools/android:android_jar)
     rm -rf $$tmpdir
    """,
    tags = ["no_windows"],
    tools = [
        "//src/tools/android/java/com/google/devtools/build/android/desugar:Desugar",
        "//tools/zip:zipper",
    ],
)

# This target tests the flag -desugar_try_with_resources_if_needed, for desugaring
# try-with-resources statements.
genrule(
    name = "desugar_testdata_by_desugaring_try_with_resources",
    srcs = [
        "//third_party:guava-jars",
        ":separate",
        ":testdata",
        # Depend on Jacoco runtime in case testdata was built with coverage
        # instrumentation
        "//third_party/java/jacoco:blaze-agent-0.8.3",
        "@bazel_tools//tools/android:android_jar",
    ],
    outs = ["testdata_desugared_for_try_with_resources.jar"],
    cmd = "$(location //src/tools/android/java/com/google/devtools/build/android/desugar:Desugar) " +
          "--nodesugar_interface_method_bodies_if_needed -i $(location :testdata) -o $@ " +
          "--min_sdk_version 17 --desugar_try_with_resources_if_needed " +
          "--classpath_entry $(location :separate) " +
          "--classpath_entry $(location //third_party:guava-jars) " +
          "--classpath_entry $(location //third_party/java/jacoco:blaze-agent-0.8.3) " +
          "--bootclasspath_entry $(location @bazel_tools//tools/android:android_jar)",
    tags = ["no_windows"],
    tools = ["//src/tools/android/java/com/google/devtools/build/android/desugar:Desugar"],
)

# Desugars an interface with a default and a static interface method that was
# processed by a legacy version of JaCoCo that doesn't emit interface markers
# when calling methods it generated in interfaces (b/62623509).
genrule(
    name = "desugar_default_method_with_legacy_coverage",
    srcs = [
        "jacoco_0_7_5_default_method.jar",
        "//third_party/java/jacoco:blaze-agent-0.8.3",
        "@bazel_tools//tools/android:android_jar",
    ],
    outs = ["jacoco_0_7_5_default_method_desugared.jar"],
    cmd = "$(location //src/tools/android/java/com/google/devtools/build/android/desugar:Desugar) " +
          "--copy_bridges_from_classpath " +
          "--legacy_jacoco_fix " +
          "--min_sdk_version 19 " +
          "-i $(location :jacoco_0_7_5_default_method.jar) -o $@ " +
          "--classpath_entry $(location //third_party/java/jacoco:blaze-agent-0.8.3) " +
          "--bootclasspath_entry $(location @bazel_tools//tools/android:android_jar)",
    tags = ["no_windows"],
    tools = ["//src/tools/android/java/com/google/devtools/build/android/desugar:Desugar"],
)

# Disable desugaring try-with-resources by specifying a min_sdk_version above 18.
genrule(
    name = "desugar_testdata_by_disabling_desugaring_try_with_resources_with_minsdkversion_above_18",
    srcs = [
        "//third_party:guava-jars",
        ":separate",
        ":testdata",
        # Depend on Jacoco runtime in case testdata was built with coverage
        # instrumentation
        "//third_party/java/jacoco:blaze-agent-0.8.3",
        "@bazel_tools//tools/android:android_jar",
    ],
    outs = ["testdata_desugared_for_NO_desugaring_try_with_resources.jar"],
    cmd = "$(location //src/tools/android/java/com/google/devtools/build/android/desugar:Desugar) " +
          "--nodesugar_interface_method_bodies_if_needed -i $(location :testdata) -o $@ " +
          "--min_sdk_version 19 --desugar_try_with_resources_if_needed " +
          "--classpath_entry $(location :separate) " +
          "--classpath_entry $(location //third_party:guava-jars) " +
          "--classpath_entry $(location //third_party/java/jacoco:blaze-agent-0.8.3) " +
          "--bootclasspath_entry $(location @bazel_tools//tools/android:android_jar)",
    tags = ["no_windows"],
    tools = ["//src/tools/android/java/com/google/devtools/build/android/desugar:Desugar"],
)

genrule(
    name = "desugar_testdata_by_desugaring_try_with_resources_twice",
    srcs = [
        "//third_party:guava-jars",
        ":separate",
        ":desugar_testdata_by_desugaring_try_with_resources",
        # Depend on Jacoco runtime in case testdata was built with coverage
        # instrumentation
        "//third_party/java/jacoco:blaze-agent-0.8.3",
        "@bazel_tools//tools/android:android_jar",
    ],
    outs = ["testdata_desugared_for_try_with_resources_twice.jar"],
    cmd = "$(location //src/tools/android/java/com/google/devtools/build/android/desugar:Desugar) " +
          "--nodesugar_interface_method_bodies_if_needed -i $(location :desugar_testdata_by_desugaring_try_with_resources) -o $@ " +
          "--min_sdk_version 17 --desugar_try_with_resources_if_needed " +
          "--classpath_entry $(location :separate) " +
          "--classpath_entry $(location //third_party:guava-jars) " +
          "--classpath_entry $(location //third_party/java/jacoco:blaze-agent-0.8.3) " +
          "--bootclasspath_entry $(location @bazel_tools//tools/android:android_jar)",
    tags = ["no_windows"],
    tools = ["//src/tools/android/java/com/google/devtools/build/android/desugar:Desugar"],
)

# This target allows using the desugared jar as a regular dependency of the test
java_import(
    name = "testdata_desugared",
    jars = ["testdata_desugared.jar"],
    deps = [":separate"],
)

java_import(
    name = "testdata_desugared_twice",
    jars = ["testdata_desugared_twice.jar"],
    deps = [":separate"],
)

java_import(
    name = "testdata_desugared_java8",
    jars = ["testdata_desugared_java8.jar"],
    deps = [
        ":separate",
        ":separate_java8",  # use un-desugared since we're not desugaring default methods here
    ],
)

java_import(
    name = "testdata_desugared_java8_like_in_android_studio",
    jars = ["testdata_desugared_java8_like_in_android_studio.jar"],
    deps = [
        ":separate",
        ":separate_java8",  # use un-desugared since we're not desugaring default methods here
    ],
)

java_import(
    name = "testdata_desugared_default_methods",
    jars = ["testdata_desugared_default_methods.jar"],
    deps = [
        ":separate",
        ":separate_java8_desugared_default_methods",
    ],
)

java_import(
    name = "testdata_desugared_default_methods_twice",
    jars = ["testdata_desugared_default_methods_twice.jar"],
    deps = [
        ":separate",
        ":separate_java8_desugared_default_methods",
    ],
)

java_import(
    name = "separate_java8_desugared_default_methods",
    jars = ["separate_java8_desugared_default_methods.jar"],
)

java_import(
    name = "testdata_desugared_core_library",
    jars = ["testdata_desugared_core_library.jar"],
)

java_import(
    name = "separate_desugared_with_multiple_inputs",
    jars = ["separate_desugared_with_multiple_inputs.jar"],
)

java_import(
    name = "testdata_desugared_with_multiple_inputs",
    jars = ["testdata_desugared_with_multiple_inputs.jar"],
    deps = [":separate_desugared_with_multiple_inputs"],
)

java_import(
    name = "testdata_desugared_from_directory_to_jar",
    jars = ["testdata_desugared_from_directory_to_jar.jar"],
    deps = [":separate"],
)

java_import(
    name = "testdata_desugared_from_directory_to_directory",
    jars = ["testdata_desugared_from_directory_to_directory.jar"],
    deps = [":separate"],
)

java_import(
    name = "testdata_desugared_with_classpath_directory",
    jars = ["testdata_desugared_with_classpath_directory.jar"],
    deps = [":separate"],
)

java_import(
    name = "testdata_desugared_like_in_android_studio",
    jars = ["testdata_desugared_like_in_android_studio.jar"],
    deps = [":separate"],
)

sh_test(
    name = "stateless_lambda_has_no_factory_method_test",
    srcs = ["diff.sh"],
    args = [
        "$(location stateless_lambda_disassembled_golden.txt)",
        "$(location stateless_lambda_disassembled.txt)",
    ],
    data = [
        # Golden file should show a $instance field and *no* get$Lambda() method
        "stateless_lambda_disassembled_golden.txt",
        ":stateless_lambda_disassembled.txt",
    ],
    tags = ["no_windows"],
)

genrule(
    name = "dump_stateless_lambda",
    srcs = [":testdata_desugared.jar"],
    outs = ["stateless_lambda_disassembled.txt"],
    cmd = """
$(JAVABASE)/bin/javap -c -p -cp $< 'com.google.devtools.build.android.desugar.testdata.Lambda$$$$Lambda$$0' > $@
""",
    tags = ["no_windows"],
    toolchains = ["@bazel_tools//tools/jdk:current_host_java_runtime"],
    tools = ["@bazel_tools//tools/jdk"],
)

sh_test(
    name = "capture_lambda_has_no_factory_method_test",
    srcs = ["diff.sh"],
    args = [
        "$(location capture_lambda_disassembled_golden.txt)",
        "$(location capture_lambda_disassembled.txt)",
    ],
    data = [
        # Golden file should show a package-private constructor and *no* get$Lambda() method
        "capture_lambda_disassembled_golden.txt",
        ":capture_lambda_disassembled.txt",
    ],
    tags = ["no_windows"],
    toolchains = ["@bazel_tools//tools/jdk:current_java_runtime"],
)

genrule(
    name = "dump_capture_lambda",
    srcs = [":testdata_desugared.jar"],
    outs = ["capture_lambda_disassembled.txt"],
    cmd = """
$(JAVABASE)/bin/javap -c -p -cp $< 'com.google.devtools.build.android.desugar.testdata.CaptureLambda$$$$Lambda$$0' > $@
""",
    tags = ["no_windows"],
    toolchains = ["@bazel_tools//tools/jdk:current_java_runtime"],
    tools = ["@bazel_tools//tools/jdk"],
)

sh_test(
    name = "simple_method_reference_has_no_factory_method_test",
    srcs = ["diff.sh"],
    args = [
        "$(location simple_instance_method_reference_disassembled_golden.txt)",
        "$(location simple_instance_method_reference_disassembled.txt)",
    ],
    data = [
        # Golden file should show a package-private constructor and *no* get$Lambda() method
        "simple_instance_method_reference_disassembled_golden.txt",
        ":simple_instance_method_reference_disassembled.txt",
    ],
    tags = ["no_windows"],
)

genrule(
    name = "dump_simple_instance_method_reference",
    srcs = [":testdata_desugared.jar"],
    outs = ["simple_instance_method_reference_disassembled.txt"],
    cmd = """
$(JAVABASE)/bin/javap -c -p -cp $< 'com.google.devtools.build.android.desugar.testdata.MethodReferenceSuperclass$$$$Lambda$$0' > $@
""",
    tags = ["no_windows"],
    toolchains = ["@bazel_tools//tools/jdk:current_java_runtime"],
    tools = ["@bazel_tools//tools/jdk"],
)

sh_test(
    name = "interface_has_method_bodies_removed",
    srcs = ["diff.sh"],
    args = [
        "$(location interface_with_desugared_method_bodies_disassembled_golden.txt)",
        "$(location interface_with_desugared_method_bodies_disassembled.txt)",
    ],
    data = [
        # Golden file should show abstract methods only and *no* static methods
        "interface_with_desugared_method_bodies_disassembled_golden.txt",
        ":interface_with_desugared_method_bodies_disassembled.txt",
    ],
    tags = ["no_windows"],
)

genrule(
    name = "dump_interface_with_method_bodies",
    srcs = [":testdata_desugared_default_methods.jar"],
    outs = ["interface_with_desugared_method_bodies_disassembled.txt"],
    # drop jacoco fields and static initializers, which jacoco may add, so the output is stable
    # with or without coverage instrumentation
    cmd = """
$(JAVABASE)/bin/javap -p -cp $< 'com.google.devtools.build.android.desugar.testdata.java8.InterfaceMethod' | grep -v 'jacoco' | grep -v 'static {}' > $@
""",
    tags = ["no_windows"],
    toolchains = ["@bazel_tools//tools/jdk:current_java_runtime"],
    tools = ["@bazel_tools//tools/jdk"],
)

sh_test(
    name = "inherited_abstract_method_gets_no_default_method_stub",
    srcs = ["diff.sh"],
    args = [
        "$(location class_with_inherited_abstract_method_disassembled_golden.txt)",
        "$(location class_with_inherited_abstract_method_disassembled.txt)",
    ],
    data = [
        # Golden file should show *no* methods
        "class_with_inherited_abstract_method_disassembled_golden.txt",
        ":class_with_inherited_abstract_method_disassembled.txt",
    ],
    tags = ["no_windows"],
)

genrule(
    name = "dump_class_with_inherited_abstract_method",
    srcs = [":testdata_desugared_default_methods.jar"],
    outs = ["class_with_inherited_abstract_method_disassembled.txt"],
    # drop jacoco fields and static initializers, which jacoco may add, so the output is stable
    # with or without coverage instrumentation
    cmd = """
$(JAVABASE)/bin/javap -p -cp $< 'com.google.devtools.build.android.desugar.testdata.java8.Named$$AbstractName' | grep -v 'jacoco' | grep -v 'static {}' > $@
""",
    tags = ["no_windows"],
    toolchains = ["@bazel_tools//tools/jdk:current_java_runtime"],
    tools = ["@bazel_tools//tools/jdk"],
)

sh_test(
    name = "no_stubs_for_lambdas_in_implemented_interface",
    srcs = ["diff.sh"],
    args = [
        "$(location class_with_lambdas_in_implemented_interface_disassembled_golden.txt)",
        "$(location class_with_lambdas_in_implemented_interface_disassembled.txt)",
    ],
    data = [
        # Golden file should show *no* lambda$xxx methods (and 4 stubs for default methods)
        "class_with_lambdas_in_implemented_interface_disassembled_golden.txt",
        ":class_with_lambdas_in_implemented_interface_disassembled.txt",
    ],
    tags = ["no_windows"],
)

genrule(
    name = "dump_class_with_lambdas_in_implemented_interface",
    srcs = [":testdata_desugared_default_methods.jar"],
    outs = ["class_with_lambdas_in_implemented_interface_disassembled.txt"],
    # drop jacoco fields and static initializers, which jacoco may add, so the output is stable
    # with or without coverage instrumentation
    cmd = """
$(JAVABASE)/bin/javap -p -cp $< 'com.google.devtools.build.android.desugar.testdata.java8.InterfaceMethod$$Concrete' | grep -v 'jacoco' | grep -v 'static {}' > $@
""",
    tags = ["no_windows"],
    toolchains = ["@bazel_tools//tools/jdk:current_java_runtime"],
    tools = ["@bazel_tools//tools/jdk"],
)

sh_test(
    name = "desugar_idempotency_test",
    srcs = ["diff.sh"],
    args = [
        "$(location :capture_lambda_desugared.jar)",
        "$(location :capture_lambda_desugared_twice.jar)",
    ],
    data = [
        ":capture_lambda_desugared.jar",
        ":capture_lambda_desugared_twice.jar",
    ],
    tags = ["no_windows"],
)

# Smaller Jar used for idempotency test.  CaptureLambda can be desugared without
# any need to fix up the resulting lambda class.  Running the desugaring tool
# over lambda classes that required fixes somehow perturbs the constant pool
# (but nothing else) so for simplicity we use this Jar for the idempotency test
# we don't run into the perturbance issue.
java_library(
    name = "capture_lambda",
    srcs = ["testdata/CaptureLambda.java"],
)

genrule(
    name = "desugar_capture_lambda",
    srcs = [
        ":capture_lambda",
        # Depend on Jacoco runtime in case testdata was built with coverage
        # instrumentation
        "//third_party/java/jacoco:blaze-agent-0.8.3",
        "@bazel_tools//tools/android:android_jar",
    ],
    outs = ["capture_lambda_desugared.jar"],
    cmd = "$(location //src/tools/android/java/com/google/devtools/build/android/desugar:Desugar) " +
          "-i $(location :capture_lambda) -o $@ " +
          "--classpath_entry $(location //third_party/java/jacoco:blaze-agent-0.8.3) " +
          "--bootclasspath_entry $(location @bazel_tools//tools/android:android_jar)",
    tags = ["no_windows"],
    tools = ["//src/tools/android/java/com/google/devtools/build/android/desugar:Desugar"],
)

genrule(
    name = "desugar_capture_lambda_again",
    srcs = [
        ":capture_lambda_desugared.jar",
        # Depend on Jacoco runtime in case testdata was built with coverage
        # instrumentation
        "//third_party/java/jacoco:blaze-agent-0.8.3",
        "@bazel_tools//tools/android:android_jar",
    ],
    outs = ["capture_lambda_desugared_twice.jar"],
    cmd = "$(location //src/tools/android/java/com/google/devtools/build/android/desugar:Desugar) " +
          "-i $(location :capture_lambda_desugared.jar) -o $@ " +
          "--classpath_entry $(location //third_party/java/jacoco:blaze-agent-0.8.3) " +
          "--bootclasspath_entry $(location @bazel_tools//tools/android:android_jar)",
    tags = ["no_windows"],
    tools = ["//src/tools/android/java/com/google/devtools/build/android/desugar:Desugar"],
)

sh_test(
    name = "testdata_sanity_test",
    srcs = ["diff.sh"],
    args = [
        "$(location :baseclass_lambda_signature.txt)",
        "$(location :subclass_lambda_signature.txt)",
    ],
    data = [
        ":baseclass_lambda_signature.txt",
        ":subclass_lambda_signature.txt",
    ],
    tags = ["no_windows"],
)

genrule(
    name = "baseclass_lambda_signature",
    srcs = [":testdata"],
    outs = [
        "baseclass_disassembled.txt",
        "baseclass_lambda_signature.txt",
    ],
    cmd = """
$(JAVABASE)/bin/javap  -p -cp $< com.google.devtools.build.android.desugar.testdata.OuterReferenceLambda > $(location baseclass_disassembled.txt)
grep lambda $(location baseclass_disassembled.txt) > $(location baseclass_lambda_signature.txt)""",
    tags = ["no_windows"],
    toolchains = ["@bazel_tools//tools/jdk:current_java_runtime"],
    tools = ["@bazel_tools//tools/jdk"],
)

genrule(
    name = "subclass_lambda_signature",
    srcs = [":testdata"],
    outs = [
        "subclass_disassembled.txt",
        "subclass_lambda_signature.txt",
    ],
    cmd = """
$(JAVABASE)/bin/javap -p -cp $< com.google.devtools.build.android.desugar.testdata.LambdaInOverride > $(location subclass_disassembled.txt)
grep lambda $(location subclass_disassembled.txt) > $(location subclass_lambda_signature.txt)""",
    tags = ["no_windows"],
    toolchains = ["@bazel_tools//tools/jdk:current_java_runtime"],
    tools = [
        "@bazel_tools//tools/jdk",
    ],
)

_SINGLEJAR_IMPLS = {
    "singlejar": "//src/tools/singlejar:singlejar_local",
    "JavaSingleJar": "//src/java_tools/singlejar:SingleJar",
}

[sh_test(
    name = "desugar_deps_consistent_%s_test" % label,
    srcs = ["desugar_deps_consistency_test.sh"],
    args = [
        "$(location %s)" % singlejar,
        "$(location @bazel_tools//tools/jdk:jar)",
        "$(location :testdata_desugared_default_methods.jar)",
        "$(location :separate_java8_desugared_default_methods.jar)",
        "$(location :guava_at_head_desugared.jar)",
    ],
    data = [
        ":guava_at_head_desugared.jar",
        ":separate_java8_desugared_default_methods.jar",
        ":testdata_desugared_default_methods.jar",
        singlejar,
        "@bazel_tools//tools/jdk:jar",
    ],
    tags = ["no_windows"],
) for label, singlejar in _SINGLEJAR_IMPLS.items()]

# Tests that deps checking fails due to missing default method: libseparate_java8.jar defines
# default methods which testdata_desugared_default_methods.jar assumes have been moved to companion.
[sh_test(
    name = "desugar_deps_missing_%s_fail_test" % label,
    srcs = ["desugar_deps_consistency_test.sh"],
    args = [
        "$(location %s)" % singlejar,
        "$(location @bazel_tools//tools/jdk:jar)",
        "$(location :testdata_desugared_default_methods.jar)",
        "$(location :libseparate_java8.jar)",
        "$(location :guava_at_head_desugared.jar)",
    ],
    data = [
        ":guava_at_head_desugared.jar",
        ":libseparate_java8.jar",
        ":testdata_desugared_default_methods.jar",
        singlejar,
        "@bazel_tools//tools/jdk:jar",
    ],
    tags = ["no_windows"],
) for label, singlejar in _SINGLEJAR_IMPLS.items()]

# Regression test for b/68049457 with deps checking failing due to missing static method:
# b68049457_caller_desugared.jar assumes presence of companion class that's missing (in fact,
# the whole Jar is missing, similar to neverlink situations).
[sh_test(
    name = "desugar_deps_b68049457_%s_fail_test" % label,
    srcs = ["desugar_deps_consistency_test.sh"],
    args = [
        "$(location %s)" % singlejar,
        "$(location @bazel_tools//tools/jdk:jar)",
        "$(location :b68049457_caller_desugared.jar)",
    ],
    data = [
        ":b68049457_caller_desugared.jar",
        singlejar,
        "@bazel_tools//tools/jdk:jar",
    ],
    tags = ["no_windows"],
) for label, singlejar in _SINGLEJAR_IMPLS.items()]

[sh_test(
    name = "desugar_deps_missed_default_method_%s_fail_test" % label,
    srcs = ["desugar_deps_consistency_test.sh"],
    args = [
        "$(location %s)" % singlejar,
        "$(location @bazel_tools//tools/jdk:jar)",
        "$(location :testdata_desugared_with_missing_dep.jar)",
        "$(location :separate_java8_desugared_default_methods.jar)",
        "$(location :guava_at_head_desugared.jar)",
    ],
    data = [
        ":guava_at_head_desugared.jar",
        ":separate_java8_desugared_default_methods.jar",
        ":testdata_desugared_with_missing_dep.jar",
        singlejar,
        "@bazel_tools//tools/jdk:jar",
    ],
    tags = ["no_windows"],
) for label, singlejar in _SINGLEJAR_IMPLS.items()]

# Tests that any Jar entry starting with j$/ causes singlejar to fail when run
# with --check_desugar_deps.  This is a backstop against such entries being
# included in deploy.jars.
[sh_test(
    name = "bad_entry_jar_%s_fail_test" % label,
    srcs = ["desugar_deps_consistency_test.sh"],
    args = [
        "$(location %s)" % singlejar,
        "$(location @bazel_tools//tools/jdk:jar)",
        "$(location :mock_bad_entry_jar)",
    ],
    data = [
        ":mock_bad_entry_jar",
        singlejar,
        "@bazel_tools//tools/jdk:jar",
    ],
    tags = ["no_windows"],
) for label, singlejar in _SINGLEJAR_IMPLS.items()]

genrule(
    name = "desugar_testdata_with_missing_dep",
    srcs = [
        ":separate",
        ":testdata_java8",
        "//third_party:guava-jars",
        "//third_party/java/jacoco:blaze-agent-0.8.3",
        "@bazel_tools//tools/android:android_jar",
    ],
    outs = ["testdata_desugared_with_missing_dep.jar"],
    cmd = "$(location //src/tools/android/java/com/google/devtools/build/android/desugar:Desugar) " +
          "-i $(location :testdata_java8) -o $@ " +
          "--emit_dependency_metadata_as_needed " +
          "--classpath_entry $(location :separate) " +
          "--classpath_entry $(location //third_party:guava-jars) " +
          "--classpath_entry $(location //third_party/java/jacoco:blaze-agent-0.8.3) " +
          "--bootclasspath_entry $(location @bazel_tools//tools/android:android_jar)",
    tools = ["//src/tools/android/java/com/google/devtools/build/android/desugar:Desugar"],
)

genrule(
    name = "desugar_b68049457_caller",
    srcs = [
        ":b68049457_caller",
        ":b68049457_interface",
        "//third_party/java/jacoco:blaze-agent-0.8.3",
        "@bazel_tools//tools/android:android_jar",
    ],
    outs = ["b68049457_caller_desugared.jar"],
    cmd = "$(location //src/tools/android/java/com/google/devtools/build/android/desugar:Desugar) " +
          "-i $(location :b68049457_caller) -o $@ " +
          "--emit_dependency_metadata_as_needed " +
          "--classpath_entry $(location :b68049457_interface) " +
          "--bootclasspath_entry $(location @bazel_tools//tools/android:android_jar)",
    tools = ["//src/tools/android/java/com/google/devtools/build/android/desugar:Desugar"],
)

java_library(
    name = "b68049457_interface",
    srcs = ["testdata/b68049457/StaticInterfaceMethod.java"],
    neverlink = 1,
)

java_library(
    name = "b68049457_caller",
    srcs = ["testdata/b68049457/StaticInterfaceMethodCaller.java"],
    deps = [":b68049457_interface"],
)

# Creates simple .jar file with empty file entry called "j$/hello"
genrule(
    name = "mock_bad_entry_jar",
    outs = ["mock_bad_entry.jar"],
    cmd = """$(location //tools/zip:zipper) c $@ "j\\$$/hello=" """,
    tools = ["//tools/zip:zipper"],
)

# b/62623509 regression test.  Calls to jacoco-generated method in interface
# need to be rewritten to call the companion class even though the original
# bytecode falsely doesn't indicate that the method is declared in an
# interface. Jacoco-generated field is *not* moved.
sh_test(
    name = "jacoco_legacy_default_method_regression_test",
    srcs = ["diff.sh"],
    args = [
        "$(location :jacoco_legacy_default_method_companion_disassembled_golden.txt)",
        "$(location :jacoco_legacy_default_method_companion_disassembled.txt)",
    ],
    data = [
        "jacoco_legacy_default_method_companion_disassembled_golden.txt",
        ":jacoco_legacy_default_method_companion_disassembled.txt",
    ],
    tags = ["no_windows"],
)

genrule(
    name = "dump_jacoco_legacy_default_method_companion",
    srcs = [":jacoco_0_7_5_default_method_desugared.jar"],
    outs = ["jacoco_legacy_default_method_companion_disassembled.txt"],
    cmd = """$(JAVABASE)/bin/javap -c -p -cp $< 'com/example/gavra/java8coverage/Defaults$$$$CC' > $@""",
    tags = ["no_windows"],
    toolchains = ["@bazel_tools//tools/jdk:current_java_runtime"],
    tools = [
        "@bazel_tools//tools/jdk",
    ],
)

# Regression test for b/70415451
genrule(
    name = "desugar_guava_at_head",
    srcs = [
        "//third_party:guava-jars",
        # Depend on Jacoco runtime in case testdata was built with coverage
        # instrumentation
        "//third_party/java/jacoco:blaze-agent-0.8.3",
        "@bazel_tools//tools/android:android_jar",
    ],
    outs = ["guava_at_head_desugared.jar"],
    cmd = "$(location //src/tools/android/java/com/google/devtools/build/android/desugar:Desugar) " +
          "-i $(location //third_party:guava-jars) -o $@ " +
          "--bootclasspath_entry $(location @bazel_tools//tools/android:android_jar)",
    tags = ["no_windows"],
    tools = ["//src/tools/android/java/com/google/devtools/build/android/desugar:Desugar"],
)

java_binary(
    name = "generate_lambda_with_constant_arguments",
    srcs = ["Bug62060793TestDataGenerator.java"],
    main_class = "com.google.devtools.build.android.desugar.Bug62060793TestDataGenerator",
    deps = [
        "//third_party:asm",
        "//third_party:guava",
    ],
)

java_binary(
    name = "generate_synthetic_method_with_lambda_name_convention",
    srcs = ["Bug62456849TestDataGenerator.java"],
    main_class = "com.google.devtools.build.android.desugar.Bug62456849TestDataGenerator",
    deps = [
        "//third_party:asm",
        "//third_party:guava",
    ],
)

test_suite(
    name = "windows_tests",
    tags = [
        "-no_windows",
        "-slow",
    ],
    visibility = ["//visibility:private"],
)

test_suite(
    name = "all_windows_tests",
    tests = [
        ":windows_tests",
        "//src/test/java/com/google/devtools/build/android/desugar/classes_for_testing_type_inference:all_windows_tests",
        "//src/test/java/com/google/devtools/build/android/desugar/dependencies:all_windows_tests",
        "//src/test/java/com/google/devtools/build/android/desugar/io:all_windows_tests",
        "//src/test/java/com/google/devtools/build/android/desugar/runtime:all_windows_tests",
    ],
    visibility = ["//src/test/java/com/google/devtools/build/android:__pkg__"],
)

java_test(
    name = "ClassSignatureParserTest",
    size = "small",
    srcs = ["ClassSignatureParserTest.java"],
    tags = ["no_windows"],
    test_class = "com.google.devtools.build.android.desugar.ClassSignatureParserTest",
    deps = [
        "//src/tools/android/java/com/google/devtools/build/android/desugar",
        "//third_party:junit4",
        "//third_party:truth",
    ],
)

java_test(
    name = "CoreLibrarySupportTest",
    size = "small",
    srcs = ["CoreLibrarySupportTest.java"],
    tags = ["no_windows"],
    test_class = "com.google.devtools.build.android.desugar.CoreLibrarySupportTest",
    deps = [
        "//src/tools/android/java/com/google/devtools/build/android/desugar",
        "//src/tools/android/java/com/google/devtools/build/android/desugar/io",
        "//third_party:asm",
        "//third_party:guava",
        "//third_party:junit4",
        "//third_party:truth",
    ],
)

java_test(
    name = "CorePackageRenamerTest",
    size = "small",
    srcs = ["CorePackageRenamerTest.java"],
    tags = ["no_windows"],
    test_class = "com.google.devtools.build.android.desugar.CorePackageRenamerTest",
    deps = [
        "//src/tools/android/java/com/google/devtools/build/android/desugar",
        "//src/tools/android/java/com/google/devtools/build/android/desugar/io",
        "//third_party:asm",
        "//third_party:guava",
        "//third_party:junit4",
        "//third_party:truth",
    ],
)

java_test(
    name = "FrameInfoTest",
    size = "small",
    srcs = ["FrameInfoTest.java"],
    tags = ["no_windows"],
    test_class = "com.google.devtools.build.android.desugar.FrameInfoTest",
    deps = [
        "//src/tools/android/java/com/google/devtools/build/android/desugar",
        "//third_party:guava",
        "//third_party:junit4",
        "//third_party:truth",
    ],
)
