From f6785aa31cf4087d2bf66362b6814c1d88b78abb Mon Sep 17 00:00:00 2001 From: JW Wang Date: Wed, 4 Aug 2021 15:50:15 +0800 Subject: [PATCH] Remove tests (6/n) Remove tests that have been migrated to CTS. Bug: 194971428 Test: m RollbackTest Change-Id: I923681c69223f10ed4ee2593a1401e96bdcece9c --- .../android/tests/rollback/RollbackTest.java | 386 ------------------ 1 file changed, 386 deletions(-) diff --git a/tests/RollbackTest/RollbackTest/src/com/android/tests/rollback/RollbackTest.java b/tests/RollbackTest/RollbackTest/src/com/android/tests/rollback/RollbackTest.java index 05c46ed4b7d95..7a668a5a89448 100644 --- a/tests/RollbackTest/RollbackTest/src/com/android/tests/rollback/RollbackTest.java +++ b/tests/RollbackTest/RollbackTest/src/com/android/tests/rollback/RollbackTest.java @@ -54,7 +54,6 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.JUnit4; -import java.util.Collections; import java.util.List; import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; @@ -202,194 +201,6 @@ public class RollbackTest { } } - /** - * Test that multiple available rollbacks are properly persisted. - */ - @Test - public void testAvailableRollbackPersistence() throws Exception { - try { - InstallUtils.adoptShellPermissionIdentity( - Manifest.permission.INSTALL_PACKAGES, - Manifest.permission.DELETE_PACKAGES, - Manifest.permission.TEST_MANAGE_ROLLBACKS); - - RollbackManager rm = RollbackUtils.getRollbackManager(); - - Uninstall.packages(TestApp.A); - Install.single(TestApp.A1).commit(); - Install.single(TestApp.A2).setEnableRollback().commit(); - assertThat(InstallUtils.getInstalledVersion(TestApp.A)).isEqualTo(2); - - Uninstall.packages(TestApp.B); - Install.single(TestApp.B1).commit(); - Install.single(TestApp.B2).setEnableRollback().commit(); - assertThat(InstallUtils.getInstalledVersion(TestApp.B)).isEqualTo(2); - - // Both test apps should now be available for rollback. - RollbackInfo rollbackA = waitForAvailableRollback(TestApp.A); - assertThat(rollbackA).isNotNull(); - assertThat(rollbackA).packagesContainsExactly( - Rollback.from(TestApp.A2).to(TestApp.A1)); - - RollbackInfo rollbackB = waitForAvailableRollback(TestApp.B); - assertThat(rollbackB).isNotNull(); - assertThat(rollbackB).packagesContainsExactly( - Rollback.from(TestApp.B2).to(TestApp.B1)); - - // Reload the persisted data. - rm.reloadPersistedData(); - - // The apps should still be available for rollback. - rollbackA = waitForAvailableRollback(TestApp.A); - assertThat(rollbackA).isNotNull(); - assertThat(rollbackA).packagesContainsExactly( - Rollback.from(TestApp.A2).to(TestApp.A1)); - - rollbackB = waitForAvailableRollback(TestApp.B); - assertThat(rollbackB).isNotNull(); - assertThat(rollbackB).packagesContainsExactly( - Rollback.from(TestApp.B2).to(TestApp.B1)); - - // Rollback of B should not rollback A - RollbackUtils.rollback(rollbackB.getRollbackId()); - assertThat(InstallUtils.getInstalledVersion(TestApp.A)).isEqualTo(2); - assertThat(InstallUtils.getInstalledVersion(TestApp.B)).isEqualTo(1); - } finally { - InstallUtils.dropShellPermissionIdentity(); - } - } - - /** - * Test that available multi-package rollbacks are properly persisted. - */ - @Test - public void testAvailableMultiPackageRollbackPersistence() throws Exception { - try { - InstallUtils.adoptShellPermissionIdentity( - Manifest.permission.INSTALL_PACKAGES, - Manifest.permission.DELETE_PACKAGES, - Manifest.permission.TEST_MANAGE_ROLLBACKS); - - RollbackManager rm = RollbackUtils.getRollbackManager(); - - Uninstall.packages(TestApp.A, TestApp.B); - Install.multi(TestApp.A1, TestApp.B1).commit(); - Install.multi(TestApp.A2, TestApp.B2).setEnableRollback().commit(); - - assertThat(InstallUtils.getInstalledVersion(TestApp.A)).isEqualTo(2); - assertThat(InstallUtils.getInstalledVersion(TestApp.B)).isEqualTo(2); - - // The app should now be available for rollback. - RollbackInfo availableA = waitForAvailableRollback(TestApp.A); - assertThat(availableA).isNotNull(); - assertThat(availableA).packagesContainsExactly( - Rollback.from(TestApp.A2).to(TestApp.A1), - Rollback.from(TestApp.B2).to(TestApp.B1)); - - RollbackInfo availableB = waitForAvailableRollback(TestApp.B); - assertThat(availableB).isNotNull(); - assertThat(availableB).packagesContainsExactly( - Rollback.from(TestApp.A2).to(TestApp.A1), - Rollback.from(TestApp.B2).to(TestApp.B1)); - - // Assert they're both the same rollback - assertThat(availableA).hasRollbackId(availableB.getRollbackId()); - - // Reload the persisted data. - rm.reloadPersistedData(); - - // The apps should still be available for rollback. - availableA = waitForAvailableRollback(TestApp.A); - assertThat(availableA).isNotNull(); - assertThat(availableA).packagesContainsExactly( - Rollback.from(TestApp.A2).to(TestApp.A1), - Rollback.from(TestApp.B2).to(TestApp.B1)); - - availableB = waitForAvailableRollback(TestApp.B); - assertThat(availableB).isNotNull(); - assertThat(availableB).packagesContainsExactly( - Rollback.from(TestApp.A2).to(TestApp.A1), - Rollback.from(TestApp.B2).to(TestApp.B1)); - - // Rollback of B should rollback A as well - RollbackUtils.rollback(availableB.getRollbackId()); - assertThat(InstallUtils.getInstalledVersion(TestApp.A)).isEqualTo(1); - assertThat(InstallUtils.getInstalledVersion(TestApp.B)).isEqualTo(1); - - RollbackInfo committedA = getUniqueRollbackInfoForPackage( - rm.getRecentlyCommittedRollbacks(), TestApp.A); - assertThat(committedA).isNotNull(); - assertThat(committedA).packagesContainsExactly( - Rollback.from(TestApp.A2).to(TestApp.A1), - Rollback.from(TestApp.B2).to(TestApp.B1)); - - RollbackInfo committedB = getUniqueRollbackInfoForPackage( - rm.getRecentlyCommittedRollbacks(), TestApp.A); - assertThat(committedB).isNotNull(); - assertThat(committedB).packagesContainsExactly( - Rollback.from(TestApp.A2).to(TestApp.A1), - Rollback.from(TestApp.B2).to(TestApp.B1)); - - // Assert they're both the same rollback - assertThat(committedA).hasRollbackId(committedB.getRollbackId()); - assertThat(committedA).hasRollbackId(availableA.getRollbackId()); - } finally { - InstallUtils.dropShellPermissionIdentity(); - } - } - - /** - * Test that recently committed rollback data is properly persisted. - */ - @Test - public void testRecentlyCommittedRollbackPersistence() throws Exception { - try { - InstallUtils.adoptShellPermissionIdentity( - Manifest.permission.INSTALL_PACKAGES, - Manifest.permission.DELETE_PACKAGES, - Manifest.permission.TEST_MANAGE_ROLLBACKS); - - RollbackManager rm = RollbackUtils.getRollbackManager(); - - Uninstall.packages(TestApp.A); - Install.single(TestApp.A1).commit(); - Install.single(TestApp.A2).setEnableRollback().commit(); - assertThat(InstallUtils.getInstalledVersion(TestApp.A)).isEqualTo(2); - - // The app should now be available for rollback. - RollbackInfo available = waitForAvailableRollback(TestApp.A); - assertThat(available).isNotNull(); - - // Roll back the app. - TestApp cause = new TestApp("Foo", "com.android.tests.rollback.testapp.Foo", - /*versionCode*/ 42, /*isApex*/ false); - RollbackUtils.rollback(available.getRollbackId(), cause); - assertThat(InstallUtils.getInstalledVersion(TestApp.A)).isEqualTo(1); - - // Verify the recent rollback has been recorded. - RollbackInfo committed = getUniqueRollbackInfoForPackage( - rm.getRecentlyCommittedRollbacks(), TestApp.A); - assertThat(committed).isNotNull(); - assertThat(committed).packagesContainsExactly( - Rollback.from(TestApp.A2).to(TestApp.A1)); - assertThat(committed).causePackagesContainsExactly(cause); - - // Reload the persisted data. - rm.reloadPersistedData(); - - // Verify the recent rollback is still recorded. - committed = getUniqueRollbackInfoForPackage( - rm.getRecentlyCommittedRollbacks(), TestApp.A); - assertThat(committed).isNotNull(); - assertThat(committed).packagesContainsExactly( - Rollback.from(TestApp.A2).to(TestApp.A1)); - assertThat(committed).causePackagesContainsExactly(cause); - assertThat(committed).hasRollbackId(available.getRollbackId()); - } finally { - InstallUtils.dropShellPermissionIdentity(); - } - } - /** * Test the scheduling aspect of rollback expiration. */ @@ -739,203 +550,6 @@ public class RollbackTest { } } - /** - * Test that the MANAGE_ROLLBACKS permission is required to call - * RollbackManager APIs. - */ - @Test - public void testManageRollbacksPermission() throws Exception { - // We shouldn't be allowed to call any of the RollbackManager APIs - // without the MANAGE_ROLLBACKS permission. - RollbackManager rm = RollbackUtils.getRollbackManager(); - - try { - rm.getAvailableRollbacks(); - fail("expected SecurityException"); - } catch (SecurityException e) { - // Expected. - } - - try { - rm.getRecentlyCommittedRollbacks(); - fail("expected SecurityException"); - } catch (SecurityException e) { - // Expected. - } - - try { - // TODO: What if the implementation checks arguments for non-null - // first? Then this test isn't valid. - rm.commitRollback(0, Collections.emptyList(), null); - fail("expected SecurityException"); - } catch (SecurityException e) { - // Expected. - } - - try { - rm.reloadPersistedData(); - fail("expected SecurityException"); - } catch (SecurityException e) { - // Expected. - } - - try { - rm.expireRollbackForPackage(TestApp.A); - fail("expected SecurityException"); - } catch (SecurityException e) { - // Expected. - } - } - - /** - * Test that you cannot enable rollback for a package without the - * MANAGE_ROLLBACKS permission. - */ - @Test - public void testEnableRollbackPermission() throws Exception { - try { - InstallUtils.adoptShellPermissionIdentity( - Manifest.permission.INSTALL_PACKAGES, - Manifest.permission.DELETE_PACKAGES); - - Uninstall.packages(TestApp.A); - Install.single(TestApp.A1).commit(); - assertThat(InstallUtils.getInstalledVersion(TestApp.A)).isEqualTo(1); - - Install.single(TestApp.A2).setEnableRollback().commit(); - - // We expect v2 of the app was installed, but rollback has not - // been enabled. - assertThat(InstallUtils.getInstalledVersion(TestApp.A)).isEqualTo(2); - - InstallUtils.adoptShellPermissionIdentity( - Manifest.permission.TEST_MANAGE_ROLLBACKS); - RollbackManager rm = RollbackUtils.getRollbackManager(); - assertThat( - getUniqueRollbackInfoForPackage(rm.getAvailableRollbacks(), TestApp.A)).isNull(); - } finally { - InstallUtils.dropShellPermissionIdentity(); - } - } - - /** - * Test that you cannot enable rollback for a non-module package when - * holding the MANAGE_ROLLBACKS permission. - */ - @Test - public void testNonModuleEnableRollback() throws Exception { - try { - InstallUtils.adoptShellPermissionIdentity( - Manifest.permission.INSTALL_PACKAGES, - Manifest.permission.DELETE_PACKAGES, - Manifest.permission.MANAGE_ROLLBACKS); - - Uninstall.packages(TestApp.A); - Install.single(TestApp.A1).commit(); - assertThat(InstallUtils.getInstalledVersion(TestApp.A)).isEqualTo(1); - - Install.single(TestApp.A2).setEnableRollback().commit(); - - // We expect v2 of the app was installed, but rollback has not - // been enabled because the test app is not a module. - assertThat(InstallUtils.getInstalledVersion(TestApp.A)).isEqualTo(2); - - RollbackManager rm = RollbackUtils.getRollbackManager(); - assertThat( - getUniqueRollbackInfoForPackage(rm.getAvailableRollbacks(), TestApp.A)).isNull(); - } finally { - InstallUtils.dropShellPermissionIdentity(); - } - } - - /** - * Test rollback of multi-package installs is implemented. - */ - @Test - public void testMultiPackage() throws Exception { - try { - InstallUtils.adoptShellPermissionIdentity( - Manifest.permission.INSTALL_PACKAGES, - Manifest.permission.DELETE_PACKAGES, - Manifest.permission.TEST_MANAGE_ROLLBACKS); - RollbackManager rm = RollbackUtils.getRollbackManager(); - - // Prep installation of the test apps. - Uninstall.packages(TestApp.A, TestApp.B); - Install.multi(TestApp.A1, TestApp.B1).commit(); - processUserData(TestApp.A); - processUserData(TestApp.B); - Install.multi(TestApp.A2, TestApp.B2).setEnableRollback().commit(); - processUserData(TestApp.A); - processUserData(TestApp.B); - assertThat(InstallUtils.getInstalledVersion(TestApp.A)).isEqualTo(2); - assertThat(InstallUtils.getInstalledVersion(TestApp.B)).isEqualTo(2); - - // TestApp.A should now be available for rollback. - RollbackInfo rollback = waitForAvailableRollback(TestApp.A); - assertThat(rollback).isNotNull(); - assertThat(rollback).packagesContainsExactly( - Rollback.from(TestApp.A2).to(TestApp.A1), - Rollback.from(TestApp.B2).to(TestApp.B1)); - - // Rollback the app. It should cause both test apps to be rolled - // back. - RollbackUtils.rollback(rollback.getRollbackId()); - assertThat(InstallUtils.getInstalledVersion(TestApp.A)).isEqualTo(1); - assertThat(InstallUtils.getInstalledVersion(TestApp.B)).isEqualTo(1); - - // We should see recent rollbacks listed for both A and B. - Thread.sleep(1000); - RollbackInfo rollbackA = getUniqueRollbackInfoForPackage( - rm.getRecentlyCommittedRollbacks(), TestApp.A); - - RollbackInfo rollbackB = getUniqueRollbackInfoForPackage( - rm.getRecentlyCommittedRollbacks(), TestApp.B); - assertThat(rollback).packagesContainsExactly( - Rollback.from(TestApp.A2).to(TestApp.A1), - Rollback.from(TestApp.B2).to(TestApp.B1)); - - assertThat(rollbackA).hasRollbackId(rollbackB.getRollbackId()); - - processUserData(TestApp.A); - processUserData(TestApp.B); - } finally { - InstallUtils.dropShellPermissionIdentity(); - } - } - - /** - * Test failure to enable rollback for multi-package installs. - * If any one of the packages fail to enable rollback, we shouldn't enable - * rollback for any package. - */ - @Test - public void testMultiPackageEnableFail() throws Exception { - try { - InstallUtils.adoptShellPermissionIdentity( - Manifest.permission.INSTALL_PACKAGES, - Manifest.permission.DELETE_PACKAGES, - Manifest.permission.TEST_MANAGE_ROLLBACKS); - RollbackManager rm = RollbackUtils.getRollbackManager(); - - Uninstall.packages(TestApp.A, TestApp.B); - Install.single(TestApp.A1).commit(); - // We should fail to enable rollback here because TestApp B is not - // already installed. - Install.multi(TestApp.A2, TestApp.B2).setEnableRollback().commit(); - - assertThat(InstallUtils.getInstalledVersion(TestApp.A)).isEqualTo(2); - assertThat(InstallUtils.getInstalledVersion(TestApp.B)).isEqualTo(2); - - assertThat(getUniqueRollbackInfoForPackage( - rm.getAvailableRollbacks(), TestApp.A)).isNull(); - assertThat(getUniqueRollbackInfoForPackage( - rm.getAvailableRollbacks(), TestApp.B)).isNull(); - } finally { - InstallUtils.dropShellPermissionIdentity(); - } - } - @Test @Ignore("b/120200473") /**