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/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",
        "//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",
        "//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",
        "//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",
        "//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",
        "//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",
        "//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",
        "//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",
        "//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",
        "//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",
        "//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",
        "//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",
        "//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",
        "//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",
        "//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/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/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/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/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/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/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",
        "//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",
        "//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",
        "//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",
        "//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",
        "//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",
        "//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",
    ],
)
