Skip to content
Snippets Groups Projects
Commit e649b806 authored by Jiyong Park's avatar Jiyong Park
Browse files

Make android.test.mock.stubs in Android.bp

Stubs libraries android.test.mock.stubs and
android.test.mock.stubs-system are now built in Android.bp.
(Note that API check and update are still done in Android.mk)

As a good side effect, this allows android.test.runner[-minus-junit]
libraries (that are defined in Android.bp) to be built with the
android.test.mock.stubs instead of the runtime library
android.test.mock. This in turn allows us to prevent java:sdk ->
java:platform dependency also in Soong, because the runner libraries
were the only violators.

Bug: 73829976
Test: m -j android.test.mock.stubs android.test.mock.stubs-system
Test: m -j checkapi
Test: m -j update-api
Change-Id: I830a8eb13aa43b9aa4c8394f3c2fd91ee18b1f85
parent f56e5b7f
No related branches found
No related tags found
No related merge requests found
......@@ -27,3 +27,67 @@ java_library {
"framework",
],
}
doc_defaults {
name:"android.test.mock.docs-defaults",
srcs: ["src/android/test/mock/**/*.java"],
// Includes the main framework source to ensure that doclava has access to the
// visibility information for the base classes of the mock classes. Without it
// otherwise hidden methods could be visible.
srcs_lib: "framework",
srcs_lib_whitelist_dirs: ["core/java"],
srcs_lib_whitelist_pkgs: ["android"],
libs: [
"core-oj",
"core-libart",
"framework",
"conscrypt",
"okhttp",
"bouncycastle",
"ext",
],
local_sourcepaths: ["src/android/test/mock"],
custom_template: "droiddoc-templates-sdk",
installable: false,
}
android_test_mock_docs_args =
"-hide 110 -hide 111 -hide 113 -hide 121 -hide 125 -hide 126 -hide 127 -hide 128 " +
"-stubpackages android.test.mock " +
"-nodocs "
droiddoc {
name: "android.test.mock.docs",
defaults: ["android.test.mock.docs-defaults"],
api_tag_name: "ANDROID_TEST_MOCK",
api_filename: "api/android-test-mock-current.txt",
removed_api_filename: "api/android-test-mock-removed.txt",
args: android_test_mock_docs_args,
}
droiddoc {
name: "android.test.mock.docs-system",
defaults: ["android.test.mock.docs-defaults"],
api_tag_name: "ANDROID_TEST_MOCK_SYSTEM",
api_filename: "api/android-test-mock-system-current.txt",
removed_api_filename: "api/android-test-mock-system-removed.txt",
args: android_test_mock_docs_args +
"-showAnnotation android.annotation.SystemApi ",
}
java_library_static {
name: "android.test.mock.stubs",
srcs: [":android.test.mock.docs"],
sdk_version: "current",
}
java_library_static {
name: "android.test.mock.stubs-system",
srcs: [":android.test.mock.docs-system"],
sdk_version: "system_current",
}
......@@ -16,87 +16,30 @@
LOCAL_PATH:= $(call my-dir)
# Includes the main framework source to ensure that doclava has access to the
# visibility information for the base classes of the mock classes. Without it
# otherwise hidden methods could be visible.
android_test_mock_source_files := \
$(call all-java-files-under, src/android/test/mock) \
$(call all-java-files-under, ../core/java/android)
# 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.mock.stubs
# ==========================================================
include $(CLEAR_VARS)
LOCAL_SRC_FILES := $(android_test_mock_source_files)
LOCAL_JAVA_LIBRARIES := core-oj core-libart framework conscrypt okhttp bouncycastle
LOCAL_MODULE_CLASS := JAVA_LIBRARIES
LOCAL_DROIDDOC_SOURCE_PATH := $(LOCAL_PATH)/src/android/test/mock
ANDROID_TEST_MOCK_OUTPUT_API_FILE := $(TARGET_OUT_COMMON_INTERMEDIATES)/JAVA_LIBRARIES/android.test.mock.stubs_intermediates/api.txt
ANDROID_TEST_MOCK_OUTPUT_REMOVED_API_FILE := $(TARGET_OUT_COMMON_INTERMEDIATES)/JAVA_LIBRARIES/android.test.mock.stubs_intermediates/removed.txt
ANDROID_TEST_MOCK_API_FILE := $(LOCAL_PATH)/api/android-test-mock-current.txt
ANDROID_TEST_MOCK_REMOVED_API_FILE := $(LOCAL_PATH)/api/android-test-mock-removed.txt
LOCAL_DROIDDOC_OPTIONS:= \
-hide 111 -hide 113 -hide 125 -hide 126 -hide 127 -hide 128 \
-stubpackages android.test.mock \
-stubs $(TARGET_OUT_COMMON_INTERMEDIATES)/JAVA_LIBRARIES/android.test.mock.stubs_intermediates/src \
-nodocs \
-api $(ANDROID_TEST_MOCK_OUTPUT_API_FILE) \
-removedApi $(ANDROID_TEST_MOCK_OUTPUT_REMOVED_API_FILE) \
LOCAL_UNINSTALLABLE_MODULE := true
LOCAL_MODULE := android-test-mock-api-stubs-gen
include $(BUILD_DROIDDOC)
# Remember the target that will trigger the code generation.
android_test_mock_gen_stamp := $(full_target)
# Add some additional dependencies
$(ANDROID_TEST_MOCK_OUTPUT_API_FILE): $(full_target)
$(ANDROID_TEST_MOCK_OUTPUT_REMOVED_API_FILE): $(full_target)
# Build the android.test.mock.stubs library
# =========================================
include $(CLEAR_VARS)
LOCAL_MODULE := android.test.mock.stubs
LOCAL_SOURCE_FILES_ALL_GENERATED := true
# Make sure to run droiddoc first to generate the stub source files.
LOCAL_ADDITIONAL_DEPENDENCIES := $(android_test_mock_gen_stamp)
android_test_mock_gen_stamp :=
LOCAL_SDK_VERSION := current
include $(BUILD_STATIC_JAVA_LIBRARY)
# Archive a copy of the classes.jar in SDK build.
full_classes_jar := $(call intermediates-dir-for,JAVA_LIBRARIES,android.test.mock.stubs,,COMMON)/classes.jar
$(call dist-for-goals,sdk win_sdk,$(full_classes_jar):android.test.mock.stubs.jar)
# Check that the android.test.mock.stubs library has not changed
# ==============================================================
ANDROID_TEST_MOCK_API_FILE := $(LOCAL_PATH)/api/android-test-mock-current.txt
ANDROID_TEST_MOCK_REMOVED_API_FILE := $(LOCAL_PATH)/api/android-test-mock-removed.txt
# Check that the API we're building hasn't changed from the not-yet-released
# SDK version.
$(eval $(call check-api, \
check-android-test-mock-api-current, \
$(ANDROID_TEST_MOCK_API_FILE), \
$(ANDROID_TEST_MOCK_OUTPUT_API_FILE), \
$(INTERNAL_PLATFORM_ANDROID_TEST_MOCK_API_FILE), \
$(ANDROID_TEST_MOCK_REMOVED_API_FILE), \
$(ANDROID_TEST_MOCK_OUTPUT_REMOVED_API_FILE), \
$(INTERNAL_PLATFORM_ANDROID_TEST_MOCK_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_mock.txt, \
check-android-test-mock-api, \
$(call doc-timestamp-for,android-test-mock-api-stubs-gen) \
$(OUT_DOCS)/android.test.mock.docs-stubs.srcjar \
))
.PHONY: check-android-test-mock-api
......@@ -105,84 +48,36 @@ checkapi: check-android-test-mock-api
.PHONY: update-android-test-mock-api
update-api: update-android-test-mock-api
update-android-test-mock-api: $(ANDROID_TEST_MOCK_OUTPUT_API_FILE) | $(ACP)
update-android-test-mock-api: $(INTERNAL_PLATFORM_ANDROID_TEST_MOCK_API_FILE) | $(ACP)
@echo Copying current.txt
$(hide) $(ACP) $(ANDROID_TEST_MOCK_OUTPUT_API_FILE) $(ANDROID_TEST_MOCK_API_FILE)
$(hide) $(ACP) $(INTERNAL_PLATFORM_ANDROID_TEST_MOCK_API_FILE) $(ANDROID_TEST_MOCK_API_FILE)
@echo Copying removed.txt
$(hide) $(ACP) $(ANDROID_TEST_MOCK_OUTPUT_REMOVED_API_FILE) $(ANDROID_TEST_MOCK_REMOVED_API_FILE)
# Generate the stub source files for android.test.mock.stubs-system
# =================================================================
include $(CLEAR_VARS)
LOCAL_SRC_FILES := $(android_test_mock_source_files)
LOCAL_JAVA_LIBRARIES := core-oj core-libart framework conscrypt okhttp bouncycastle
LOCAL_MODULE_CLASS := JAVA_LIBRARIES
LOCAL_DROIDDOC_SOURCE_PATH := $(LOCAL_PATH)/src/android/test/mock
ANDROID_TEST_MOCK_SYSTEM_OUTPUT_API_FILE := $(TARGET_OUT_COMMON_INTERMEDIATES)/JAVA_LIBRARIES/android.test.mock.stubs-system_intermediates/api.txt
ANDROID_TEST_MOCK_SYSTEM_OUTPUT_REMOVED_API_FILE := $(TARGET_OUT_COMMON_INTERMEDIATES)/JAVA_LIBRARIES/android.test.mock.stubs-system_intermediates/removed.txt
ANDROID_TEST_MOCK_SYSTEM_API_FILE := $(LOCAL_PATH)/api/android-test-mock-system-current.txt
ANDROID_TEST_MOCK_SYSTEM_REMOVED_API_FILE := $(LOCAL_PATH)/api/android-test-mock-system-removed.txt
LOCAL_DROIDDOC_OPTIONS:= \
-stubpackages android.test.mock \
-stubs $(TARGET_OUT_COMMON_INTERMEDIATES)/JAVA_LIBRARIES/android.test.mock.stubs-system_intermediates/src \
-nodocs \
-showAnnotation android.annotation.SystemApi \
-api $(ANDROID_TEST_MOCK_SYSTEM_OUTPUT_API_FILE) \
-removedApi $(ANDROID_TEST_MOCK_SYSTEM_OUTPUT_REMOVED_API_FILE) \
LOCAL_UNINSTALLABLE_MODULE := true
LOCAL_MODULE := android-test-mock-system-api-stubs-gen
include $(BUILD_DROIDDOC)
# Remember the target that will trigger the code generation.
android_test_mock_system_gen_stamp := $(full_target)
# Add some additional dependencies
$(ANDROID_TEST_MOCK_SYSTEM_OUTPUT_API_FILE): $(full_target)
$(ANDROID_TEST_MOCK_SYSTEM_OUTPUT_REMOVED_API_FILE): $(full_target)
# Build the android.test.mock.stubs-system library
# ================================================
include $(CLEAR_VARS)
LOCAL_MODULE := android.test.mock.stubs-system
LOCAL_SOURCE_FILES_ALL_GENERATED := true
# Make sure to run droiddoc first to generate the stub source files.
LOCAL_ADDITIONAL_DEPENDENCIES := $(android_test_mock_system_gen_stamp)
android_test_mock_system_gen_stamp :=
LOCAL_SDK_VERSION := system_current
include $(BUILD_STATIC_JAVA_LIBRARY)
$(hide) $(ACP) $(INTERNAL_PLATFORM_ANDROID_TEST_MOCK_REMOVED_API_FILE) $(ANDROID_TEST_MOCK_REMOVED_API_FILE)
# Archive a copy of the classes.jar in SDK build.
full_classes_jar := $(call intermediates-dir-for,JAVA_LIBRARIES,android.test.mock.stubs-system,,COMMON)/classes.jar
$(call dist-for-goals,sdk win_sdk,$(full_classes_jar):android.test.mock.stubs_system.jar)
# Check that the android.test.mock.stubs-system library has not changed
# =====================================================================
ANDROID_TEST_MOCK_SYSTEM_API_FILE := $(LOCAL_PATH)/api/android-test-mock-system-current.txt
ANDROID_TEST_MOCK_SYSTEM_REMOVED_API_FILE := $(LOCAL_PATH)/api/android-test-mock-system-removed.txt
# Check that the API we're building hasn't changed from the not-yet-released
# SDK version.
$(eval $(call check-api, \
check-android-test-mock-system-api-current, \
$(ANDROID_TEST_MOCK_SYSTEM_API_FILE), \
$(ANDROID_TEST_MOCK_SYSTEM_OUTPUT_API_FILE), \
$(INTERNAL_PLATFORM_ANDROID_TEST_MOCK_SYSTEM_API_FILE), \
$(ANDROID_TEST_MOCK_SYSTEM_REMOVED_API_FILE), \
$(ANDROID_TEST_MOCK_SYSTEM_OUTPUT_REMOVED_API_FILE), \
$(INTERNAL_PLATFORM_ANDROID_TEST_MOCK_SYSTEM_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_mock-system.txt, \
check-android-test-mock-system-api, \
$(call doc-timestamp-for,android-test-mock-system-api-stubs-gen) \
$(OUT_DOCS)/android.test.mock.docs-system-stubs.srcjar \
))
.PHONY: check-android-test-mock-system-api
......@@ -191,11 +86,8 @@ checkapi: check-android-test-mock-system-api
.PHONY: update-android-test-mock-system-api
update-api: update-android-test-mock-system-api
update-android-test-mock-system-api: $(ANDROID_TEST_MOCK_SYSTEM_OUTPUT_API_FILE) | $(ACP)
update-android-test-mock-system-api: $(INTERNAL_PLATFORM_ANDROID_TEST_MOCK_SYSTEM_API_FILE) | $(ACP)
@echo Copying current.txt
$(hide) $(ACP) $(ANDROID_TEST_MOCK_SYSTEM_OUTPUT_API_FILE) $(ANDROID_TEST_MOCK_SYSTEM_API_FILE)
$(hide) $(ACP) $(INTERNAL_PLATFORM_ANDROID_TEST_MOCK_SYSTEM_API_FILE) $(ANDROID_TEST_MOCK_SYSTEM_API_FILE)
@echo Copying removed.txt
$(hide) $(ACP) $(ANDROID_TEST_MOCK_SYSTEM_OUTPUT_REMOVED_API_FILE) $(ANDROID_TEST_MOCK_SYSTEM_REMOVED_API_FILE)
endif # not TARGET_BUILD_APPS not TARGET_BUILD_PDK=true
$(hide) $(ACP) $(INTERNAL_PLATFORM_ANDROID_TEST_MOCK_SYSTEM_REMOVED_API_FILE) $(ANDROID_TEST_MOCK_SYSTEM_REMOVED_API_FILE)
......@@ -30,7 +30,7 @@ java_library {
sdk_version: "current",
libs: [
"android.test.base",
"android.test.mock",
"android.test.mock.stubs",
],
}
......@@ -46,7 +46,7 @@ java_library {
sdk_version: "current",
libs: [
"android.test.base",
"android.test.mock",
"android.test.mock.stubs",
"junit",
],
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment