Convert android.test.runner.stubs to Soong

Test: m clean && m check-android-test-runner-api, and check jar file
content.
Bug: b/70351683

Change-Id: I6ab6bded4bb2432212fcb4f676b27624fe17a397
diff --git a/test-runner/Android.bp b/test-runner/Android.bp
index 9e95369..29d7ea9 100644
--- a/test-runner/Android.bp
+++ b/test-runner/Android.bp
@@ -64,3 +64,48 @@
     // Pin java_version until jarjar is certified to support later versions. http://b/72703434
     java_version: "1.8",
 }
+
+droiddoc {
+    name: "android-test-runner-api-stubs-gen-docs",
+    srcs: [
+        "src/**/*.java",
+    ],
+    libs: [
+        "core-oj",
+        "core-libart",
+        "framework",
+        "android.test.base",
+        "android.test.mock",
+    ],
+    custom_template: "droiddoc-templates-sdk",
+    installable: false,
+    args: "-stubpackages android.test:" +
+          "android.test.suitebuilder:" +
+          "junit.runner:" +
+          "junit.textui -stubsourceonly -nodocs",
+    api_tag_name: "ANDROID_TEST_RUNNER",
+    api_filename: "android-test-runner-current.txt",
+    removed_api_filename: "android-test-runner-removed.txt",
+}
+
+// Build the android.test.runner.stubs library
+// =========================================
+java_library_static {
+    name: "android.test.runner.stubs",
+    srcs: [
+        ":android-test-runner-api-stubs-gen-docs",
+    ],
+    libs: [
+        "android.test.base.stubs",
+        "android.test.mock.stubs",
+    ],
+    product_variables: {
+        pdk: {
+            enabled: false,
+        },
+        unbundled_build: {
+            enabled: false,
+        },
+    },
+    sdk_version: "current",
+}
diff --git a/test-runner/Android.mk b/test-runner/Android.mk
index 706f636..b70d249 100644
--- a/test-runner/Android.mk
+++ b/test-runner/Android.mk
@@ -19,67 +19,10 @@
 # For unbundled build we'll use the prebuilt jar from prebuilts/sdk.
 ifeq (,$(TARGET_BUILD_APPS)$(filter true,$(TARGET_BUILD_PDK)))
 
-# Generate the stub source files for android.test.runner.stubs
-# ============================================================
-include $(CLEAR_VARS)
-
-LOCAL_SRC_FILES := $(call all-java-files-under, src)
-
-LOCAL_JAVA_LIBRARIES := \
-    core-oj \
-    core-libart \
-    framework \
-    android.test.base \
-    android.test.mock \
-
-LOCAL_MODULE_CLASS := JAVA_LIBRARIES
-LOCAL_DROIDDOC_SOURCE_PATH := $(LOCAL_PATH)/src
-
-ANDROID_TEST_RUNNER_OUTPUT_API_FILE := $(TARGET_OUT_COMMON_INTERMEDIATES)/JAVA_LIBRARIES/android.test.runner.stubs_intermediates/api.txt
-ANDROID_TEST_RUNNER_OUTPUT_REMOVED_API_FILE := $(TARGET_OUT_COMMON_INTERMEDIATES)/JAVA_LIBRARIES/android.test.runner.stubs_intermediates/removed.txt
-
 ANDROID_TEST_RUNNER_API_FILE := $(LOCAL_PATH)/api/android-test-runner-current.txt
 ANDROID_TEST_RUNNER_REMOVED_API_FILE := $(LOCAL_PATH)/api/android-test-runner-removed.txt
 
-LOCAL_DROIDDOC_OPTIONS:= \
-    -stubpackages android.test:android.test.suitebuilder:junit.runner:junit.textui \
-    -stubsourceonly \
-    -stubs $(TARGET_OUT_COMMON_INTERMEDIATES)/JAVA_LIBRARIES/android.test.runner.stubs_intermediates/src \
-    -nodocs \
-    -api $(ANDROID_TEST_RUNNER_OUTPUT_API_FILE) \
-    -removedApi $(ANDROID_TEST_RUNNER_OUTPUT_REMOVED_API_FILE) \
-
-LOCAL_UNINSTALLABLE_MODULE := true
-LOCAL_MODULE := android-test-runner-api-stubs-gen
-
-include $(BUILD_DROIDDOC)
-
-# Remember the target that will trigger the code generation.
-android_test_runner_api_gen_stamp := $(full_target)
-
-# Add some additional dependencies
-$(ANDROID_TEST_RUNNER_OUTPUT_API_FILE): $(full_target)
-$(ANDROID_TEST_RUNNER_OUTPUT_REMOVED_API_FILE): $(full_target)
-
-# Build the android.test.runner.stubs library
-# ===========================================
-include $(CLEAR_VARS)
-
-LOCAL_MODULE := android.test.runner.stubs
-
-LOCAL_JAVA_LIBRARIES := \
-    android.test.base.stubs \
-    android.test.mock.stubs \
-
-LOCAL_SOURCE_FILES_ALL_GENERATED := true
-LOCAL_SDK_VERSION := current
-
-# Make sure to run droiddoc first to generate the stub source files.
-LOCAL_ADDITIONAL_DEPENDENCIES := $(android_test_runner_api_gen_stamp)
-android_test_runner_api_gen_stamp :=
-
-include $(BUILD_STATIC_JAVA_LIBRARY)
-
+full_classes_jar := $(call intermediates-dir-for,JAVA_LIBRARIES,android.test.runner.stubs,,COMMON)/classes.jar
 # Archive a copy of the classes.jar in SDK build.
 $(call dist-for-goals,sdk win_sdk,$(full_classes_jar):android.test.runner.stubs.jar)
 
@@ -91,16 +34,16 @@
 $(eval $(call check-api, \
     check-android-test-runner-api-current, \
     $(ANDROID_TEST_RUNNER_API_FILE), \
-    $(ANDROID_TEST_RUNNER_OUTPUT_API_FILE), \
+    $(INTERNAL_PLATFORM_ANDROID_TEST_RUNNER_API_FILE), \
     $(ANDROID_TEST_RUNNER_REMOVED_API_FILE), \
-    $(ANDROID_TEST_RUNNER_OUTPUT_REMOVED_API_FILE), \
+    $(INTERNAL_PLATFORM_ANDROID_TEST_RUNNER_REMOVED_API_FILE), \
     -error 2 -error 3 -error 4 -error 5 -error 6 \
     -error 7 -error 8 -error 9 -error 10 -error 11 -error 12 -error 13 -error 14 -error 15 \
     -error 16 -error 17 -error 18 -error 19 -error 20 -error 21 -error 23 -error 24 \
     -error 25 -error 26 -error 27, \
     cat $(LOCAL_PATH)/api/apicheck_msg_android_test_runner.txt, \
     check-android-test-runner-api, \
-    $(call doc-timestamp-for,android-test-runner-api-stubs-gen) \
+    $(OUT_DOCS)/android-test-runner-api-stubs-gen-docs-stubs.srcjar  \
     ))
 
 .PHONY: check-android-test-runner-api
@@ -109,11 +52,11 @@
 .PHONY: update-android-test-runner-api
 update-api: update-android-test-runner-api
 
-update-android-test-runner-api: $(ANDROID_TEST_RUNNER_OUTPUT_API_FILE) | $(ACP)
+update-android-test-runner-api: $(INTERNAL_PLATFORM_ANDROID_TEST_RUNNER_API_FILE) | $(ACP)
 	@echo Copying current.txt
-	$(hide) $(ACP) $(ANDROID_TEST_RUNNER_OUTPUT_API_FILE) $(ANDROID_TEST_RUNNER_API_FILE)
+	$(hide) $(ACP) $(INTERNAL_PLATFORM_ANDROID_TEST_RUNNER_API_FILE) $(ANDROID_TEST_RUNNER_API_FILE)
 	@echo Copying removed.txt
-	$(hide) $(ACP) $(ANDROID_TEST_RUNNER_OUTPUT_REMOVED_API_FILE) $(ANDROID_TEST_RUNNER_REMOVED_API_FILE)
+	$(hide) $(ACP) $(INTERNAL_PLATFORM_ANDROID_TEST_RUNNER_REMOVED_API_FILE) $(ANDROID_TEST_RUNNER_REMOVED_API_FILE)
 
 endif  # not TARGET_BUILD_APPS not TARGET_BUILD_PDK=true