diff --git a/services/core/java/com/android/server/rollback/TEST_MAPPING b/services/core/java/com/android/server/rollback/TEST_MAPPING index 921b75478d137..8c7b5acf5c3ab 100644 --- a/services/core/java/com/android/server/rollback/TEST_MAPPING +++ b/services/core/java/com/android/server/rollback/TEST_MAPPING @@ -14,5 +14,13 @@ } ] } + ], + "imports": [ + { + "path": "cts/tests/rollback" + }, + { + "path": "cts/hostsidetests/rollback" + } ] } diff --git a/tests/RollbackTest/Android.bp b/tests/RollbackTest/Android.bp index 1932871d86b9f..1cf3d364a8d55 100644 --- a/tests/RollbackTest/Android.bp +++ b/tests/RollbackTest/Android.bp @@ -78,45 +78,6 @@ android_test_helper_app { 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", @@ -132,9 +93,6 @@ android_test { ":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", diff --git a/tests/RollbackTest/RollbackTest/src/com/android/tests/rollback/StagedRollbackTest.java b/tests/RollbackTest/RollbackTest/src/com/android/tests/rollback/StagedRollbackTest.java index b3a9f4933de97..1ddfa6ee54ce7 100644 --- a/tests/RollbackTest/RollbackTest/src/com/android/tests/rollback/StagedRollbackTest.java +++ b/tests/RollbackTest/RollbackTest/src/com/android/tests/rollback/StagedRollbackTest.java @@ -17,7 +17,6 @@ package com.android.tests.rollback; import static com.android.tests.rollback.RollbackTestUtils.assertRollbackInfoEquals; -import static com.android.tests.rollback.RollbackTestUtils.getRecentlyCommittedRollbackInfoById; import static com.android.tests.rollback.RollbackTestUtils.getUniqueRollbackInfoForPackage; import android.Manifest; @@ -31,7 +30,6 @@ import androidx.test.InstrumentationRegistry; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotEquals; -import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; @@ -55,15 +53,7 @@ public class StagedRollbackTest { private static final String TAG = "RollbackTest"; private static final String TEST_APP_A = "com.android.tests.rollback.testapp.A"; private static final String TEST_APP_A_V1 = "RollbackTestAppAv1.apk"; - private static final String TEST_APP_A_V2 = "RollbackTestAppAv2.apk"; private static final String TEST_APP_A_CRASHING_V2 = "RollbackTestAppACrashingV2.apk"; - private static final String TEST_APEX_PKG = "com.android.tests.rollback.testapex"; - private static final String TEST_APEX_V1 = - "com.android.tests.rollback.testapex.RollbackTestApexV1.apex"; - private static final String TEST_APEX_V2 = - "com.android.tests.rollback.testapex.RollbackTestApexV2.apex"; - private static final String TEST_APEX_V3 = - "com.android.tests.rollback.testapex.RollbackTestApexV3.apex"; /** * Adopts common shell permissions needed for rollback tests. @@ -85,59 +75,6 @@ public class StagedRollbackTest { RollbackTestUtils.dropShellPermissionIdentity(); } - - /** - * Test rollbacks of staged installs involving only apks. - * Enable rollback phase. - */ - @Test - public void testApkOnlyEnableRollback() throws Exception { - RollbackTestUtils.uninstall(TEST_APP_A); - assertEquals(-1, RollbackTestUtils.getInstalledVersion(TEST_APP_A)); - - RollbackTestUtils.install(TEST_APP_A_V1, false); - assertEquals(1, RollbackTestUtils.getInstalledVersion(TEST_APP_A)); - RollbackTestUtils.processUserData(TEST_APP_A); - - RollbackTestUtils.installStaged(true, TEST_APP_A_V2); - - // At this point, the host test driver will reboot the device and run - // testApkOnlyCommitRollback(). - } - - /** - * Test rollbacks of staged installs involving only apks. - * Commit rollback phase. - */ - @Test - public void testApkOnlyCommitRollback() throws Exception { - assertEquals(2, RollbackTestUtils.getInstalledVersion(TEST_APP_A)); - RollbackTestUtils.processUserData(TEST_APP_A); - - RollbackManager rm = RollbackTestUtils.getRollbackManager(); - RollbackInfo rollback = getUniqueRollbackInfoForPackage( - rm.getAvailableRollbacks(), TEST_APP_A); - assertRollbackInfoEquals(TEST_APP_A, 2, 1, rollback); - assertTrue(rollback.isStaged()); - - RollbackTestUtils.rollback(rollback.getRollbackId(), - new VersionedPackage(TEST_APP_A, 2)); - - rollback = getUniqueRollbackInfoForPackage( - rm.getRecentlyCommittedRollbacks(), TEST_APP_A); - assertRollbackInfoEquals(TEST_APP_A, 2, 1, rollback, new VersionedPackage(TEST_APP_A, 2)); - assertTrue(rollback.isStaged()); - assertNotEquals(-1, rollback.getCommittedSessionId()); - - RollbackTestUtils.waitForSessionReady(rollback.getCommittedSessionId()); - - // The app should not be rolled back until after reboot. - assertEquals(2, RollbackTestUtils.getInstalledVersion(TEST_APP_A)); - - // At this point, the host test driver will reboot the device and run - // testApkOnlyConfirmRollback(). - } - /** * Test rollbacks of staged installs involving only apks with bad update. * Enable rollback phase. @@ -209,7 +146,7 @@ public class StagedRollbackTest { * Confirm rollback phase. */ @Test - public void testApkOnlyConfirmRollback() throws Exception { + public void testBadApkOnlyConfirmRollback() throws Exception { assertEquals(1, RollbackTestUtils.getInstalledVersion(TEST_APP_A)); RollbackTestUtils.processUserData(TEST_APP_A); @@ -220,171 +157,4 @@ public class StagedRollbackTest { assertTrue(rollback.isStaged()); assertNotEquals(-1, rollback.getCommittedSessionId()); } - - /** - * Test rollbacks of staged installs an apk and an apex. - * Enable rollback phase. - */ - @Test - public void testApkAndApexEnableRollback() throws Exception { - RollbackTestUtils.uninstall(TEST_APP_A); - RollbackTestUtils.install(TEST_APP_A_V1, false); - - assertEquals(1, RollbackTestUtils.getInstalledVersion(TEST_APEX_PKG)); - assertEquals(1, RollbackTestUtils.getInstalledVersion(TEST_APP_A)); - - RollbackTestUtils.installStaged(true, TEST_APP_A_V2, TEST_APEX_V2); - - // At this point, the host test driver will reboot the device and run - // testApkAndApexCommitRollback(). - } - - /** - * Test rollbacks of staged installs an apk and an apex. - * Commit rollback phase. - */ - @Test - public void testApkAndApexCommitRollback() throws Exception { - assertEquals(2, RollbackTestUtils.getInstalledVersion(TEST_APEX_PKG)); - assertEquals(2, RollbackTestUtils.getInstalledVersion(TEST_APP_A)); - - RollbackTestUtils.processUserData(TEST_APP_A); - - RollbackManager rm = RollbackTestUtils.getRollbackManager(); - - RollbackInfo rollback = getUniqueRollbackInfoForPackage( - rm.getAvailableRollbacks(), TEST_APP_A); - String[] packagesNames = {TEST_APEX_PKG, TEST_APP_A}; - assertRollbackInfoEquals(packagesNames, 2, 1, rollback); - assertTrue(rollback.isStaged()); - - RollbackTestUtils.rollback(rollback.getRollbackId()); - - RollbackInfo committed = getRecentlyCommittedRollbackInfoById(rollback.getRollbackId()); - - assertRollbackInfoEquals(packagesNames, 2, 1, committed); - assertTrue(committed.isStaged()); - assertNotEquals(-1, committed.getCommittedSessionId()); - - RollbackTestUtils.waitForSessionReady(committed.getCommittedSessionId()); - - // The apex and apk should not be rolled back until after reboot. - assertEquals(2, RollbackTestUtils.getInstalledVersion(TEST_APEX_PKG)); - assertEquals(2, RollbackTestUtils.getInstalledVersion(TEST_APP_A)); - - // At this point, the host test driver will reboot the device and run - // testApkAndApexConfirmRollback(). - } - - /** - * Test rollbacks of staged installs an apk and an apex. - * Confirm rollback phase. - */ - @Test - public void testApkAndApexConfirmRollback() throws Exception { - assertEquals(1, RollbackTestUtils.getInstalledVersion(TEST_APEX_PKG)); - assertEquals(1, RollbackTestUtils.getInstalledVersion(TEST_APP_A)); - - RollbackTestUtils.processUserData(TEST_APP_A); - } - - /** - * Test rollbacks of staged installs involving only apex. - * Enable rollback phase. - */ - @Test - public void testApexOnlyEnableRollback() throws Exception { - assertEquals(1, RollbackTestUtils.getInstalledVersion(TEST_APEX_PKG)); - RollbackTestUtils.installStaged(true, TEST_APEX_V2); - - // At this point, the host test driver will reboot the device and run - // testApexOnlyCommitRollback(). - } - - /** - * Test rollbacks of staged installs involving only apex. - * Commit rollback phase. - */ - @Test - public void testApexOnlyCommitRollback() throws Exception { - assertEquals(2, RollbackTestUtils.getInstalledVersion(TEST_APEX_PKG)); - - RollbackManager rm = RollbackTestUtils.getRollbackManager(); - RollbackInfo rollback = getUniqueRollbackInfoForPackage( - rm.getAvailableRollbacks(), TEST_APEX_PKG); - assertRollbackInfoEquals(TEST_APEX_PKG, 2, 1, rollback); - assertTrue(rollback.isStaged()); - - RollbackTestUtils.rollback(rollback.getRollbackId()); - - RollbackInfo committed = getRecentlyCommittedRollbackInfoById(rollback.getRollbackId()); - - assertRollbackInfoEquals(TEST_APEX_PKG, 2, 1, committed); - assertTrue(committed.isStaged()); - assertNotEquals(-1, committed.getCommittedSessionId()); - - RollbackTestUtils.waitForSessionReady(committed.getCommittedSessionId()); - - // The apex should not be rolled back until after reboot. - assertEquals(2, RollbackTestUtils.getInstalledVersion(TEST_APEX_PKG)); - - // At this point, the host test driver will reboot the device and run - // testApexOnlyConfirmRollback(). - } - - /** - * Test rollbacks of staged installs involving only apex. - * Confirm rollback phase. - */ - @Test - public void testApexOnlyConfirmRollback() throws Exception { - assertEquals(1, RollbackTestUtils.getInstalledVersion(TEST_APEX_PKG)); - } - - /** - * Tests that apex update expires existing rollbacks for that apex. - * Enable rollback phase. - */ - @Test - public void testApexRollbackExpirationEnableRollback() throws Exception { - assertEquals(1, RollbackTestUtils.getInstalledVersion(TEST_APEX_PKG)); - RollbackTestUtils.installStaged(true, TEST_APEX_V2); - - // At this point, the host test driver will reboot the device and run - // testApexRollbackExpirationUpdateApex(). - } - - /** - * Tests that apex update expires existing rollbacks for that apex. - * Update apex phase. - */ - @Test - public void testApexRollbackExpirationUpdateApex() throws Exception { - assertEquals(2, RollbackTestUtils.getInstalledVersion(TEST_APEX_PKG)); - RollbackTestUtils.installStaged(false, TEST_APEX_V3); - - // At this point, the host test driver will reboot the device and run - // testApexRollbackExpirationConfirmExpiration(). - } - - /** - * Tests that apex update expires existing rollbacks for that apex. - * Confirm expiration phase. - */ - @Test - public void testApexRollbackExpirationConfirmExpiration() throws Exception { - assertEquals(3, RollbackTestUtils.getInstalledVersion(TEST_APEX_PKG)); - - RollbackManager rm = RollbackTestUtils.getRollbackManager(); - assertNull(getUniqueRollbackInfoForPackage(rm.getAvailableRollbacks(), TEST_APEX_PKG)); - } - - /** - * Helper function called by the host test to install v1 of the test apex, - * assuming the test apex is not installed. - */ - @Test - public void installTestApexV1() throws Exception { - RollbackTestUtils.installStaged(false, TEST_APEX_V1); - } } diff --git a/tests/RollbackTest/StagedRollbackTest/src/com/android/tests/rollback/host/StagedRollbackTest.java b/tests/RollbackTest/StagedRollbackTest/src/com/android/tests/rollback/host/StagedRollbackTest.java index 2433434a29933..75a95adf460a6 100644 --- a/tests/RollbackTest/StagedRollbackTest/src/com/android/tests/rollback/host/StagedRollbackTest.java +++ b/tests/RollbackTest/StagedRollbackTest/src/com/android/tests/rollback/host/StagedRollbackTest.java @@ -19,7 +19,6 @@ package com.android.tests.rollback.host; import static org.junit.Assert.assertTrue; import com.android.ddmlib.Log.LogLevel; -import com.android.tradefed.device.ITestDevice; import com.android.tradefed.log.LogUtil.CLog; import com.android.tradefed.testtype.DeviceJUnit4ClassRunner; import com.android.tradefed.testtype.junit4.BaseHostJUnit4Test; @@ -32,9 +31,6 @@ import org.junit.runner.RunWith; */ @RunWith(DeviceJUnit4ClassRunner.class) public class StagedRollbackTest extends BaseHostJUnit4Test { - - private static final String TEST_APEX_PKG = "com.android.tests.rollback.testapex"; - /** * Runs the given phase of a test by calling into the device. * Throws an exception if the test phase fails. @@ -47,18 +43,6 @@ public class StagedRollbackTest extends BaseHostJUnit4Test { phase)); } - /** - * Tests staged rollbacks involving only apks. - */ - @Test - public void testApkOnly() throws Exception { - runPhase("testApkOnlyEnableRollback"); - getDevice().reboot(); - runPhase("testApkOnlyCommitRollback"); - getDevice().reboot(); - runPhase("testApkOnlyConfirmRollback"); - } - /** * Tests watchdog triggered staged rollbacks involving only apks. */ @@ -79,66 +63,6 @@ public class StagedRollbackTest extends BaseHostJUnit4Test { } getDevice().waitForDeviceAvailable(); - runPhase("testApkOnlyConfirmRollback"); - } - - /** - * Tests staged rollbacks involving only apex. - */ - @Test - public void testApexOnly() throws Exception { - installTestApexV1(); - runPhase("testApexOnlyEnableRollback"); - getDevice().reboot(); - runPhase("testApexOnlyCommitRollback"); - getDevice().reboot(); - runPhase("testApexOnlyConfirmRollback"); - } - - /** - * Tests staged rollbacks involving apk and apex. - */ - @Test - public void testApkAndApex() throws Exception { - installTestApexV1(); - runPhase("testApkAndApexEnableRollback"); - getDevice().reboot(); - runPhase("testApkAndApexCommitRollback"); - getDevice().reboot(); - runPhase("testApkAndApexConfirmRollback"); - } - - /** - * Tests that apex update expires existing rollbacks for that apex. - */ - @Test - public void testApexRollbackExpiration() throws Exception { - installTestApexV1(); - runPhase("testApexRollbackExpirationEnableRollback"); - getDevice().reboot(); - runPhase("testApexRollbackExpirationUpdateApex"); - getDevice().reboot(); - runPhase("testApexRollbackExpirationConfirmExpiration"); - } - - /** - * Do whatever is necessary to get version 1 of the test apex installed on - * the device. Try to do so without extra reboots where possible to keep - * the test execution time down. - */ - private void installTestApexV1() throws Exception { - for (ITestDevice.ApexInfo apexInfo : getDevice().getActiveApexes()) { - if (TEST_APEX_PKG.equals(apexInfo.name)) { - if (apexInfo.versionCode == 1) { - return; - } - getDevice().uninstallPackage(TEST_APEX_PKG); - getDevice().reboot(); - break; - } - } - - runPhase("installTestApexV1"); - getDevice().reboot(); + runPhase("testBadApkOnlyConfirmRollback"); } } diff --git a/tests/RollbackTest/TestApex/RollbackTestApex.prebuilt.txt b/tests/RollbackTest/TestApex/RollbackTestApex.prebuilt.txt deleted file mode 100644 index e871146fb8248..0000000000000 --- a/tests/RollbackTest/TestApex/RollbackTestApex.prebuilt.txt +++ /dev/null @@ -1,3 +0,0 @@ - -This file contains dummy content to include in the RollbackTestApex. - diff --git a/tests/RollbackTest/TestApex/RollbackTestApexV1.json b/tests/RollbackTest/TestApex/RollbackTestApexV1.json deleted file mode 100644 index c3239ca0d902f..0000000000000 --- a/tests/RollbackTest/TestApex/RollbackTestApexV1.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "name": "com.android.tests.rollback.testapex", - "version": 1 -} diff --git a/tests/RollbackTest/TestApex/RollbackTestApexV2.json b/tests/RollbackTest/TestApex/RollbackTestApexV2.json deleted file mode 100644 index 9de3f45908774..0000000000000 --- a/tests/RollbackTest/TestApex/RollbackTestApexV2.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "name": "com.android.tests.rollback.testapex", - "version": 2 -} diff --git a/tests/RollbackTest/TestApex/RollbackTestApexV3.json b/tests/RollbackTest/TestApex/RollbackTestApexV3.json deleted file mode 100644 index 87a2c9dbcb6ae..0000000000000 --- a/tests/RollbackTest/TestApex/RollbackTestApexV3.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "name": "com.android.tests.rollback.testapex", - "version": 3 -} diff --git a/tests/RollbackTest/TestApex/com.android.tests.rollback.testapex.avbpubkey b/tests/RollbackTest/TestApex/com.android.tests.rollback.testapex.avbpubkey deleted file mode 100644 index b347331bc539b..0000000000000 Binary files a/tests/RollbackTest/TestApex/com.android.tests.rollback.testapex.avbpubkey and /dev/null differ diff --git a/tests/RollbackTest/TestApex/com.android.tests.rollback.testapex.pem b/tests/RollbackTest/TestApex/com.android.tests.rollback.testapex.pem deleted file mode 100644 index 7181ce5c2a730..0000000000000 --- a/tests/RollbackTest/TestApex/com.android.tests.rollback.testapex.pem +++ /dev/null @@ -1,51 +0,0 @@ ------BEGIN RSA PRIVATE KEY----- -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 ------END RSA PRIVATE KEY-----