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

Commit a7291341 authored by Richard Uhler's avatar Richard Uhler
Browse files

Avoid building RollbackTestApps into the device image.

The current approach for including built apks as java resources in
RollbackTest.apk appears to cause the RollbackTestApp apks to be
included in the device release image. Convert the Android.mk for
RollbackTest to Android.bp to work around this issue.

This breaks the split apk tests, but we can figure out how to address
that later. Marking the split apk tests @Ignore for now.

Bug: 123695037
Bug: 127520966
Test: make -j80 dist tests, verify no RollbackT*.apk is included in the
      built device image.
Test: atest RollbackTest; atest StagedRollbackTest, verify no
      RollbackT*.apk is included in the built system image.

Change-Id: Ib413785b0974faddf19ac8dd7387b2642dab37e4
parent 1cfb214c
Loading
Loading
Loading
Loading
+130 −0
Original line number Diff line number Diff line
@@ -12,9 +12,67 @@
// See the License for the specific language governing permissions and
// limitations under the License.

android_test_helper_app {
    name: "RollbackTestAppAv1",
    manifest: "TestApp/Av1.xml",
    sdk_version: "current",
    srcs: ["TestApp/src/**/*.java"],
    resource_dirs: ["TestApp/res_v1"],
}

android_test_helper_app {
    name: "RollbackTestAppAv2",
    manifest: "TestApp/Av2.xml",
    sdk_version: "current",
    srcs: ["TestApp/src/**/*.java"],
    resource_dirs: ["TestApp/res_v2"],
}

android_test_helper_app {
    name: "RollbackTestAppACrashingV2",
    manifest: "TestApp/ACrashingV2.xml",
    sdk_version: "current",
    srcs: ["TestApp/src/**/*.java"],
    resource_dirs: ["TestApp/res_v2"],
}

android_test_helper_app {
    name: "RollbackTestAppBv1",
    manifest: "TestApp/Bv1.xml",
    sdk_version: "current",
    srcs: ["TestApp/src/**/*.java"],
    resource_dirs: ["TestApp/res_v1"],
}

android_test_helper_app {
    name: "RollbackTestAppBv2",
    manifest: "TestApp/Bv2.xml",
    sdk_version: "current",
    srcs: ["TestApp/src/**/*.java"],
    resource_dirs: ["TestApp/res_v2"],
}

android_test_helper_app {
    name: "RollbackTestAppASplitV1",
    manifest: "TestApp/Av1.xml",
    sdk_version: "current",
    srcs: ["TestApp/src/**/*.java"],
    resource_dirs: ["TestApp/res_v1"],
    package_splits: ["anydpi"],
}

android_test_helper_app {
    name: "RollbackTestAppASplitV2",
    manifest: "TestApp/Av2.xml",
    sdk_version: "current",
    srcs: ["TestApp/src/**/*.java"],
    resource_dirs: ["TestApp/res_v2"],
    package_splits: ["anydpi"],
}

apex {
    name: "com.android.tests.rollback.testapex.RollbackTestApexV1",
    manifest: "RollbackTestApexV1.json",
    manifest: "TestApex/RollbackTestApexV1.json",
    file_contexts: "apex.test",
    prebuilts: ["RollbackTestApex.prebuilt.txt"],
    key: "RollbackTestApex.key",
@@ -23,7 +81,7 @@ apex {

apex {
    name: "com.android.tests.rollback.testapex.RollbackTestApexV2",
    manifest: "RollbackTestApexV2.json",
    manifest: "TestApex/RollbackTestApexV2.json",
    file_contexts: "apex.test",
    prebuilts: ["RollbackTestApex.prebuilt.txt"],
    key: "RollbackTestApex.key",
@@ -32,25 +90,41 @@ apex {

apex_key {
    name: "RollbackTestApex.key",
    public_key: "com.android.tests.rollback.testapex.avbpubkey",
    private_key: "com.android.tests.rollback.testapex.pem",
    public_key: "TestApex/com.android.tests.rollback.testapex.avbpubkey",
    private_key: "TestApex/com.android.tests.rollback.testapex.pem",
    installable: false,
}

prebuilt_etc {
    name: "RollbackTestApex.prebuilt.txt",
    src: "RollbackTestApex.prebuilt.txt",
    src: "TestApex/RollbackTestApex.prebuilt.txt",
}

filegroup {
    name: "RollbackTestApexV1_filegroup",
    srcs: [":com.android.tests.rollback.testapex.RollbackTestApexV1"],
    export_to_make_var: "ROLLBACK_TEST_APEX_V1",
android_test {
    name: "RollbackTest",
    manifest: "RollbackTest/AndroidManifest.xml",
    srcs: ["RollbackTest/src/**/*.java"],
    static_libs: ["androidx.test.rules"],
    test_suites: ["general-tests"],
    java_resources: [
        ":RollbackTestAppAv1",
        ":RollbackTestAppAv2",
        ":RollbackTestAppACrashingV2",
        ":RollbackTestAppBv1",
        ":RollbackTestAppBv2",
        ":RollbackTestAppASplitV1",
        ":RollbackTestAppASplitV2",
        ":com.android.tests.rollback.testapex.RollbackTestApexV1",
        ":com.android.tests.rollback.testapex.RollbackTestApexV2",
    ],
    test_config: "RollbackTest.xml",
    sdk_version: "system_current",
}

filegroup {
    name: "RollbackTestApexV2_filegroup",
    srcs: [":com.android.tests.rollback.testapex.RollbackTestApexV2"],
    export_to_make_var: "ROLLBACK_TEST_APEX_V2",
java_test_host {
    name: "StagedRollbackTest",
    srcs: ["StagedRollbackTest/src/**/*.java"],
    libs: ["tradefed"],
    test_suites: ["general-tests"],
    test_config: "StagedRollbackTest.xml",
}

tests/RollbackTest/Android.mk

deleted100644 → 0
+0 −148
Original line number Diff line number Diff line
# 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.

LOCAL_PATH:= $(call my-dir)

# RollbackTestAppAv1.apk
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_PATH := $(TARGET_OUT_DATA_APPS)
LOCAL_SDK_VERSION := current
LOCAL_SRC_FILES := $(call all-java-files-under, TestApp/src)
LOCAL_MANIFEST_FILE := TestApp/Av1.xml
LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/TestApp/res_v1
LOCAL_PACKAGE_NAME := RollbackTestAppAv1
include $(BUILD_PACKAGE)
ROLLBACK_TEST_APP_AV1 := $(LOCAL_INSTALLED_MODULE)

# RollbackTestAppAv2.apk
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_PATH := $(TARGET_OUT_DATA_APPS)
LOCAL_SDK_VERSION := current
LOCAL_SRC_FILES := $(call all-java-files-under, TestApp/src)
LOCAL_MANIFEST_FILE := TestApp/Av2.xml
LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/TestApp/res_v2
LOCAL_PACKAGE_NAME := RollbackTestAppAv2
include $(BUILD_PACKAGE)
ROLLBACK_TEST_APP_AV2 := $(LOCAL_INSTALLED_MODULE)

# RollbackTestAppACrashingV2.apk
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_PATH := $(TARGET_OUT_DATA_APPS)
LOCAL_SDK_VERSION := current
LOCAL_SRC_FILES := $(call all-java-files-under, TestApp/src)
LOCAL_MANIFEST_FILE := TestApp/ACrashingV2.xml
LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/TestApp/res_v2
LOCAL_PACKAGE_NAME := RollbackTestAppACrashingV2
include $(BUILD_PACKAGE)
ROLLBACK_TEST_APP_A_CRASHING_V2 := $(LOCAL_INSTALLED_MODULE)

# RollbackTestAppBv1.apk
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_PATH := $(TARGET_OUT_DATA_APPS)
LOCAL_SDK_VERSION := current
LOCAL_SRC_FILES := $(call all-java-files-under, TestApp/src)
LOCAL_MANIFEST_FILE := TestApp/Bv1.xml
LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/TestApp/res_v1
LOCAL_PACKAGE_NAME := RollbackTestAppBv1
include $(BUILD_PACKAGE)
ROLLBACK_TEST_APP_BV1 := $(LOCAL_INSTALLED_MODULE)

# RollbackTestAppBv2.apk
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_PATH := $(TARGET_OUT_DATA_APPS)
LOCAL_SDK_VERSION := current
LOCAL_SRC_FILES := $(call all-java-files-under, TestApp/src)
LOCAL_MANIFEST_FILE := TestApp/Bv2.xml
LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/TestApp/res_v2
LOCAL_PACKAGE_NAME := RollbackTestAppBv2
include $(BUILD_PACKAGE)
ROLLBACK_TEST_APP_BV2 := $(LOCAL_INSTALLED_MODULE)

# RollbackTestAppASplitV1.apk
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_PATH := $(TARGET_OUT_DATA_APPS)
LOCAL_SDK_VERSION := current
LOCAL_SRC_FILES := $(call all-java-files-under, TestApp/src)
LOCAL_MANIFEST_FILE := TestApp/Av1.xml
LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/TestApp/res_v1
LOCAL_PACKAGE_NAME := RollbackTestAppASplitV1
LOCAL_PACKAGE_SPLITS := anydpi
include $(BUILD_PACKAGE)
ROLLBACK_TEST_APP_A_SPLIT_V1 := $(LOCAL_INSTALLED_MODULE)
ROLLBACK_TEST_APP_A_SPLIT_V1_SPLIT := $(installed_apk_splits)

# RollbackTestAppASplitV2.apk
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_PATH := $(TARGET_OUT_DATA_APPS)
LOCAL_SDK_VERSION := current
LOCAL_SRC_FILES := $(call all-java-files-under, TestApp/src)
LOCAL_MANIFEST_FILE := TestApp/Av2.xml
LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/TestApp/res_v2
LOCAL_PACKAGE_NAME := RollbackTestAppASplitV2
LOCAL_PACKAGE_SPLITS := anydpi
include $(BUILD_PACKAGE)
ROLLBACK_TEST_APP_A_SPLIT_V2 := $(LOCAL_INSTALLED_MODULE)
ROLLBACK_TEST_APP_A_SPLIT_V2_SPLIT := $(installed_apk_splits)

# RollbackTest
include $(CLEAR_VARS)
LOCAL_SRC_FILES := $(call all-java-files-under, RollbackTest/src)
LOCAL_PACKAGE_NAME := RollbackTest
LOCAL_MODULE_TAGS := tests
LOCAL_STATIC_JAVA_LIBRARIES := androidx.test.rules
LOCAL_COMPATIBILITY_SUITE := general-tests
LOCAL_JAVA_RESOURCE_FILES := \
  $(ROLLBACK_TEST_APP_AV1) \
  $(ROLLBACK_TEST_APP_AV2) \
  $(ROLLBACK_TEST_APP_A_CRASHING_V2) \
  $(ROLLBACK_TEST_APP_BV1) \
  $(ROLLBACK_TEST_APP_BV2) \
  $(ROLLBACK_TEST_APP_A_SPLIT_V1) \
  $(ROLLBACK_TEST_APP_A_SPLIT_V1_SPLIT) \
  $(ROLLBACK_TEST_APP_A_SPLIT_V2) \
  $(ROLLBACK_TEST_APP_A_SPLIT_V2_SPLIT) \
  $(ROLLBACK_TEST_APEX_V1) \
  $(ROLLBACK_TEST_APEX_V2)
LOCAL_MANIFEST_FILE := RollbackTest/AndroidManifest.xml
LOCAL_SDK_VERSION := system_current
LOCAL_TEST_CONFIG := RollbackTest.xml
include $(BUILD_PACKAGE)

# StagedRollbackTest
include $(CLEAR_VARS)
LOCAL_SRC_FILES := $(call all-java-files-under, StagedRollbackTest/src)
LOCAL_MODULE := StagedRollbackTest
LOCAL_MODULE_TAGS := tests
LOCAL_JAVA_LIBRARIES := tradefed
LOCAL_COMPATIBILITY_SUITE := general-tests
LOCAL_TEST_CONFIG := StagedRollbackTest.xml
include $(BUILD_HOST_JAVA_LIBRARY)

# Clean up local variables
ROLLBACK_TEST_APP_AV1 :=
ROLLBACK_TEST_APP_AV2 :=
ROLLBACK_TEST_APP_A_CRASHING_V2 :=
ROLLBACK_TEST_APP_A_SPLIT_V1 :=
ROLLBACK_TEST_APP_A_SPLIT_V1_SPLIT :=
ROLLBACK_TEST_APP_A_SPLIT_V2 :=
ROLLBACK_TEST_APP_A_SPLIT_V2_SPLIT :=
ROLLBACK_TEST_APP_BV1 :=
ROLLBACK_TEST_APP_BV2 :=
+2 −0
Original line number Diff line number Diff line
@@ -40,6 +40,7 @@ import android.util.Log;

import androidx.test.InstrumentationRegistry;

import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.JUnit4;
@@ -455,6 +456,7 @@ public class RollbackTest {
    /**
     * Test rollback of apks involving splits.
     */
    @Ignore("b/127520966 build issues with splits need to be sorted out")
    @Test
    public void testRollbackWithSplits() throws Exception {
        try {