Loading tests/RollbackTest/RollbackTest/src/com/android/tests/rollback/StagedRollbackTest.java +32 −32 Original line number Diff line number Diff line Loading @@ -88,7 +88,7 @@ public class StagedRollbackTest { * Enable rollback phase. */ @Test public void testBadApkOnly_Phase1() throws Exception { public void testBadApkOnly_Phase1_Install() throws Exception { Uninstall.packages(TestApp.A); assertThat(InstallUtils.getInstalledVersion(TestApp.A)).isEqualTo(-1); Loading @@ -104,7 +104,7 @@ public class StagedRollbackTest { * Confirm that rollback was successfully enabled. */ @Test public void testBadApkOnly_Phase2() throws Exception { public void testBadApkOnly_Phase2_VerifyInstall() throws Exception { assertThat(InstallUtils.getInstalledVersion(TestApp.A)).isEqualTo(2); InstallUtils.processUserData(TestApp.A); Loading @@ -129,7 +129,7 @@ public class StagedRollbackTest { * Trigger rollback phase. */ @Test public void testBadApkOnly_Phase3() throws Exception { public void testBadApkOnly_Phase3_Crash() throws Exception { // One more crash to trigger rollback RollbackUtils.sendCrashBroadcast(TestApp.A, 1); } Loading @@ -139,7 +139,7 @@ public class StagedRollbackTest { * Confirm rollback phase. */ @Test public void testBadApkOnly_Phase4() throws Exception { public void testBadApkOnly_Phase4_VerifyRollback() throws Exception { assertThat(InstallUtils.getInstalledVersion(TestApp.A)).isEqualTo(1); InstallUtils.processUserData(TestApp.A); Loading @@ -158,7 +158,7 @@ public class StagedRollbackTest { * Stage install an apk with rollback that will be later triggered by unattributable crash. */ @Test public void testNativeWatchdogTriggersRollback_Phase1() throws Exception { public void testNativeWatchdogTriggersRollback_Phase1_Install() throws Exception { Uninstall.packages(TestApp.A); Install.single(TestApp.A1).commit(); assertThat(InstallUtils.getInstalledVersion(TestApp.A)).isEqualTo(1); Loading @@ -170,7 +170,7 @@ public class StagedRollbackTest { * Verify the rollback is available. */ @Test public void testNativeWatchdogTriggersRollback_Phase2() throws Exception { public void testNativeWatchdogTriggersRollback_Phase2_VerifyInstall() throws Exception { assertThat(InstallUtils.getInstalledVersion(TestApp.A)).isEqualTo(2); RollbackManager rm = RollbackUtils.getRollbackManager(); assertThat(getUniqueRollbackInfoForPackage(rm.getAvailableRollbacks(), Loading @@ -181,7 +181,7 @@ public class StagedRollbackTest { * Verify the rollback is committed after crashing. */ @Test public void testNativeWatchdogTriggersRollback_Phase3() throws Exception { public void testNativeWatchdogTriggersRollback_Phase3_VerifyRollback() throws Exception { assertThat(InstallUtils.getInstalledVersion(TestApp.A)).isEqualTo(1); RollbackManager rm = RollbackUtils.getRollbackManager(); assertThat(getUniqueRollbackInfoForPackage(rm.getRecentlyCommittedRollbacks(), Loading @@ -192,7 +192,7 @@ public class StagedRollbackTest { * Stage install an apk with rollback that will be later triggered by unattributable crash. */ @Test public void testNativeWatchdogTriggersRollbackForAll_Phase1() throws Exception { public void testNativeWatchdogTriggersRollbackForAll_Phase1_InstallA() throws Exception { Uninstall.packages(TestApp.A); Install.single(TestApp.A1).commit(); assertThat(InstallUtils.getInstalledVersion(TestApp.A)).isEqualTo(1); Loading @@ -204,7 +204,7 @@ public class StagedRollbackTest { * Verify the rollback is available and then install another package with rollback. */ @Test public void testNativeWatchdogTriggersRollbackForAll_Phase2() throws Exception { public void testNativeWatchdogTriggersRollbackForAll_Phase2_InstallB() throws Exception { assertThat(InstallUtils.getInstalledVersion(TestApp.A)).isEqualTo(2); RollbackManager rm = RollbackUtils.getRollbackManager(); assertThat(getUniqueRollbackInfoForPackage(rm.getAvailableRollbacks(), Loading @@ -222,7 +222,7 @@ public class StagedRollbackTest { * Verify the rollbacks are available. */ @Test public void testNativeWatchdogTriggersRollbackForAll_Phase3() throws Exception { public void testNativeWatchdogTriggersRollbackForAll_Phase3_VerifyInstall() throws Exception { assertThat(InstallUtils.getInstalledVersion(TestApp.A)).isEqualTo(2); assertThat(InstallUtils.getInstalledVersion(TestApp.B)).isEqualTo(2); RollbackManager rm = RollbackUtils.getRollbackManager(); Loading @@ -236,7 +236,7 @@ public class StagedRollbackTest { * Verify the rollbacks are committed after crashing. */ @Test public void testNativeWatchdogTriggersRollbackForAll_Phase4() throws Exception { public void testNativeWatchdogTriggersRollbackForAll_Phase4_VerifyRollback() throws Exception { assertThat(InstallUtils.getInstalledVersion(TestApp.A)).isEqualTo(1); assertThat(InstallUtils.getInstalledVersion(TestApp.B)).isEqualTo(1); RollbackManager rm = RollbackUtils.getRollbackManager(); Loading @@ -247,7 +247,7 @@ public class StagedRollbackTest { } @Test public void testPreviouslyAbandonedRollbacks_Phase1() throws Exception { public void testPreviouslyAbandonedRollbacks_Phase1_InstallAndAbandon() throws Exception { Uninstall.packages(TestApp.A); Install.single(TestApp.A1).commit(); assertThat(InstallUtils.getInstalledVersion(TestApp.A)).isEqualTo(1); Loading @@ -261,7 +261,7 @@ public class StagedRollbackTest { } @Test public void testPreviouslyAbandonedRollbacks_Phase2() throws Exception { public void testPreviouslyAbandonedRollbacks_Phase2_Rollback() throws Exception { assertThat(InstallUtils.getInstalledVersion(TestApp.A)).isEqualTo(2); InstallUtils.processUserData(TestApp.A); Loading @@ -272,7 +272,7 @@ public class StagedRollbackTest { } @Test public void testPreviouslyAbandonedRollbacks_Phase3() throws Exception { public void testPreviouslyAbandonedRollbacks_Phase3_VerifyRollback() throws Exception { assertThat(InstallUtils.getInstalledVersion(TestApp.A)).isEqualTo(1); InstallUtils.processUserData(TestApp.A); Uninstall.packages(TestApp.A); Loading @@ -284,7 +284,7 @@ public class StagedRollbackTest { } @Test public void testRollbackWhitelistedApp_Phase1() throws Exception { public void testRollbackAllowlistedApp_Phase1_Install() throws Exception { // Remove available rollbacks String pkgName = getModuleMetadataPackageName(); RollbackUtils.getRollbackManager().expireRollbackForPackage(pkgName); Loading @@ -296,7 +296,7 @@ public class StagedRollbackTest { Manifest.permission.INSTALL_PACKAGES, Manifest.permission.MANAGE_ROLLBACKS); // Re-install a whitelisted app with rollbacks enabled // Re-install a allowlisted app with rollbacks enabled String filePath = InstrumentationRegistry.getInstrumentation().getContext() .getPackageManager().getPackageInfo(pkgName, 0).applicationInfo.sourceDir; TestApp app = new TestApp("ModuleMetadata", pkgName, -1, false, new File(filePath)); Loading @@ -305,12 +305,12 @@ public class StagedRollbackTest { } @Test public void testRollbackWhitelistedApp_Phase2() throws Exception { public void testRollbackAllowlistedApp_Phase2_VerifyInstall() throws Exception { assertThat(RollbackUtils.getAvailableRollback(getModuleMetadataPackageName())).isNotNull(); } @Test public void testRollbackDataPolicy_Phase1() throws Exception { public void testRollbackDataPolicy_Phase1_Install() throws Exception { Uninstall.packages(TestApp.A, TestApp.B, TestApp.C); Install.multi(TestApp.A1, TestApp.B1, TestApp.C1).commit(); // Write user data version = 1 Loading @@ -328,7 +328,7 @@ public class StagedRollbackTest { } @Test public void testRollbackDataPolicy_Phase2() throws Exception { public void testRollbackDataPolicy_Phase2_Rollback() throws Exception { assertThat(InstallUtils.getInstalledVersion(TestApp.A)).isEqualTo(2); assertThat(InstallUtils.getInstalledVersion(TestApp.B)).isEqualTo(2); // Write user data version = 2 Loading @@ -341,7 +341,7 @@ public class StagedRollbackTest { } @Test public void testRollbackDataPolicy_Phase3() throws Exception { public void testRollbackDataPolicy_Phase3_VerifyRollback() throws Exception { assertThat(InstallUtils.getInstalledVersion(TestApp.A)).isEqualTo(1); assertThat(InstallUtils.getInstalledVersion(TestApp.B)).isEqualTo(1); assertThat(InstallUtils.getInstalledVersion(TestApp.C)).isEqualTo(1); Loading @@ -355,7 +355,7 @@ public class StagedRollbackTest { } @Test public void testCleanUp() throws Exception { public void expireRollbacks() throws Exception { // testNativeWatchdogTriggersRollback will fail if multiple staged sessions are // committed on a device which doesn't support checkpoint. Let's clean up all rollbacks // so there is only one rollback to commit when testing native crashes. Loading @@ -378,7 +378,7 @@ public class StagedRollbackTest { APK_IN_APEX_TESTAPEX_NAME + "_v2Crashing.apex"); @Test public void testRollbackApexWithApk_Phase1() throws Exception { public void testRollbackApexWithApk_Phase1_Install() throws Exception { assertThat(InstallUtils.getInstalledVersion(TestApp.A)).isEqualTo(1); InstallUtils.processUserData(TestApp.A); Loading @@ -388,7 +388,7 @@ public class StagedRollbackTest { } @Test public void testRollbackApexWithApk_Phase2() throws Exception { public void testRollbackApexWithApk_Phase2_Rollback() throws Exception { assertThat(InstallUtils.getInstalledVersion(APK_IN_APEX_TESTAPEX_NAME)).isEqualTo(2); assertThat(InstallUtils.getInstalledVersion(TestApp.A)).isEqualTo(2); InstallUtils.processUserData(TestApp.A); Loading Loading @@ -416,7 +416,7 @@ public class StagedRollbackTest { } @Test public void testRollbackApexWithApk_Phase3() throws Exception { public void testRollbackApexWithApk_Phase3_VerifyRollback() throws Exception { assertThat(InstallUtils.getInstalledVersion(APK_IN_APEX_TESTAPEX_NAME)).isEqualTo(1); assertThat(InstallUtils.getInstalledVersion(TestApp.A)).isEqualTo(1); InstallUtils.processUserData(TestApp.A); Loading @@ -426,7 +426,7 @@ public class StagedRollbackTest { * Installs an apex with an apk that can crash. */ @Test public void testRollbackApexWithApkCrashing_Phase1() throws Exception { public void testRollbackApexWithApkCrashing_Phase1_Install() throws Exception { assertThat(InstallUtils.getInstalledVersion(TestApp.A)).isEqualTo(1); int sessionId = Install.single(TEST_APEX_WITH_APK_V2_CRASHING).setStaged() .setEnableRollback().commit(); Loading @@ -437,7 +437,7 @@ public class StagedRollbackTest { * Verifies rollback has been enabled successfully. Then makes TestApp.A crash. */ @Test public void testRollbackApexWithApkCrashing_Phase2() throws Exception { public void testRollbackApexWithApkCrashing_Phase2_Crash() throws Exception { assertThat(InstallUtils.getInstalledVersion(APK_IN_APEX_TESTAPEX_NAME)).isEqualTo(2); assertThat(InstallUtils.getInstalledVersion(TestApp.A)).isEqualTo(2); Loading @@ -452,20 +452,20 @@ public class StagedRollbackTest { } @Test public void testRollbackApexWithApkCrashing_Phase3() throws Exception { public void testRollbackApexWithApkCrashing_Phase3_VerifyRollback() throws Exception { assertThat(InstallUtils.getInstalledVersion(APK_IN_APEX_TESTAPEX_NAME)).isEqualTo(1); assertThat(InstallUtils.getInstalledVersion(TestApp.A)).isEqualTo(1); } @Test public void testRollbackApexDataDirectories_Phase1() throws Exception { public void testRollbackApexDataDirectories_Phase1_Install() throws Exception { int sessionId = Install.single(TEST_APEX_WITH_APK_V2).setStaged().setEnableRollback() .commit(); InstallUtils.waitForSessionReady(sessionId); } @Test public void testRollbackApexDataDirectories_Phase2() throws Exception { public void testRollbackApexDataDirectories_Phase2_Rollback() throws Exception { RollbackInfo available = RollbackUtils.getAvailableRollback(APK_IN_APEX_TESTAPEX_NAME); RollbackUtils.rollback(available.getRollbackId(), TEST_APEX_WITH_APK_V2); Loading @@ -477,19 +477,19 @@ public class StagedRollbackTest { } @Test public void testRollbackApkDataDirectories_Phase1() throws Exception { public void testRollbackApkDataDirectories_Phase1_InstallV1() throws Exception { assertThat(InstallUtils.getInstalledVersion(TestApp.A)).isEqualTo(-1); Install.single(TestApp.A1).commit(); assertThat(InstallUtils.getInstalledVersion(TestApp.A)).isEqualTo(1); } @Test public void testRollbackApkDataDirectories_Phase2() throws Exception { public void testRollbackApkDataDirectories_Phase2_InstallV2() throws Exception { Install.single(TestApp.A2).setStaged().setEnableRollback().commit(); } @Test public void testRollbackApkDataDirectories_Phase3() throws Exception { public void testRollbackApkDataDirectories_Phase3_Rollback() throws Exception { RollbackInfo available = RollbackUtils.getAvailableRollback(TestApp.A); RollbackUtils.rollback(available.getRollbackId(), TestApp.A2); RollbackInfo committed = RollbackUtils.getCommittedRollbackById(available.getRollbackId()); Loading tests/RollbackTest/StagedRollbackTest/src/com/android/tests/rollback/host/StagedRollbackTest.java +40 −40 Original line number Diff line number Diff line Loading @@ -97,14 +97,14 @@ public class StagedRollbackTest extends BaseHostJUnit4Test { public void setUp() throws Exception { deleteFiles("/system/apex/" + APK_IN_APEX_TESTAPEX_NAME + "*.apex", "/data/apex/active/" + APK_IN_APEX_TESTAPEX_NAME + "*.apex"); runPhase("testCleanUp"); runPhase("expireRollbacks"); mLogger.start(getDevice()); } @After public void tearDown() throws Exception { mLogger.stop(); runPhase("testCleanUp"); runPhase("expireRollbacks"); deleteFiles("/system/apex/" + APK_IN_APEX_TESTAPEX_NAME + "*.apex", "/data/apex/active/" + APK_IN_APEX_TESTAPEX_NAME + "*.apex", apexDataDirDeSys(APK_IN_APEX_TESTAPEX_NAME) + "*", Loading Loading @@ -144,17 +144,17 @@ public class StagedRollbackTest extends BaseHostJUnit4Test { */ @Test public void testBadApkOnly() throws Exception { runPhase("testBadApkOnly_Phase1"); runPhase("testBadApkOnly_Phase1_Install"); getDevice().reboot(); runPhase("testBadApkOnly_Phase2"); runPhase("testBadApkOnly_Phase2_VerifyInstall"); // Trigger rollback and wait for reboot to happen runPhase("testBadApkOnly_Phase3"); runPhase("testBadApkOnly_Phase3_Crash"); assertThat(getDevice().waitForDeviceNotAvailable(TimeUnit.MINUTES.toMillis(2))).isTrue(); getDevice().waitForDeviceAvailable(); runPhase("testBadApkOnly_Phase4"); runPhase("testBadApkOnly_Phase4_VerifyRollback"); assertThat(mLogger).eventOccurred(ROLLBACK_INITIATE, null, REASON_APP_CRASH, TESTAPP_A); assertThat(mLogger).eventOccurred(ROLLBACK_BOOT_TRIGGERED, null, null, null); Loading @@ -163,12 +163,12 @@ public class StagedRollbackTest extends BaseHostJUnit4Test { @Test public void testNativeWatchdogTriggersRollback() throws Exception { runPhase("testNativeWatchdogTriggersRollback_Phase1"); runPhase("testNativeWatchdogTriggersRollback_Phase1_Install"); // Reboot device to activate staged package getDevice().reboot(); runPhase("testNativeWatchdogTriggersRollback_Phase2"); runPhase("testNativeWatchdogTriggersRollback_Phase2_VerifyInstall"); // crash system_server enough times to trigger a rollback crashProcess("system_server", NATIVE_CRASHES_THRESHOLD); Loading @@ -185,7 +185,7 @@ public class StagedRollbackTest extends BaseHostJUnit4Test { getDevice().waitForDeviceAvailable(); // verify rollback committed runPhase("testNativeWatchdogTriggersRollback_Phase3"); runPhase("testNativeWatchdogTriggersRollback_Phase3_VerifyRollback"); assertThat(mLogger).eventOccurred(ROLLBACK_INITIATE, null, REASON_NATIVE_CRASH, null); assertThat(mLogger).eventOccurred(ROLLBACK_BOOT_TRIGGERED, null, null, null); Loading @@ -198,15 +198,15 @@ public class StagedRollbackTest extends BaseHostJUnit4Test { assumeTrue(isCheckpointSupported()); // Install a package with rollback enabled. runPhase("testNativeWatchdogTriggersRollbackForAll_Phase1"); runPhase("testNativeWatchdogTriggersRollbackForAll_Phase1_InstallA"); getDevice().reboot(); // Once previous staged install is applied, install another package runPhase("testNativeWatchdogTriggersRollbackForAll_Phase2"); runPhase("testNativeWatchdogTriggersRollbackForAll_Phase2_InstallB"); getDevice().reboot(); // Verify the new staged install has also been applied successfully. runPhase("testNativeWatchdogTriggersRollbackForAll_Phase3"); runPhase("testNativeWatchdogTriggersRollbackForAll_Phase3_VerifyInstall"); // crash system_server enough times to trigger a rollback crashProcess("system_server", NATIVE_CRASHES_THRESHOLD); Loading @@ -223,7 +223,7 @@ public class StagedRollbackTest extends BaseHostJUnit4Test { getDevice().waitForDeviceAvailable(); // verify all available rollbacks have been committed runPhase("testNativeWatchdogTriggersRollbackForAll_Phase4"); runPhase("testNativeWatchdogTriggersRollbackForAll_Phase4_VerifyRollback"); assertThat(mLogger).eventOccurred(ROLLBACK_INITIATE, null, REASON_NATIVE_CRASH, null); assertThat(mLogger).eventOccurred(ROLLBACK_BOOT_TRIGGERED, null, null, null); Loading @@ -235,33 +235,33 @@ public class StagedRollbackTest extends BaseHostJUnit4Test { */ @Test public void testPreviouslyAbandonedRollbacks() throws Exception { runPhase("testPreviouslyAbandonedRollbacks_Phase1"); runPhase("testPreviouslyAbandonedRollbacks_Phase1_InstallAndAbandon"); getDevice().reboot(); runPhase("testPreviouslyAbandonedRollbacks_Phase2"); runPhase("testPreviouslyAbandonedRollbacks_Phase2_Rollback"); getDevice().reboot(); runPhase("testPreviouslyAbandonedRollbacks_Phase3"); runPhase("testPreviouslyAbandonedRollbacks_Phase3_VerifyRollback"); } /** * Tests we can enable rollback for a whitelisted app. * Tests we can enable rollback for a allowlisted app. */ @Test public void testRollbackWhitelistedApp() throws Exception { public void testRollbackAllowlistedApp() throws Exception { assumeTrue(hasMainlineModule()); runPhase("testRollbackWhitelistedApp_Phase1"); runPhase("testRollbackAllowlistedApp_Phase1_Install"); getDevice().reboot(); runPhase("testRollbackWhitelistedApp_Phase2"); runPhase("testRollbackAllowlistedApp_Phase2_VerifyInstall"); } @Test public void testRollbackDataPolicy() throws Exception { List<String> before = getSnapshotDirectories("/data/misc_ce/0/rollback"); runPhase("testRollbackDataPolicy_Phase1"); runPhase("testRollbackDataPolicy_Phase1_Install"); getDevice().reboot(); runPhase("testRollbackDataPolicy_Phase2"); runPhase("testRollbackDataPolicy_Phase2_Rollback"); getDevice().reboot(); runPhase("testRollbackDataPolicy_Phase3"); runPhase("testRollbackDataPolicy_Phase3_VerifyRollback"); // Verify snapshots are deleted after restoration List<String> after = getSnapshotDirectories("/data/misc_ce/0/rollback"); Loading @@ -279,11 +279,11 @@ public class StagedRollbackTest extends BaseHostJUnit4Test { public void testRollbackApexWithApk() throws Exception { getDevice().uninstallPackage("com.android.cts.install.lib.testapp.A"); pushTestApex(); runPhase("testRollbackApexWithApk_Phase1"); runPhase("testRollbackApexWithApk_Phase1_Install"); getDevice().reboot(); runPhase("testRollbackApexWithApk_Phase2"); runPhase("testRollbackApexWithApk_Phase2_Rollback"); getDevice().reboot(); runPhase("testRollbackApexWithApk_Phase3"); runPhase("testRollbackApexWithApk_Phase3_VerifyRollback"); } /** Loading @@ -295,15 +295,15 @@ public class StagedRollbackTest extends BaseHostJUnit4Test { pushTestApex(); // Install an apex with apk that crashes runPhase("testRollbackApexWithApkCrashing_Phase1"); runPhase("testRollbackApexWithApkCrashing_Phase1_Install"); getDevice().reboot(); // Verify apex was installed and then crash the apk runPhase("testRollbackApexWithApkCrashing_Phase2"); runPhase("testRollbackApexWithApkCrashing_Phase2_Crash"); // Wait for crash to trigger rollback assertThat(getDevice().waitForDeviceNotAvailable(TimeUnit.MINUTES.toMillis(5))).isTrue(); getDevice().waitForDeviceAvailable(); // Verify rollback occurred due to crash of apk-in-apex runPhase("testRollbackApexWithApkCrashing_Phase3"); runPhase("testRollbackApexWithApkCrashing_Phase3_VerifyRollback"); assertThat(mLogger).eventOccurred(ROLLBACK_INITIATE, null, REASON_APP_CRASH, TESTAPP_A); assertThat(mLogger).eventOccurred(ROLLBACK_BOOT_TRIGGERED, null, null, null); Loading @@ -328,7 +328,7 @@ public class StagedRollbackTest extends BaseHostJUnit4Test { }); // Install new version of the APEX with rollback enabled runPhase("testRollbackApexDataDirectories_Phase1"); runPhase("testRollbackApexDataDirectories_Phase1_Install"); getDevice().reboot(); // Replace files in data directory Loading @@ -343,7 +343,7 @@ public class StagedRollbackTest extends BaseHostJUnit4Test { }); // Roll back the APEX runPhase("testRollbackApexDataDirectories_Phase2"); runPhase("testRollbackApexDataDirectories_Phase2_Rollback"); getDevice().reboot(); // Verify that old files have been restored and new files are gone Loading Loading @@ -382,7 +382,7 @@ public class StagedRollbackTest extends BaseHostJUnit4Test { }); // Install new version of the APEX with rollback enabled runPhase("testRollbackApexDataDirectories_Phase1"); runPhase("testRollbackApexDataDirectories_Phase1_Install"); getDevice().reboot(); // Replace files in data directory Loading @@ -398,7 +398,7 @@ public class StagedRollbackTest extends BaseHostJUnit4Test { }); // Roll back the APEX runPhase("testRollbackApexDataDirectories_Phase2"); runPhase("testRollbackApexDataDirectories_Phase2_Rollback"); getDevice().reboot(); // Verify that old files have been restored and new files are gone Loading Loading @@ -436,7 +436,7 @@ public class StagedRollbackTest extends BaseHostJUnit4Test { }); // Install new version of the APEX with rollback enabled runPhase("testRollbackApexDataDirectories_Phase1"); runPhase("testRollbackApexDataDirectories_Phase1_Install"); getDevice().reboot(); // Replace files in data directory Loading @@ -451,7 +451,7 @@ public class StagedRollbackTest extends BaseHostJUnit4Test { }); // Roll back the APEX runPhase("testRollbackApexDataDirectories_Phase2"); runPhase("testRollbackApexDataDirectories_Phase2_Rollback"); getDevice().reboot(); // Verify that old files have been restored and new files are gone Loading @@ -477,7 +477,7 @@ public class StagedRollbackTest extends BaseHostJUnit4Test { @Test public void testRollbackApkDataDirectories_De() throws Exception { // Install version 1 of TESTAPP_A runPhase("testRollbackApkDataDirectories_Phase1"); runPhase("testRollbackApkDataDirectories_Phase1_InstallV1"); // Push files to apk data directory String oldFilePath1 = apkDataDirDe(TESTAPP_A, 0) + "/" + TEST_FILENAME_1; Loading @@ -488,7 +488,7 @@ public class StagedRollbackTest extends BaseHostJUnit4Test { }); // Install version 2 of TESTAPP_A with rollback enabled runPhase("testRollbackApkDataDirectories_Phase2"); runPhase("testRollbackApkDataDirectories_Phase2_InstallV2"); getDevice().reboot(); // Replace files in data directory Loading @@ -502,7 +502,7 @@ public class StagedRollbackTest extends BaseHostJUnit4Test { }); // Roll back the APK runPhase("testRollbackApkDataDirectories_Phase3"); runPhase("testRollbackApkDataDirectories_Phase3_Rollback"); getDevice().reboot(); // Verify that old files have been restored and new files are gone Loading @@ -529,7 +529,7 @@ public class StagedRollbackTest extends BaseHostJUnit4Test { }); // Install new version of the APEX with rollback enabled runPhase("testRollbackApexDataDirectories_Phase1"); runPhase("testRollbackApexDataDirectories_Phase1_Install"); getDevice().reboot(); List<String> after = getSnapshotDirectories("/data/misc_ce/0/apexrollback"); Loading @@ -538,7 +538,7 @@ public class StagedRollbackTest extends BaseHostJUnit4Test { // There should be only one /data/misc_ce/0/apexrollback/<rollbackId> created during test assertThat(after).hasSize(1); // Expire all rollbacks and check CE snapshot directories are deleted runPhase("testCleanUp"); runPhase("expireRollbacks"); runAsRoot(() -> { for (String dir : after) { assertThat(getDevice().getFileEntry(dir)).isNull(); Loading Loading
tests/RollbackTest/RollbackTest/src/com/android/tests/rollback/StagedRollbackTest.java +32 −32 Original line number Diff line number Diff line Loading @@ -88,7 +88,7 @@ public class StagedRollbackTest { * Enable rollback phase. */ @Test public void testBadApkOnly_Phase1() throws Exception { public void testBadApkOnly_Phase1_Install() throws Exception { Uninstall.packages(TestApp.A); assertThat(InstallUtils.getInstalledVersion(TestApp.A)).isEqualTo(-1); Loading @@ -104,7 +104,7 @@ public class StagedRollbackTest { * Confirm that rollback was successfully enabled. */ @Test public void testBadApkOnly_Phase2() throws Exception { public void testBadApkOnly_Phase2_VerifyInstall() throws Exception { assertThat(InstallUtils.getInstalledVersion(TestApp.A)).isEqualTo(2); InstallUtils.processUserData(TestApp.A); Loading @@ -129,7 +129,7 @@ public class StagedRollbackTest { * Trigger rollback phase. */ @Test public void testBadApkOnly_Phase3() throws Exception { public void testBadApkOnly_Phase3_Crash() throws Exception { // One more crash to trigger rollback RollbackUtils.sendCrashBroadcast(TestApp.A, 1); } Loading @@ -139,7 +139,7 @@ public class StagedRollbackTest { * Confirm rollback phase. */ @Test public void testBadApkOnly_Phase4() throws Exception { public void testBadApkOnly_Phase4_VerifyRollback() throws Exception { assertThat(InstallUtils.getInstalledVersion(TestApp.A)).isEqualTo(1); InstallUtils.processUserData(TestApp.A); Loading @@ -158,7 +158,7 @@ public class StagedRollbackTest { * Stage install an apk with rollback that will be later triggered by unattributable crash. */ @Test public void testNativeWatchdogTriggersRollback_Phase1() throws Exception { public void testNativeWatchdogTriggersRollback_Phase1_Install() throws Exception { Uninstall.packages(TestApp.A); Install.single(TestApp.A1).commit(); assertThat(InstallUtils.getInstalledVersion(TestApp.A)).isEqualTo(1); Loading @@ -170,7 +170,7 @@ public class StagedRollbackTest { * Verify the rollback is available. */ @Test public void testNativeWatchdogTriggersRollback_Phase2() throws Exception { public void testNativeWatchdogTriggersRollback_Phase2_VerifyInstall() throws Exception { assertThat(InstallUtils.getInstalledVersion(TestApp.A)).isEqualTo(2); RollbackManager rm = RollbackUtils.getRollbackManager(); assertThat(getUniqueRollbackInfoForPackage(rm.getAvailableRollbacks(), Loading @@ -181,7 +181,7 @@ public class StagedRollbackTest { * Verify the rollback is committed after crashing. */ @Test public void testNativeWatchdogTriggersRollback_Phase3() throws Exception { public void testNativeWatchdogTriggersRollback_Phase3_VerifyRollback() throws Exception { assertThat(InstallUtils.getInstalledVersion(TestApp.A)).isEqualTo(1); RollbackManager rm = RollbackUtils.getRollbackManager(); assertThat(getUniqueRollbackInfoForPackage(rm.getRecentlyCommittedRollbacks(), Loading @@ -192,7 +192,7 @@ public class StagedRollbackTest { * Stage install an apk with rollback that will be later triggered by unattributable crash. */ @Test public void testNativeWatchdogTriggersRollbackForAll_Phase1() throws Exception { public void testNativeWatchdogTriggersRollbackForAll_Phase1_InstallA() throws Exception { Uninstall.packages(TestApp.A); Install.single(TestApp.A1).commit(); assertThat(InstallUtils.getInstalledVersion(TestApp.A)).isEqualTo(1); Loading @@ -204,7 +204,7 @@ public class StagedRollbackTest { * Verify the rollback is available and then install another package with rollback. */ @Test public void testNativeWatchdogTriggersRollbackForAll_Phase2() throws Exception { public void testNativeWatchdogTriggersRollbackForAll_Phase2_InstallB() throws Exception { assertThat(InstallUtils.getInstalledVersion(TestApp.A)).isEqualTo(2); RollbackManager rm = RollbackUtils.getRollbackManager(); assertThat(getUniqueRollbackInfoForPackage(rm.getAvailableRollbacks(), Loading @@ -222,7 +222,7 @@ public class StagedRollbackTest { * Verify the rollbacks are available. */ @Test public void testNativeWatchdogTriggersRollbackForAll_Phase3() throws Exception { public void testNativeWatchdogTriggersRollbackForAll_Phase3_VerifyInstall() throws Exception { assertThat(InstallUtils.getInstalledVersion(TestApp.A)).isEqualTo(2); assertThat(InstallUtils.getInstalledVersion(TestApp.B)).isEqualTo(2); RollbackManager rm = RollbackUtils.getRollbackManager(); Loading @@ -236,7 +236,7 @@ public class StagedRollbackTest { * Verify the rollbacks are committed after crashing. */ @Test public void testNativeWatchdogTriggersRollbackForAll_Phase4() throws Exception { public void testNativeWatchdogTriggersRollbackForAll_Phase4_VerifyRollback() throws Exception { assertThat(InstallUtils.getInstalledVersion(TestApp.A)).isEqualTo(1); assertThat(InstallUtils.getInstalledVersion(TestApp.B)).isEqualTo(1); RollbackManager rm = RollbackUtils.getRollbackManager(); Loading @@ -247,7 +247,7 @@ public class StagedRollbackTest { } @Test public void testPreviouslyAbandonedRollbacks_Phase1() throws Exception { public void testPreviouslyAbandonedRollbacks_Phase1_InstallAndAbandon() throws Exception { Uninstall.packages(TestApp.A); Install.single(TestApp.A1).commit(); assertThat(InstallUtils.getInstalledVersion(TestApp.A)).isEqualTo(1); Loading @@ -261,7 +261,7 @@ public class StagedRollbackTest { } @Test public void testPreviouslyAbandonedRollbacks_Phase2() throws Exception { public void testPreviouslyAbandonedRollbacks_Phase2_Rollback() throws Exception { assertThat(InstallUtils.getInstalledVersion(TestApp.A)).isEqualTo(2); InstallUtils.processUserData(TestApp.A); Loading @@ -272,7 +272,7 @@ public class StagedRollbackTest { } @Test public void testPreviouslyAbandonedRollbacks_Phase3() throws Exception { public void testPreviouslyAbandonedRollbacks_Phase3_VerifyRollback() throws Exception { assertThat(InstallUtils.getInstalledVersion(TestApp.A)).isEqualTo(1); InstallUtils.processUserData(TestApp.A); Uninstall.packages(TestApp.A); Loading @@ -284,7 +284,7 @@ public class StagedRollbackTest { } @Test public void testRollbackWhitelistedApp_Phase1() throws Exception { public void testRollbackAllowlistedApp_Phase1_Install() throws Exception { // Remove available rollbacks String pkgName = getModuleMetadataPackageName(); RollbackUtils.getRollbackManager().expireRollbackForPackage(pkgName); Loading @@ -296,7 +296,7 @@ public class StagedRollbackTest { Manifest.permission.INSTALL_PACKAGES, Manifest.permission.MANAGE_ROLLBACKS); // Re-install a whitelisted app with rollbacks enabled // Re-install a allowlisted app with rollbacks enabled String filePath = InstrumentationRegistry.getInstrumentation().getContext() .getPackageManager().getPackageInfo(pkgName, 0).applicationInfo.sourceDir; TestApp app = new TestApp("ModuleMetadata", pkgName, -1, false, new File(filePath)); Loading @@ -305,12 +305,12 @@ public class StagedRollbackTest { } @Test public void testRollbackWhitelistedApp_Phase2() throws Exception { public void testRollbackAllowlistedApp_Phase2_VerifyInstall() throws Exception { assertThat(RollbackUtils.getAvailableRollback(getModuleMetadataPackageName())).isNotNull(); } @Test public void testRollbackDataPolicy_Phase1() throws Exception { public void testRollbackDataPolicy_Phase1_Install() throws Exception { Uninstall.packages(TestApp.A, TestApp.B, TestApp.C); Install.multi(TestApp.A1, TestApp.B1, TestApp.C1).commit(); // Write user data version = 1 Loading @@ -328,7 +328,7 @@ public class StagedRollbackTest { } @Test public void testRollbackDataPolicy_Phase2() throws Exception { public void testRollbackDataPolicy_Phase2_Rollback() throws Exception { assertThat(InstallUtils.getInstalledVersion(TestApp.A)).isEqualTo(2); assertThat(InstallUtils.getInstalledVersion(TestApp.B)).isEqualTo(2); // Write user data version = 2 Loading @@ -341,7 +341,7 @@ public class StagedRollbackTest { } @Test public void testRollbackDataPolicy_Phase3() throws Exception { public void testRollbackDataPolicy_Phase3_VerifyRollback() throws Exception { assertThat(InstallUtils.getInstalledVersion(TestApp.A)).isEqualTo(1); assertThat(InstallUtils.getInstalledVersion(TestApp.B)).isEqualTo(1); assertThat(InstallUtils.getInstalledVersion(TestApp.C)).isEqualTo(1); Loading @@ -355,7 +355,7 @@ public class StagedRollbackTest { } @Test public void testCleanUp() throws Exception { public void expireRollbacks() throws Exception { // testNativeWatchdogTriggersRollback will fail if multiple staged sessions are // committed on a device which doesn't support checkpoint. Let's clean up all rollbacks // so there is only one rollback to commit when testing native crashes. Loading @@ -378,7 +378,7 @@ public class StagedRollbackTest { APK_IN_APEX_TESTAPEX_NAME + "_v2Crashing.apex"); @Test public void testRollbackApexWithApk_Phase1() throws Exception { public void testRollbackApexWithApk_Phase1_Install() throws Exception { assertThat(InstallUtils.getInstalledVersion(TestApp.A)).isEqualTo(1); InstallUtils.processUserData(TestApp.A); Loading @@ -388,7 +388,7 @@ public class StagedRollbackTest { } @Test public void testRollbackApexWithApk_Phase2() throws Exception { public void testRollbackApexWithApk_Phase2_Rollback() throws Exception { assertThat(InstallUtils.getInstalledVersion(APK_IN_APEX_TESTAPEX_NAME)).isEqualTo(2); assertThat(InstallUtils.getInstalledVersion(TestApp.A)).isEqualTo(2); InstallUtils.processUserData(TestApp.A); Loading Loading @@ -416,7 +416,7 @@ public class StagedRollbackTest { } @Test public void testRollbackApexWithApk_Phase3() throws Exception { public void testRollbackApexWithApk_Phase3_VerifyRollback() throws Exception { assertThat(InstallUtils.getInstalledVersion(APK_IN_APEX_TESTAPEX_NAME)).isEqualTo(1); assertThat(InstallUtils.getInstalledVersion(TestApp.A)).isEqualTo(1); InstallUtils.processUserData(TestApp.A); Loading @@ -426,7 +426,7 @@ public class StagedRollbackTest { * Installs an apex with an apk that can crash. */ @Test public void testRollbackApexWithApkCrashing_Phase1() throws Exception { public void testRollbackApexWithApkCrashing_Phase1_Install() throws Exception { assertThat(InstallUtils.getInstalledVersion(TestApp.A)).isEqualTo(1); int sessionId = Install.single(TEST_APEX_WITH_APK_V2_CRASHING).setStaged() .setEnableRollback().commit(); Loading @@ -437,7 +437,7 @@ public class StagedRollbackTest { * Verifies rollback has been enabled successfully. Then makes TestApp.A crash. */ @Test public void testRollbackApexWithApkCrashing_Phase2() throws Exception { public void testRollbackApexWithApkCrashing_Phase2_Crash() throws Exception { assertThat(InstallUtils.getInstalledVersion(APK_IN_APEX_TESTAPEX_NAME)).isEqualTo(2); assertThat(InstallUtils.getInstalledVersion(TestApp.A)).isEqualTo(2); Loading @@ -452,20 +452,20 @@ public class StagedRollbackTest { } @Test public void testRollbackApexWithApkCrashing_Phase3() throws Exception { public void testRollbackApexWithApkCrashing_Phase3_VerifyRollback() throws Exception { assertThat(InstallUtils.getInstalledVersion(APK_IN_APEX_TESTAPEX_NAME)).isEqualTo(1); assertThat(InstallUtils.getInstalledVersion(TestApp.A)).isEqualTo(1); } @Test public void testRollbackApexDataDirectories_Phase1() throws Exception { public void testRollbackApexDataDirectories_Phase1_Install() throws Exception { int sessionId = Install.single(TEST_APEX_WITH_APK_V2).setStaged().setEnableRollback() .commit(); InstallUtils.waitForSessionReady(sessionId); } @Test public void testRollbackApexDataDirectories_Phase2() throws Exception { public void testRollbackApexDataDirectories_Phase2_Rollback() throws Exception { RollbackInfo available = RollbackUtils.getAvailableRollback(APK_IN_APEX_TESTAPEX_NAME); RollbackUtils.rollback(available.getRollbackId(), TEST_APEX_WITH_APK_V2); Loading @@ -477,19 +477,19 @@ public class StagedRollbackTest { } @Test public void testRollbackApkDataDirectories_Phase1() throws Exception { public void testRollbackApkDataDirectories_Phase1_InstallV1() throws Exception { assertThat(InstallUtils.getInstalledVersion(TestApp.A)).isEqualTo(-1); Install.single(TestApp.A1).commit(); assertThat(InstallUtils.getInstalledVersion(TestApp.A)).isEqualTo(1); } @Test public void testRollbackApkDataDirectories_Phase2() throws Exception { public void testRollbackApkDataDirectories_Phase2_InstallV2() throws Exception { Install.single(TestApp.A2).setStaged().setEnableRollback().commit(); } @Test public void testRollbackApkDataDirectories_Phase3() throws Exception { public void testRollbackApkDataDirectories_Phase3_Rollback() throws Exception { RollbackInfo available = RollbackUtils.getAvailableRollback(TestApp.A); RollbackUtils.rollback(available.getRollbackId(), TestApp.A2); RollbackInfo committed = RollbackUtils.getCommittedRollbackById(available.getRollbackId()); Loading
tests/RollbackTest/StagedRollbackTest/src/com/android/tests/rollback/host/StagedRollbackTest.java +40 −40 Original line number Diff line number Diff line Loading @@ -97,14 +97,14 @@ public class StagedRollbackTest extends BaseHostJUnit4Test { public void setUp() throws Exception { deleteFiles("/system/apex/" + APK_IN_APEX_TESTAPEX_NAME + "*.apex", "/data/apex/active/" + APK_IN_APEX_TESTAPEX_NAME + "*.apex"); runPhase("testCleanUp"); runPhase("expireRollbacks"); mLogger.start(getDevice()); } @After public void tearDown() throws Exception { mLogger.stop(); runPhase("testCleanUp"); runPhase("expireRollbacks"); deleteFiles("/system/apex/" + APK_IN_APEX_TESTAPEX_NAME + "*.apex", "/data/apex/active/" + APK_IN_APEX_TESTAPEX_NAME + "*.apex", apexDataDirDeSys(APK_IN_APEX_TESTAPEX_NAME) + "*", Loading Loading @@ -144,17 +144,17 @@ public class StagedRollbackTest extends BaseHostJUnit4Test { */ @Test public void testBadApkOnly() throws Exception { runPhase("testBadApkOnly_Phase1"); runPhase("testBadApkOnly_Phase1_Install"); getDevice().reboot(); runPhase("testBadApkOnly_Phase2"); runPhase("testBadApkOnly_Phase2_VerifyInstall"); // Trigger rollback and wait for reboot to happen runPhase("testBadApkOnly_Phase3"); runPhase("testBadApkOnly_Phase3_Crash"); assertThat(getDevice().waitForDeviceNotAvailable(TimeUnit.MINUTES.toMillis(2))).isTrue(); getDevice().waitForDeviceAvailable(); runPhase("testBadApkOnly_Phase4"); runPhase("testBadApkOnly_Phase4_VerifyRollback"); assertThat(mLogger).eventOccurred(ROLLBACK_INITIATE, null, REASON_APP_CRASH, TESTAPP_A); assertThat(mLogger).eventOccurred(ROLLBACK_BOOT_TRIGGERED, null, null, null); Loading @@ -163,12 +163,12 @@ public class StagedRollbackTest extends BaseHostJUnit4Test { @Test public void testNativeWatchdogTriggersRollback() throws Exception { runPhase("testNativeWatchdogTriggersRollback_Phase1"); runPhase("testNativeWatchdogTriggersRollback_Phase1_Install"); // Reboot device to activate staged package getDevice().reboot(); runPhase("testNativeWatchdogTriggersRollback_Phase2"); runPhase("testNativeWatchdogTriggersRollback_Phase2_VerifyInstall"); // crash system_server enough times to trigger a rollback crashProcess("system_server", NATIVE_CRASHES_THRESHOLD); Loading @@ -185,7 +185,7 @@ public class StagedRollbackTest extends BaseHostJUnit4Test { getDevice().waitForDeviceAvailable(); // verify rollback committed runPhase("testNativeWatchdogTriggersRollback_Phase3"); runPhase("testNativeWatchdogTriggersRollback_Phase3_VerifyRollback"); assertThat(mLogger).eventOccurred(ROLLBACK_INITIATE, null, REASON_NATIVE_CRASH, null); assertThat(mLogger).eventOccurred(ROLLBACK_BOOT_TRIGGERED, null, null, null); Loading @@ -198,15 +198,15 @@ public class StagedRollbackTest extends BaseHostJUnit4Test { assumeTrue(isCheckpointSupported()); // Install a package with rollback enabled. runPhase("testNativeWatchdogTriggersRollbackForAll_Phase1"); runPhase("testNativeWatchdogTriggersRollbackForAll_Phase1_InstallA"); getDevice().reboot(); // Once previous staged install is applied, install another package runPhase("testNativeWatchdogTriggersRollbackForAll_Phase2"); runPhase("testNativeWatchdogTriggersRollbackForAll_Phase2_InstallB"); getDevice().reboot(); // Verify the new staged install has also been applied successfully. runPhase("testNativeWatchdogTriggersRollbackForAll_Phase3"); runPhase("testNativeWatchdogTriggersRollbackForAll_Phase3_VerifyInstall"); // crash system_server enough times to trigger a rollback crashProcess("system_server", NATIVE_CRASHES_THRESHOLD); Loading @@ -223,7 +223,7 @@ public class StagedRollbackTest extends BaseHostJUnit4Test { getDevice().waitForDeviceAvailable(); // verify all available rollbacks have been committed runPhase("testNativeWatchdogTriggersRollbackForAll_Phase4"); runPhase("testNativeWatchdogTriggersRollbackForAll_Phase4_VerifyRollback"); assertThat(mLogger).eventOccurred(ROLLBACK_INITIATE, null, REASON_NATIVE_CRASH, null); assertThat(mLogger).eventOccurred(ROLLBACK_BOOT_TRIGGERED, null, null, null); Loading @@ -235,33 +235,33 @@ public class StagedRollbackTest extends BaseHostJUnit4Test { */ @Test public void testPreviouslyAbandonedRollbacks() throws Exception { runPhase("testPreviouslyAbandonedRollbacks_Phase1"); runPhase("testPreviouslyAbandonedRollbacks_Phase1_InstallAndAbandon"); getDevice().reboot(); runPhase("testPreviouslyAbandonedRollbacks_Phase2"); runPhase("testPreviouslyAbandonedRollbacks_Phase2_Rollback"); getDevice().reboot(); runPhase("testPreviouslyAbandonedRollbacks_Phase3"); runPhase("testPreviouslyAbandonedRollbacks_Phase3_VerifyRollback"); } /** * Tests we can enable rollback for a whitelisted app. * Tests we can enable rollback for a allowlisted app. */ @Test public void testRollbackWhitelistedApp() throws Exception { public void testRollbackAllowlistedApp() throws Exception { assumeTrue(hasMainlineModule()); runPhase("testRollbackWhitelistedApp_Phase1"); runPhase("testRollbackAllowlistedApp_Phase1_Install"); getDevice().reboot(); runPhase("testRollbackWhitelistedApp_Phase2"); runPhase("testRollbackAllowlistedApp_Phase2_VerifyInstall"); } @Test public void testRollbackDataPolicy() throws Exception { List<String> before = getSnapshotDirectories("/data/misc_ce/0/rollback"); runPhase("testRollbackDataPolicy_Phase1"); runPhase("testRollbackDataPolicy_Phase1_Install"); getDevice().reboot(); runPhase("testRollbackDataPolicy_Phase2"); runPhase("testRollbackDataPolicy_Phase2_Rollback"); getDevice().reboot(); runPhase("testRollbackDataPolicy_Phase3"); runPhase("testRollbackDataPolicy_Phase3_VerifyRollback"); // Verify snapshots are deleted after restoration List<String> after = getSnapshotDirectories("/data/misc_ce/0/rollback"); Loading @@ -279,11 +279,11 @@ public class StagedRollbackTest extends BaseHostJUnit4Test { public void testRollbackApexWithApk() throws Exception { getDevice().uninstallPackage("com.android.cts.install.lib.testapp.A"); pushTestApex(); runPhase("testRollbackApexWithApk_Phase1"); runPhase("testRollbackApexWithApk_Phase1_Install"); getDevice().reboot(); runPhase("testRollbackApexWithApk_Phase2"); runPhase("testRollbackApexWithApk_Phase2_Rollback"); getDevice().reboot(); runPhase("testRollbackApexWithApk_Phase3"); runPhase("testRollbackApexWithApk_Phase3_VerifyRollback"); } /** Loading @@ -295,15 +295,15 @@ public class StagedRollbackTest extends BaseHostJUnit4Test { pushTestApex(); // Install an apex with apk that crashes runPhase("testRollbackApexWithApkCrashing_Phase1"); runPhase("testRollbackApexWithApkCrashing_Phase1_Install"); getDevice().reboot(); // Verify apex was installed and then crash the apk runPhase("testRollbackApexWithApkCrashing_Phase2"); runPhase("testRollbackApexWithApkCrashing_Phase2_Crash"); // Wait for crash to trigger rollback assertThat(getDevice().waitForDeviceNotAvailable(TimeUnit.MINUTES.toMillis(5))).isTrue(); getDevice().waitForDeviceAvailable(); // Verify rollback occurred due to crash of apk-in-apex runPhase("testRollbackApexWithApkCrashing_Phase3"); runPhase("testRollbackApexWithApkCrashing_Phase3_VerifyRollback"); assertThat(mLogger).eventOccurred(ROLLBACK_INITIATE, null, REASON_APP_CRASH, TESTAPP_A); assertThat(mLogger).eventOccurred(ROLLBACK_BOOT_TRIGGERED, null, null, null); Loading @@ -328,7 +328,7 @@ public class StagedRollbackTest extends BaseHostJUnit4Test { }); // Install new version of the APEX with rollback enabled runPhase("testRollbackApexDataDirectories_Phase1"); runPhase("testRollbackApexDataDirectories_Phase1_Install"); getDevice().reboot(); // Replace files in data directory Loading @@ -343,7 +343,7 @@ public class StagedRollbackTest extends BaseHostJUnit4Test { }); // Roll back the APEX runPhase("testRollbackApexDataDirectories_Phase2"); runPhase("testRollbackApexDataDirectories_Phase2_Rollback"); getDevice().reboot(); // Verify that old files have been restored and new files are gone Loading Loading @@ -382,7 +382,7 @@ public class StagedRollbackTest extends BaseHostJUnit4Test { }); // Install new version of the APEX with rollback enabled runPhase("testRollbackApexDataDirectories_Phase1"); runPhase("testRollbackApexDataDirectories_Phase1_Install"); getDevice().reboot(); // Replace files in data directory Loading @@ -398,7 +398,7 @@ public class StagedRollbackTest extends BaseHostJUnit4Test { }); // Roll back the APEX runPhase("testRollbackApexDataDirectories_Phase2"); runPhase("testRollbackApexDataDirectories_Phase2_Rollback"); getDevice().reboot(); // Verify that old files have been restored and new files are gone Loading Loading @@ -436,7 +436,7 @@ public class StagedRollbackTest extends BaseHostJUnit4Test { }); // Install new version of the APEX with rollback enabled runPhase("testRollbackApexDataDirectories_Phase1"); runPhase("testRollbackApexDataDirectories_Phase1_Install"); getDevice().reboot(); // Replace files in data directory Loading @@ -451,7 +451,7 @@ public class StagedRollbackTest extends BaseHostJUnit4Test { }); // Roll back the APEX runPhase("testRollbackApexDataDirectories_Phase2"); runPhase("testRollbackApexDataDirectories_Phase2_Rollback"); getDevice().reboot(); // Verify that old files have been restored and new files are gone Loading @@ -477,7 +477,7 @@ public class StagedRollbackTest extends BaseHostJUnit4Test { @Test public void testRollbackApkDataDirectories_De() throws Exception { // Install version 1 of TESTAPP_A runPhase("testRollbackApkDataDirectories_Phase1"); runPhase("testRollbackApkDataDirectories_Phase1_InstallV1"); // Push files to apk data directory String oldFilePath1 = apkDataDirDe(TESTAPP_A, 0) + "/" + TEST_FILENAME_1; Loading @@ -488,7 +488,7 @@ public class StagedRollbackTest extends BaseHostJUnit4Test { }); // Install version 2 of TESTAPP_A with rollback enabled runPhase("testRollbackApkDataDirectories_Phase2"); runPhase("testRollbackApkDataDirectories_Phase2_InstallV2"); getDevice().reboot(); // Replace files in data directory Loading @@ -502,7 +502,7 @@ public class StagedRollbackTest extends BaseHostJUnit4Test { }); // Roll back the APK runPhase("testRollbackApkDataDirectories_Phase3"); runPhase("testRollbackApkDataDirectories_Phase3_Rollback"); getDevice().reboot(); // Verify that old files have been restored and new files are gone Loading @@ -529,7 +529,7 @@ public class StagedRollbackTest extends BaseHostJUnit4Test { }); // Install new version of the APEX with rollback enabled runPhase("testRollbackApexDataDirectories_Phase1"); runPhase("testRollbackApexDataDirectories_Phase1_Install"); getDevice().reboot(); List<String> after = getSnapshotDirectories("/data/misc_ce/0/apexrollback"); Loading @@ -538,7 +538,7 @@ public class StagedRollbackTest extends BaseHostJUnit4Test { // There should be only one /data/misc_ce/0/apexrollback/<rollbackId> created during test assertThat(after).hasSize(1); // Expire all rollbacks and check CE snapshot directories are deleted runPhase("testCleanUp"); runPhase("expireRollbacks"); runAsRoot(() -> { for (String dir : after) { assertThat(getDevice().getFileEntry(dir)).isNull(); Loading