OSDN Git Service

Added android.test.mock and android.test.mock.sdk targets
authorPaul Duffin <paulduffin@google.com>
Fri, 19 May 2017 08:05:54 +0000 (09:05 +0100)
committerPaul Duffin <paulduffin@google.com>
Mon, 5 Jun 2017 10:19:58 +0000 (11:19 +0100)
The android.test.mock will be used for any targets that require
android.test.mock classes but which do not already depend on the
sdk. It is also the library that will be added to the classpath
at runtime when an app has the following in their manifest.
    <uses-library android:name="android.test.mock"/>

The android.test.mock.sdk will be used by targets that require
android.test.mock classes and which build against the SDK. It
contains stub classes (like android.jar). It is also the library
that will be copied into the optional directory of the SDK.

Bug: 30188076
Test: make checkbuild
Change-Id: Ia3fcd47c644b8e5a573f891571a7b3772eac63f9

test-runner/Android.mk

index 3c36e42..0752661 100644 (file)
@@ -16,6 +16,8 @@
 
 LOCAL_PATH:= $(call my-dir)
 
+# Build the android.test.runner library
+# =====================================
 include $(CLEAR_VARS)
 
 LOCAL_SRC_FILES := $(call all-java-files-under, src)
@@ -26,5 +28,56 @@ LOCAL_MODULE:= android.test.runner
 
 include $(BUILD_JAVA_LIBRARY)
 
+# Build the android.test.mock library
+# ===================================
+include $(CLEAR_VARS)
+
+LOCAL_SRC_FILES := $(call all-java-files-under, src/android/test/mock)
+
+LOCAL_JAVA_LIBRARIES := core-oj core-libart framework
+
+LOCAL_MODULE:= android.test.mock
+
+include $(BUILD_JAVA_LIBRARY)
+
+# Generate the stub source files for android.test.mock.sdk
+# ========================================================
+include $(CLEAR_VARS)
+LOCAL_SRC_FILES := $(call all-java-files-under, src/android/test/mock)
+
+LOCAL_JAVA_LIBRARIES := core-oj core-libart framework
+LOCAL_MODULE_CLASS := JAVA_LIBRARIES
+LOCAL_DROIDDOC_SOURCE_PATH := $(LOCAL_PATH)/src/android/test/mock
+
+LOCAL_DROIDDOC_OPTIONS:= \
+    -stubpackages android.test.mock \
+    -stubs $(TARGET_OUT_COMMON_INTERMEDIATES)/JAVA_LIBRARIES/android.test.mock.sdk_intermediates/src \
+    -nodocs
+
+LOCAL_UNINSTALLABLE_MODULE := true
+LOCAL_MODULE := android-test-mock-stubs-gen
+
+include $(BUILD_DROIDDOC)
+
+# Remember the target that will trigger the code generation.
+android_test_mock_gen_stamp := $(full_target)
+
+# Build the android.test.mock.sdk library
+# =======================================
+include $(CLEAR_VARS)
+
+LOCAL_MODULE := android.test.mock.sdk
+
+LOCAL_SOURCE_FILES_ALL_GENERATED := true
+
+include $(BUILD_STATIC_JAVA_LIBRARY)
+
+# Make sure to run droiddoc first to generate the stub source files.
+$(full_classes_compiled_jar) : $(android_test_mock_gen_stamp)
+$(full_classes_jack) : $(android_test_mock_gen_stamp)
+
+# Archive a copy of the classes.jar in SDK build.
+$(call dist-for-goals,sdk win_sdk,$(full_classes_jar):android.test.mock.jar)
+
 # additionally, build unit tests in a separate .apk
 include $(call all-makefiles-under,$(LOCAL_PATH))