Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit bacad408 authored by Paul Duffin's avatar Paul Duffin
Browse files

Stubs/api check for legacy-test and android.test.runner

Adds stub generation for legacy-test classes and android.test.runner
classes. Changes name of android.test.mock.sdk to
android.test.mock.stubs for consistency and clarity, adds new
temporary android.test.mock.sdk target to prevent build breakage.

Adds api check and update targets for legacy.test.stubs,
android.test.runner.stubs and android.test.mock.stubs to prevent
accidental changes to the API.

Bug: 30188076
Test: make checkapi and make update-api
Change-Id: I40cc7b967f1ab1c7e148407d6965526550ee2f9b
parent e70848b8
Loading
Loading
Loading
Loading
+90 −0
Original line number Original line Diff line number Diff line
@@ -31,6 +31,96 @@ LOCAL_JAVA_LIBRARIES := core-oj core-libart framework


include $(BUILD_JAVA_LIBRARY)
include $(BUILD_JAVA_LIBRARY)


# Generate the stub source files for legacy.test.stubs
# ====================================================
include $(CLEAR_VARS)

LOCAL_SRC_FILES := \
    $(call all-java-files-under, src)

LOCAL_JAVA_LIBRARIES := \
    core-oj \
    core-libart \
    framework \

LOCAL_MODULE_CLASS := JAVA_LIBRARIES
LOCAL_DROIDDOC_SOURCE_PATH := $(LOCAL_PATH)/src

LEGACY_TEST_OUTPUT_API_FILE := $(TARGET_OUT_COMMON_INTERMEDIATES)/JAVA_LIBRARIES/legacy.test.stubs_intermediates/api.txt
LEGACY_TEST_OUTPUT_REMOVED_API_FILE := $(TARGET_OUT_COMMON_INTERMEDIATES)/JAVA_LIBRARIES/legacy.test.stubs_intermediates/removed.txt

LEGACY_TEST_API_FILE := $(LOCAL_PATH)/api/legacy-test-current.txt
LEGACY_TEST_REMOVED_API_FILE := $(LOCAL_PATH)/api/legacy-test-removed.txt

LOCAL_DROIDDOC_OPTIONS:= \
    -stubpackages android.test:android.test.suitebuilder.annotation:com.android.internal.util:junit.framework \
    -stubsourceonly \
    -stubs $(TARGET_OUT_COMMON_INTERMEDIATES)/JAVA_LIBRARIES/legacy.test.stubs_intermediates/src \
    -nodocs \
    -api $(LEGACY_TEST_OUTPUT_API_FILE) \
    -removedApi $(LEGACY_TEST_OUTPUT_REMOVED_API_FILE) \

LOCAL_UNINSTALLABLE_MODULE := true
LOCAL_MODULE := legacy-test-api-stubs-gen

include $(BUILD_DROIDDOC)

# Remember the target that will trigger the code generation.
legacy_test_api_gen_stamp := $(full_target)

# Add some additional dependencies
$(LEGACY_TEST_OUTPUT_API_FILE): $(full_target)
$(LEGACY_TEST_OUTPUT_REMOVED_API_FILE): $(full_target)

# Build the legacy.test.stubs library
# ===================================
include $(CLEAR_VARS)

LOCAL_MODULE := legacy.test.stubs

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) : $(legacy_test_api_gen_stamp)
$(full_classes_jack) : $(legacy_test_api_gen_stamp)

# Archive a copy of the classes.jar in SDK build.
$(call dist-for-goals,sdk win_sdk,$(full_classes_jar):legacy.test.stubs.jar)

# Check that the legacy.test.stubs library has not changed
# ========================================================

# Check that the API we're building hasn't changed from the not-yet-released
# SDK version.
$(eval $(call check-api, \
    check-legacy-test-api-current, \
    $(LEGACY_TEST_API_FILE), \
    $(LEGACY_TEST_OUTPUT_API_FILE), \
    $(LEGACY_TEST_REMOVED_API_FILE), \
    $(LEGACY_TEST_OUTPUT_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_legacy_test.txt, \
    check-legacy-test-api, \
    $(call doc-timestamp-for,legacy-test-api-stubs-gen) \
    ))

.PHONY: check-legacy-test-api
checkapi: check-legacy-test-api

.PHONY: update-legacy-test-api
update-api: update-legacy-test-api

update-legacy-test-api: $(LEGACY_TEST_OUTPUT_API_FILE) | $(ACP)
	@echo Copying current.txt
	$(hide) $(ACP) $(LEGACY_TEST_OUTPUT_API_FILE) $(LEGACY_TEST_API_FILE)
	@echo Copying removed.txt
	$(hide) $(ACP) $(LEGACY_TEST_OUTPUT_REMOVED_API_FILE) $(LEGACY_TEST_REMOVED_API_FILE)

# Build the legacy-android-test library
# Build the legacy-android-test library
# =====================================
# =====================================
# This contains the android.test classes that were in Android API level 25,
# This contains the android.test classes that were in Android API level 25,
+17 −0
Original line number Original line Diff line number Diff line

******************************
You have tried to change the API from what has been previously approved.

To make these errors go away, you have two choices:
   1) You can add "@hide" javadoc comments to the methods, etc. listed in the
      errors above.

   2) You can update legacy-test-current.txt by executing the following command:
         make update-legacy-test-api

      To submit the revised legacy-test-current.txt to the main Android repository,
      you will need approval.
******************************


+227 −0
Original line number Original line Diff line number Diff line
package android.test {

  public deprecated class AndroidTestCase extends junit.framework.TestCase {
    ctor public AndroidTestCase();
    method public void assertActivityRequiresPermission(java.lang.String, java.lang.String, java.lang.String);
    method public void assertReadingContentUriRequiresPermission(android.net.Uri, java.lang.String);
    method public void assertWritingContentUriRequiresPermission(android.net.Uri, java.lang.String);
    method public android.content.Context getContext();
    method protected void scrubClass(java.lang.Class<?>) throws java.lang.IllegalAccessException;
    method public void setContext(android.content.Context);
    method public void testAndroidTestCaseSetupProperly();
    field protected android.content.Context mContext;
  }

  public abstract deprecated class FlakyTest implements java.lang.annotation.Annotation {
  }

  public deprecated class InstrumentationTestCase extends junit.framework.TestCase {
    ctor public InstrumentationTestCase();
    method public android.app.Instrumentation getInstrumentation();
    method public deprecated void injectInsrumentation(android.app.Instrumentation);
    method public void injectInstrumentation(android.app.Instrumentation);
    method public final <T extends android.app.Activity> T launchActivity(java.lang.String, java.lang.Class<T>, android.os.Bundle);
    method public final <T extends android.app.Activity> T launchActivityWithIntent(java.lang.String, java.lang.Class<T>, android.content.Intent);
    method public void runTestOnUiThread(java.lang.Runnable) throws java.lang.Throwable;
    method public void sendKeys(java.lang.String);
    method public void sendKeys(int...);
    method public void sendRepeatedKeys(int...);
  }

  public deprecated class InstrumentationTestSuite extends junit.framework.TestSuite {
    ctor public InstrumentationTestSuite(android.app.Instrumentation);
    ctor public InstrumentationTestSuite(java.lang.String, android.app.Instrumentation);
    ctor public InstrumentationTestSuite(java.lang.Class, android.app.Instrumentation);
    method public void addTestSuite(java.lang.Class);
  }

  public abstract deprecated interface PerformanceTestCase {
    method public abstract boolean isPerformanceOnly();
    method public abstract int startPerformance(android.test.PerformanceTestCase.Intermediates);
  }

  public static abstract interface PerformanceTestCase.Intermediates {
    method public abstract void addIntermediate(java.lang.String);
    method public abstract void addIntermediate(java.lang.String, long);
    method public abstract void finishTiming(boolean);
    method public abstract void setInternalIterations(int);
    method public abstract void startTiming(boolean);
  }

  public abstract deprecated class UiThreadTest implements java.lang.annotation.Annotation {
  }

}

package android.test.suitebuilder.annotation {

  public abstract deprecated class LargeTest implements java.lang.annotation.Annotation {
  }

  public abstract deprecated class MediumTest implements java.lang.annotation.Annotation {
  }

  public abstract deprecated class SmallTest implements java.lang.annotation.Annotation {
  }

  public abstract deprecated class Smoke implements java.lang.annotation.Annotation {
  }

  public abstract deprecated class Suppress implements java.lang.annotation.Annotation {
  }

}

package com.android.internal.util {

  public abstract deprecated interface Predicate<T> {
    method public abstract boolean apply(T);
  }

}

package junit.framework {

  public class Assert {
    ctor protected Assert();
    method public static void assertEquals(java.lang.String, java.lang.Object, java.lang.Object);
    method public static void assertEquals(java.lang.Object, java.lang.Object);
    method public static void assertEquals(java.lang.String, java.lang.String, java.lang.String);
    method public static void assertEquals(java.lang.String, java.lang.String);
    method public static void assertEquals(java.lang.String, double, double, double);
    method public static void assertEquals(double, double, double);
    method public static void assertEquals(java.lang.String, float, float, float);
    method public static void assertEquals(float, float, float);
    method public static void assertEquals(java.lang.String, long, long);
    method public static void assertEquals(long, long);
    method public static void assertEquals(java.lang.String, boolean, boolean);
    method public static void assertEquals(boolean, boolean);
    method public static void assertEquals(java.lang.String, byte, byte);
    method public static void assertEquals(byte, byte);
    method public static void assertEquals(java.lang.String, char, char);
    method public static void assertEquals(char, char);
    method public static void assertEquals(java.lang.String, short, short);
    method public static void assertEquals(short, short);
    method public static void assertEquals(java.lang.String, int, int);
    method public static void assertEquals(int, int);
    method public static void assertFalse(java.lang.String, boolean);
    method public static void assertFalse(boolean);
    method public static void assertNotNull(java.lang.Object);
    method public static void assertNotNull(java.lang.String, java.lang.Object);
    method public static void assertNotSame(java.lang.String, java.lang.Object, java.lang.Object);
    method public static void assertNotSame(java.lang.Object, java.lang.Object);
    method public static void assertNull(java.lang.Object);
    method public static void assertNull(java.lang.String, java.lang.Object);
    method public static void assertSame(java.lang.String, java.lang.Object, java.lang.Object);
    method public static void assertSame(java.lang.Object, java.lang.Object);
    method public static void assertTrue(java.lang.String, boolean);
    method public static void assertTrue(boolean);
    method public static void fail(java.lang.String);
    method public static void fail();
    method public static void failNotEquals(java.lang.String, java.lang.Object, java.lang.Object);
    method public static void failNotSame(java.lang.String, java.lang.Object, java.lang.Object);
    method public static void failSame(java.lang.String);
    method public static java.lang.String format(java.lang.String, java.lang.Object, java.lang.Object);
  }

  public class AssertionFailedError extends java.lang.AssertionError {
    ctor public AssertionFailedError();
    ctor public AssertionFailedError(java.lang.String);
  }

  public class ComparisonFailure extends junit.framework.AssertionFailedError {
    ctor public ComparisonFailure(java.lang.String, java.lang.String, java.lang.String);
    method public java.lang.String getActual();
    method public java.lang.String getExpected();
  }

  public abstract interface Protectable {
    method public abstract void protect() throws java.lang.Throwable;
  }

  public abstract interface Test {
    method public abstract int countTestCases();
    method public abstract void run(junit.framework.TestResult);
  }

  public abstract class TestCase extends junit.framework.Assert implements junit.framework.Test {
    ctor public TestCase();
    ctor public TestCase(java.lang.String);
    method public int countTestCases();
    method protected junit.framework.TestResult createResult();
    method public java.lang.String getName();
    method public junit.framework.TestResult run();
    method public void run(junit.framework.TestResult);
    method public void runBare() throws java.lang.Throwable;
    method protected void runTest() throws java.lang.Throwable;
    method public void setName(java.lang.String);
    method protected void setUp() throws java.lang.Exception;
    method protected void tearDown() throws java.lang.Exception;
  }

  public class TestFailure {
    ctor public TestFailure(junit.framework.Test, java.lang.Throwable);
    method public java.lang.String exceptionMessage();
    method public junit.framework.Test failedTest();
    method public boolean isFailure();
    method public java.lang.Throwable thrownException();
    method public java.lang.String trace();
    field protected junit.framework.Test fFailedTest;
    field protected java.lang.Throwable fThrownException;
  }

  public abstract interface TestListener {
    method public abstract void addError(junit.framework.Test, java.lang.Throwable);
    method public abstract void addFailure(junit.framework.Test, junit.framework.AssertionFailedError);
    method public abstract void endTest(junit.framework.Test);
    method public abstract void startTest(junit.framework.Test);
  }

  public class TestResult {
    ctor public TestResult();
    method public synchronized void addError(junit.framework.Test, java.lang.Throwable);
    method public synchronized void addFailure(junit.framework.Test, junit.framework.AssertionFailedError);
    method public synchronized void addListener(junit.framework.TestListener);
    method public void endTest(junit.framework.Test);
    method public synchronized int errorCount();
    method public synchronized java.util.Enumeration<junit.framework.TestFailure> errors();
    method public synchronized int failureCount();
    method public synchronized java.util.Enumeration<junit.framework.TestFailure> failures();
    method public synchronized void removeListener(junit.framework.TestListener);
    method protected void run(junit.framework.TestCase);
    method public synchronized int runCount();
    method public void runProtected(junit.framework.Test, junit.framework.Protectable);
    method public synchronized boolean shouldStop();
    method public void startTest(junit.framework.Test);
    method public synchronized void stop();
    method public synchronized boolean wasSuccessful();
    field protected java.util.Vector<junit.framework.TestFailure> fErrors;
    field protected java.util.Vector<junit.framework.TestFailure> fFailures;
    field protected java.util.Vector<junit.framework.TestListener> fListeners;
    field protected int fRunTests;
  }

  public class TestSuite implements junit.framework.Test {
    ctor public TestSuite();
    ctor public TestSuite(java.lang.Class<?>);
    ctor public TestSuite(java.lang.Class<? extends junit.framework.TestCase>, java.lang.String);
    ctor public TestSuite(java.lang.String);
    ctor public TestSuite(java.lang.Class<?>...);
    ctor public TestSuite(java.lang.Class<? extends junit.framework.TestCase>[], java.lang.String);
    method public void addTest(junit.framework.Test);
    method public void addTestSuite(java.lang.Class<? extends junit.framework.TestCase>);
    method public int countTestCases();
    method public static junit.framework.Test createTest(java.lang.Class<?>, java.lang.String);
    method public java.lang.String getName();
    method public static java.lang.reflect.Constructor<?> getTestConstructor(java.lang.Class<?>) throws java.lang.NoSuchMethodException;
    method public void run(junit.framework.TestResult);
    method public void runTest(junit.framework.Test, junit.framework.TestResult);
    method public void setName(java.lang.String);
    method public junit.framework.Test testAt(int);
    method public int testCount();
    method public java.util.Enumeration<junit.framework.Test> tests();
    method public static junit.framework.Test warning(java.lang.String);
  }

}
+0 −0

Empty file added.

+165 −11
Original line number Original line Diff line number Diff line
@@ -16,6 +16,8 @@


LOCAL_PATH:= $(call my-dir)
LOCAL_PATH:= $(call my-dir)


android_test_mock_source_files := $(call all-java-files-under, src/android/test/mock)

# Build the android.test.runner library
# Build the android.test.runner library
# =====================================
# =====================================
include $(CLEAR_VARS)
include $(CLEAR_VARS)
@@ -28,11 +30,109 @@ LOCAL_MODULE:= android.test.runner


include $(BUILD_JAVA_LIBRARY)
include $(BUILD_JAVA_LIBRARY)


# Generate the stub source files for android.test.runner.stubs
# ============================================================
include $(CLEAR_VARS)

# Exclude android.test.mock classes as stubs for them are created in the
# android.test.mock.stubs target
LOCAL_SRC_FILES := \
    $(filter-out $(android_test_mock_source_files), $(call all-java-files-under, src))

LOCAL_JAVA_LIBRARIES := \
    core-oj \
    core-libart \
    framework \
    legacy-test \
    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 := \
    legacy.test.stubs \
    android.test.mock.stubs \

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_runner_api_gen_stamp)
$(full_classes_jack) : $(android_test_runner_api_gen_stamp)

# 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)

# Check that the android.test.runner.stubs library has not changed
# ================================================================

# Check that the API we're building hasn't changed from the not-yet-released
# SDK version.
$(eval $(call check-api, \
    check-android-test-runner-api-current, \
    $(ANDROID_TEST_RUNNER_API_FILE), \
    $(ANDROID_TEST_RUNNER_OUTPUT_API_FILE), \
    $(ANDROID_TEST_RUNNER_REMOVED_API_FILE), \
    $(ANDROID_TEST_RUNNER_OUTPUT_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) \
    ))

.PHONY: check-android-test-runner-api
checkapi: check-android-test-runner-api

.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)
	@echo Copying current.txt
	$(hide) $(ACP) $(ANDROID_TEST_RUNNER_OUTPUT_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)

# Build the android.test.mock library
# Build the android.test.mock library
# ===================================
# ===================================
include $(CLEAR_VARS)
include $(CLEAR_VARS)


LOCAL_SRC_FILES := $(call all-java-files-under, src/android/test/mock)
LOCAL_SRC_FILES := $(android_test_mock_source_files)


LOCAL_JAVA_LIBRARIES := core-oj core-libart framework
LOCAL_JAVA_LIBRARIES := core-oj core-libart framework


@@ -40,33 +140,45 @@ LOCAL_MODULE:= android.test.mock


include $(BUILD_JAVA_LIBRARY)
include $(BUILD_JAVA_LIBRARY)


# Generate the stub source files for android.test.mock.sdk
# Generate the stub source files for android.test.mock.stubs
# ========================================================
# ==========================================================
include $(CLEAR_VARS)
include $(CLEAR_VARS)
LOCAL_SRC_FILES := $(call all-java-files-under, src/android/test/mock)
LOCAL_SRC_FILES := $(android_test_mock_source_files)


LOCAL_JAVA_LIBRARIES := core-oj core-libart framework
LOCAL_JAVA_LIBRARIES := core-oj core-libart framework
LOCAL_MODULE_CLASS := JAVA_LIBRARIES
LOCAL_MODULE_CLASS := JAVA_LIBRARIES
LOCAL_DROIDDOC_SOURCE_PATH := $(LOCAL_PATH)/src/android/test/mock
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:= \
LOCAL_DROIDDOC_OPTIONS:= \
    -stubpackages android.test.mock \
    -stubpackages android.test.mock \
    -stubs $(TARGET_OUT_COMMON_INTERMEDIATES)/JAVA_LIBRARIES/android.test.mock.sdk_intermediates/src \
    -stubs $(TARGET_OUT_COMMON_INTERMEDIATES)/JAVA_LIBRARIES/android.test.mock.stubs_intermediates/src \
    -nodocs
    -nodocs \
    -api $(ANDROID_TEST_MOCK_OUTPUT_API_FILE) \
    -removedApi $(ANDROID_TEST_MOCK_OUTPUT_REMOVED_API_FILE) \


LOCAL_UNINSTALLABLE_MODULE := true
LOCAL_UNINSTALLABLE_MODULE := true
LOCAL_MODULE := android-test-mock-stubs-gen
LOCAL_MODULE := android-test-mock-api-stubs-gen


include $(BUILD_DROIDDOC)
include $(BUILD_DROIDDOC)


# Remember the target that will trigger the code generation.
# Remember the target that will trigger the code generation.
android_test_mock_gen_stamp := $(full_target)
android_test_mock_gen_stamp := $(full_target)


# Build the android.test.mock.sdk library
# 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)
include $(CLEAR_VARS)


LOCAL_MODULE := android.test.mock.sdk
LOCAL_MODULE := android.test.mock.stubs


LOCAL_SOURCE_FILES_ALL_GENERATED := true
LOCAL_SOURCE_FILES_ALL_GENERATED := true


@@ -77,7 +189,49 @@ $(full_classes_compiled_jar) : $(android_test_mock_gen_stamp)
$(full_classes_jack) : $(android_test_mock_gen_stamp)
$(full_classes_jack) : $(android_test_mock_gen_stamp)


# Archive a copy of the classes.jar in SDK build.
# Archive a copy of the classes.jar in SDK build.
$(call dist-for-goals,sdk win_sdk,$(full_classes_jar):android.test.mock.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
# ==============================================================

# 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), \
    $(ANDROID_TEST_MOCK_REMOVED_API_FILE), \
    $(ANDROID_TEST_MOCK_OUTPUT_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) \
    ))

.PHONY: check-android-test-mock-api
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)
	@echo Copying current.txt
	$(hide) $(ACP) $(ANDROID_TEST_MOCK_OUTPUT_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)

# Build the android.test.mock.sdk library
# =======================================
include $(CLEAR_VARS)

LOCAL_MODULE := android.test.mock.sdk

LOCAL_STATIC_JAVA_LIBRARIES := android.test.mock.stubs

include $(BUILD_STATIC_JAVA_LIBRARY)


# additionally, build unit tests in a separate .apk
# additionally, build unit tests in a separate .apk
include $(call all-makefiles-under,$(LOCAL_PATH))
include $(call all-makefiles-under,$(LOCAL_PATH))
Loading