build and test KeepScanner tool open-source

PiperOrigin-RevId: 191159996
diff --git a/src/test/java/com/google/devtools/build/android/desugar/BUILD b/src/test/java/com/google/devtools/build/android/desugar/BUILD
index da56672..daae692 100644
--- a/src/test/java/com/google/devtools/build/android/desugar/BUILD
+++ b/src/test/java/com/google/devtools/build/android/desugar/BUILD
@@ -15,6 +15,7 @@
         "//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/runtime:srcs",
+        "//src/test/java/com/google/devtools/build/android/desugar/scan:srcs",
     ],
     visibility = ["//src/test/java/com/google/devtools/build/android:__pkg__"],
 )
diff --git a/src/test/java/com/google/devtools/build/android/desugar/scan/BUILD b/src/test/java/com/google/devtools/build/android/desugar/scan/BUILD
new file mode 100644
index 0000000..eafdc80
--- /dev/null
+++ b/src/test/java/com/google/devtools/build/android/desugar/scan/BUILD
@@ -0,0 +1,34 @@
+# Description:
+#   Tests for the Java 8 desugaring tool for Android.
+package(
+    default_testonly = 1,
+)
+
+licenses(["notice"])  # Apache 2.0
+
+filegroup(
+    name = "srcs",
+    testonly = 0,
+    srcs = glob(["**"]),
+    visibility = ["//src/test/java/com/google/devtools/build/android/desugar:__pkg__"],
+)
+
+sh_test(
+    name = "test_keep_scanner",
+    srcs = ["test_keep_scanner.sh"],
+    args = [
+        "$(location //src/tools/android/java/com/google/devtools/build/android/desugar/scan:KeepScanner)",
+        "$(location :testdata)",
+        "$(location testdata_golden.txt)",
+    ],
+    data = [
+        "testdata_golden.txt",
+        ":testdata",
+        "//src/tools/android/java/com/google/devtools/build/android/desugar/scan:KeepScanner",
+    ],
+)
+
+java_library(
+    name = "testdata",
+    srcs = glob(["testdata/**/*.java"]),
+)
diff --git a/src/tools/android/java/com/google/devtools/build/android/desugar/BUILD b/src/tools/android/java/com/google/devtools/build/android/desugar/BUILD
index 55e3f8b..ad9c75c 100644
--- a/src/tools/android/java/com/google/devtools/build/android/desugar/BUILD
+++ b/src/tools/android/java/com/google/devtools/build/android/desugar/BUILD
@@ -61,6 +61,7 @@
         "//src/tools/android/java/com/google/devtools/build/android/desugar/dependencies:srcs",
         "//src/tools/android/java/com/google/devtools/build/android/desugar/io:srcs",
         "//src/tools/android/java/com/google/devtools/build/android/desugar/runtime:srcs",
+        "//src/tools/android/java/com/google/devtools/build/android/desugar/scan:srcs",
     ],
     visibility = ["//src/tools/android/java/com/google/devtools/build/android:__pkg__"],
 )
diff --git a/src/tools/android/java/com/google/devtools/build/android/desugar/io/BUILD b/src/tools/android/java/com/google/devtools/build/android/desugar/io/BUILD
index 7b84a94..9a4c62e 100644
--- a/src/tools/android/java/com/google/devtools/build/android/desugar/io/BUILD
+++ b/src/tools/android/java/com/google/devtools/build/android/desugar/io/BUILD
@@ -6,7 +6,7 @@
     srcs = glob(["*.java"]),
     visibility = [
         "//src/test/java/com/google/devtools/build/android/desugar:__subpackages__",
-        "//src/tools/android/java/com/google/devtools/build/android/desugar:__pkg__",
+        "//src/tools/android/java/com/google/devtools/build/android/desugar:__subpackages__",
     ],
     deps = [
         "//third_party:asm",
diff --git a/src/tools/android/java/com/google/devtools/build/android/desugar/scan/BUILD b/src/tools/android/java/com/google/devtools/build/android/desugar/scan/BUILD
new file mode 100644
index 0000000..3f0bf3c
--- /dev/null
+++ b/src/tools/android/java/com/google/devtools/build/android/desugar/scan/BUILD
@@ -0,0 +1,35 @@
+# Description:
+#   Tools for scanning bytecode for references to other classes and emitting Proguard-style keeps.
+
+java_library(
+    name = "scan",
+    srcs = glob(["*.java"]),
+    visibility = [
+        "//src/tools/android/java/com/google/devtools/build/android:__pkg__",
+    ],
+    deps = [
+        "//src/main/java/com/google/devtools/common/options",
+        "//src/tools/android/java/com/google/devtools/build/android:android_builder_lib",
+        "//src/tools/android/java/com/google/devtools/build/android/desugar/io",
+        "//third_party:asm",
+        "//third_party:asm-commons",
+        "//third_party:auto_value",
+        "//third_party:guava",
+        "//third_party:jsr305",
+    ],
+)
+
+java_binary(
+    name = "KeepScanner",
+    main_class = "com.google.devtools.build.android.desugar.scan.KeepScanner",
+    visibility = [
+        "//src/test/java/com/google/devtools/build/android/desugar/scan:__pkg__",
+    ],
+    runtime_deps = [":scan"],
+)
+
+filegroup(
+    name = "srcs",
+    srcs = glob(["**"]),
+    visibility = ["//src/tools/android/java/com/google/devtools/build/android/desugar:__pkg__"],
+)