RollbackManager relies on package changed broadcasts to expire rollbacks when an application is updated, but we don't receive package changed broadcasts for apex. This change adds an extra check when starting RollbackManager to see if any apex versions have changed and expires rollbacks as appropriate. Adds a test case to cover the scenario and refactors the test code to properly set up the test apex in all cases with minimal reboots. Bug: 126358044 Test: atest StagedRollbackTest, with new test added. Change-Id: I7ea4953e4aff8d1c7560d6c61e6be5e4e8e1f194
141 lines
4.1 KiB
Plaintext
141 lines
4.1 KiB
Plaintext
// Copyright (C) 2019 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.
|
|
|
|
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: "TestApex/RollbackTestApexV1.json",
|
|
file_contexts: "apex.test",
|
|
prebuilts: ["RollbackTestApex.prebuilt.txt"],
|
|
key: "RollbackTestApex.key",
|
|
installable: false,
|
|
}
|
|
|
|
apex {
|
|
name: "com.android.tests.rollback.testapex.RollbackTestApexV2",
|
|
manifest: "TestApex/RollbackTestApexV2.json",
|
|
file_contexts: "apex.test",
|
|
prebuilts: ["RollbackTestApex.prebuilt.txt"],
|
|
key: "RollbackTestApex.key",
|
|
installable: false,
|
|
}
|
|
|
|
apex {
|
|
name: "com.android.tests.rollback.testapex.RollbackTestApexV3",
|
|
manifest: "TestApex/RollbackTestApexV3.json",
|
|
file_contexts: "apex.test",
|
|
prebuilts: ["RollbackTestApex.prebuilt.txt"],
|
|
key: "RollbackTestApex.key",
|
|
installable: false,
|
|
}
|
|
|
|
apex_key {
|
|
name: "RollbackTestApex.key",
|
|
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: "TestApex/RollbackTestApex.prebuilt.txt",
|
|
}
|
|
|
|
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",
|
|
":com.android.tests.rollback.testapex.RollbackTestApexV3",
|
|
],
|
|
test_config: "RollbackTest.xml",
|
|
sdk_version: "test_current",
|
|
}
|
|
|
|
java_test_host {
|
|
name: "StagedRollbackTest",
|
|
srcs: ["StagedRollbackTest/src/**/*.java"],
|
|
libs: ["tradefed"],
|
|
test_suites: ["general-tests"],
|
|
test_config: "StagedRollbackTest.xml",
|
|
}
|