From 7d7af10dc9057a49c617c7c97c174e8b4ec5008c Mon Sep 17 00:00:00 2001 From: Jakub Gielzak Date: Mon, 18 Feb 2019 18:24:17 +0000 Subject: Revert "Remove legacy-test and legacy-android-test targets" This reverts commit 3b0be60307cc6063795f8cd32356745ee371e757. Reason for revert: Broken build Change-Id: I71270c7b47163ab7147029f2d3961d1848fdd9eb --- test-base/Android.bp | 19 ++++++++++++++++--- test-legacy/Android.bp | 36 ++++++++++++++++++++++++++++++++++++ test-legacy/Android.mk | 25 ++++++++++++++++++++++--- test-mock/Android.bp | 16 ++++++++++++++++ test-runner/Android.bp | 2 +- 5 files changed, 91 insertions(+), 7 deletions(-) create mode 100644 test-legacy/Android.bp diff --git a/test-base/Android.bp b/test-base/Android.bp index 8aa0aaf363dd..157609cec09c 100644 --- a/test-base/Android.bp +++ b/test-base/Android.bp @@ -44,7 +44,7 @@ java_sdk_library { // ========================================== // This is only intended for inclusion in the android.test.runner-minus-junit, // robolectric_android-all-stub and repackaged.android.test.* libraries. -// Must not be used elsewhere. +// Must not be used elewhere. java_library_static { name: "android.test.base_static", installable: false, @@ -61,6 +61,19 @@ java_library_static { sdk_version: "current", } +// Build the legacy-test library +// ============================= +// This contains the junit.framework and android.test classes that were in +// Android API level 25 excluding those from android.test.runner. +// Also contains the com.android.internal.util.Predicate[s] classes. +java_library { + name: "legacy-test", + installable: true, + + sdk_version: "current", + static_libs: ["android.test.base_static"], +} + // Build the repackaged.android.test.base library // ============================================== // This contains repackaged versions of the classes from @@ -80,8 +93,8 @@ java_library_static { // =============================================== // This contains the android.test classes from android.test.base plus // the com.android.internal.util.Predicate[s] classes. This is only -// intended for inclusion in android.test.legacy and must not be used -// elsewhere. +// intended for inclusion in the android.test.legacy and +// legacy-android-test static libraries and must not be used elsewhere. java_library_static { name: "android.test.base-minus-junit", diff --git a/test-legacy/Android.bp b/test-legacy/Android.bp new file mode 100644 index 000000000000..a69f422b3bdb --- /dev/null +++ b/test-legacy/Android.bp @@ -0,0 +1,36 @@ +// +// Copyright (C) 2018 The Android Open Source Project +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +// Build the legacy-android-test library +// ===================================== +// This contains the android.test classes that were in Android API level 25, +// including those from android.test.runner. +// Also contains the com.android.internal.util.Predicate[s] classes. +java_library_static { + name: "legacy-android-test", + + static_libs: [ + "android.test.base-minus-junit", + "android.test.runner-minus-junit", + "android.test.mock_static", + ], + + no_framework_libs: true, + libs: [ + "framework", + "junit", + ], +} diff --git a/test-legacy/Android.mk b/test-legacy/Android.mk index af26c5b80717..da47de0a3d35 100644 --- a/test-legacy/Android.mk +++ b/test-legacy/Android.mk @@ -24,16 +24,35 @@ ifeq (,$(TARGET_BUILD_APPS)$(filter true,$(TARGET_BUILD_PDK))) # Built against the SDK so that it can be statically included in APKs # without breaking link type checks. # +# This builds directly from the source rather than simply statically +# including the android.test.base-minus-junit and +# android.test.runner-minus-junit libraries because the latter library +# cannot itself be built against the SDK. That is because it uses on +# an internal method (setTestContext) on the AndroidTestCase class. +# That class is provided by both the android.test.base-minus-junit and +# the current SDK and as the latter is first on the classpath its +# version is used. Unfortunately, it does not provide the internal +# method and so compilation fails. +# +# Building from source avoids that because the compiler will use the +# source version of AndroidTestCase instead of the one from the current +# SDK. +# +# The use of the internal method does not prevent this from being +# statically included because the class that provides the method is +# also included in this library. include $(CLEAR_VARS) LOCAL_MODULE := android.test.legacy +LOCAL_SRC_FILES := \ + $(call all-java-files-under, ../test-base/src/android) \ + $(call all-java-files-under, ../test-base/src/com) \ + $(call all-java-files-under, ../test-runner/src/android) \ + LOCAL_SDK_VERSION := current LOCAL_JAVA_LIBRARIES := junit android.test.mock.stubs -LOCAL_STATIC_JAVA_LIBRARIES := \ - android.test.base-minus-junit \ - android.test.runner-minus-junit \ include $(BUILD_STATIC_JAVA_LIBRARY) diff --git a/test-mock/Android.bp b/test-mock/Android.bp index e1d6e01d6d06..43b765d8b783 100644 --- a/test-mock/Android.bp +++ b/test-mock/Android.bp @@ -30,3 +30,19 @@ java_sdk_library { srcs_lib_whitelist_pkgs: ["android"], compile_dex: true, } + +// Build the android.test.mock_static library +// ========================================== +// This is only intended for inclusion in the legacy-android-test. +// Must not be used elewhere. +java_library_static { + name: "android.test.mock_static", + + java_version: "1.8", + srcs: ["src/**/*.java"], + + no_framework_libs: true, + libs: [ + "framework", + ], +} diff --git a/test-runner/Android.bp b/test-runner/Android.bp index 35212020be7b..db5053eeb903 100644 --- a/test-runner/Android.bp +++ b/test-runner/Android.bp @@ -45,7 +45,7 @@ java_sdk_library { // Build the android.test.runner-minus-junit library // ================================================= -// This is only intended for inclusion in the android.test.legacy static +// This is only intended for inclusion in the legacy-android-test static // library and must not be used elsewhere. java_library { name: "android.test.runner-minus-junit", -- cgit v1.2.3