diff options
2 files changed, 35 insertions, 33 deletions
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 9e6ac8ef679b..8b97f616b1a8 100644 --- a/tests/RollbackTest/RollbackTest/src/com/android/tests/rollback/StagedRollbackTest.java +++ b/tests/RollbackTest/RollbackTest/src/com/android/tests/rollback/StagedRollbackTest.java @@ -92,7 +92,7 @@ public class StagedRollbackTest { * Enable rollback phase. */ @Test - public void testBadApkOnlyEnableRollback() throws Exception { + public void testBadApkOnly_Phase1() throws Exception { Uninstall.packages(TestApp.A); assertThat(InstallUtils.getInstalledVersion(TestApp.A)).isEqualTo(-1); @@ -101,9 +101,6 @@ public class StagedRollbackTest { InstallUtils.processUserData(TestApp.A); Install.single(TestApp.ACrashing2).setEnableRollback().setStaged().commit(); - - // At this point, the host test driver will reboot the device and run - // testBadApkOnlyConfirmEnableRollback(). } /** @@ -111,7 +108,7 @@ public class StagedRollbackTest { * Confirm that rollback was successfully enabled. */ @Test - public void testBadApkOnlyConfirmEnableRollback() throws Exception { + public void testBadApkOnly_Phase2() throws Exception { assertThat(InstallUtils.getInstalledVersion(TestApp.A)).isEqualTo(2); InstallUtils.processUserData(TestApp.A); @@ -122,9 +119,6 @@ public class StagedRollbackTest { assertThat(rollback).packagesContainsExactly( Rollback.from(TestApp.A2).to(TestApp.A1)); assertThat(rollback.isStaged()).isTrue(); - - // At this point, the host test driver will run - // testBadApkOnlyTriggerRollback(). } /** @@ -133,15 +127,14 @@ public class StagedRollbackTest { * rebooting the test out from under it. */ @Test - public void testBadApkOnlyTriggerRollback() throws Exception { + public void testBadApkOnly_Phase3() throws Exception { // Crash TestApp.A PackageWatchdog#TRIGGER_FAILURE_COUNT times to trigger rollback RollbackUtils.sendCrashBroadcast(TestApp.A, 5); - // We expect the device to be rebooted automatically. Wait for that to - // happen. At that point, the host test driver will wait for the - // device to come back up and run testApkOnlyConfirmRollback(). + // We expect the device to be rebooted automatically. Wait for that to happen. Thread.sleep(30 * 1000); + // Raise an error anyway if reboot didn't happen. fail("watchdog did not trigger reboot"); } @@ -150,7 +143,7 @@ public class StagedRollbackTest { * Confirm rollback phase. */ @Test - public void testBadApkOnlyConfirmRollback() throws Exception { + public void testBadApkOnly_Phase4() throws Exception { assertThat(InstallUtils.getInstalledVersion(TestApp.A)).isEqualTo(1); InstallUtils.processUserData(TestApp.A); @@ -177,8 +170,11 @@ public class StagedRollbackTest { networkStack)).isNull(); } + /** + * Stage install ModuleMetadata package to simulate a Mainline module update. + */ @Test - public void installModuleMetadataPackage() throws Exception { + public void testNativeWatchdogTriggersRollback_Phase1() throws Exception { resetModuleMetadataPackage(); Context context = InstrumentationRegistry.getContext(); PackageInfo metadataPackageInfo = context.getPackageManager().getPackageInfo( @@ -192,39 +188,45 @@ public class StagedRollbackTest { + metadataApkPath); } + /** + * Verify the rollback is available. + */ @Test - public void assertNetworkStackRollbackAvailable() throws Exception { + public void testNativeWatchdogTriggersRollback_Phase2() throws Exception { RollbackManager rm = RollbackUtils.getRollbackManager(); assertThat(getUniqueRollbackInfoForPackage(rm.getAvailableRollbacks(), - getNetworkStackPackageName())).isNotNull(); + MODULE_META_DATA_PACKAGE)).isNotNull(); } + /** + * Verify the rollback is committed after crashing. + */ @Test - public void assertNetworkStackRollbackCommitted() throws Exception { + public void testNativeWatchdogTriggersRollback_Phase3() throws Exception { RollbackManager rm = RollbackUtils.getRollbackManager(); assertThat(getUniqueRollbackInfoForPackage(rm.getRecentlyCommittedRollbacks(), - getNetworkStackPackageName())).isNotNull(); + MODULE_META_DATA_PACKAGE)).isNotNull(); } @Test - public void assertNoNetworkStackRollbackCommitted() throws Exception { + public void assertNetworkStackRollbackAvailable() throws Exception { RollbackManager rm = RollbackUtils.getRollbackManager(); - assertThat(getUniqueRollbackInfoForPackage(rm.getRecentlyCommittedRollbacks(), - getNetworkStackPackageName())).isNull(); + assertThat(getUniqueRollbackInfoForPackage(rm.getAvailableRollbacks(), + getNetworkStackPackageName())).isNotNull(); } @Test - public void assertModuleMetadataRollbackAvailable() throws Exception { + public void assertNetworkStackRollbackCommitted() throws Exception { RollbackManager rm = RollbackUtils.getRollbackManager(); - assertThat(getUniqueRollbackInfoForPackage(rm.getAvailableRollbacks(), - MODULE_META_DATA_PACKAGE)).isNotNull(); + assertThat(getUniqueRollbackInfoForPackage(rm.getRecentlyCommittedRollbacks(), + getNetworkStackPackageName())).isNotNull(); } @Test - public void assertModuleMetadataRollbackCommitted() throws Exception { + public void assertNoNetworkStackRollbackCommitted() throws Exception { RollbackManager rm = RollbackUtils.getRollbackManager(); assertThat(getUniqueRollbackInfoForPackage(rm.getRecentlyCommittedRollbacks(), - MODULE_META_DATA_PACKAGE)).isNotNull(); + getNetworkStackPackageName())).isNull(); } private String getNetworkStackPackageName() { 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 bc98f06ebc56..20430274d074 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 @@ -68,35 +68,35 @@ public class StagedRollbackTest extends BaseHostJUnit4Test { */ @Test public void testBadApkOnly() throws Exception { - runPhase("testBadApkOnlyEnableRollback"); + runPhase("testBadApkOnly_Phase1"); getDevice().reboot(); - runPhase("testBadApkOnlyConfirmEnableRollback"); + runPhase("testBadApkOnly_Phase2"); try { // This is expected to fail due to the device being rebooted out // from underneath the test. If this fails for reasons other than // the device reboot, those failures should result in failure of // the testApkOnlyConfirmRollback phase. CLog.logAndDisplay(LogLevel.INFO, "testBadApkOnlyTriggerRollback is expected to fail"); - runPhase("testBadApkOnlyTriggerRollback"); + runPhase("testBadApkOnly_Phase3"); } catch (AssertionError e) { // AssertionError is expected. } getDevice().waitForDeviceAvailable(); - runPhase("testBadApkOnlyConfirmRollback"); + runPhase("testBadApkOnly_Phase4"); } @Test public void testNativeWatchdogTriggersRollback() throws Exception { //Stage install ModuleMetadata package - this simulates a Mainline module update - runPhase("installModuleMetadataPackage"); + runPhase("testNativeWatchdogTriggersRollback_Phase1"); // Reboot device to activate staged package getDevice().reboot(); getDevice().waitForDeviceAvailable(); - runPhase("assertModuleMetadataRollbackAvailable"); + runPhase("testNativeWatchdogTriggersRollback_Phase2"); // crash system_server enough times to trigger a rollback crashProcess("system_server", NATIVE_CRASHES_THRESHOLD); @@ -113,7 +113,7 @@ public class StagedRollbackTest extends BaseHostJUnit4Test { getDevice().waitForDeviceAvailable(); // verify rollback committed - runPhase("assertModuleMetadataRollbackCommitted"); + runPhase("testNativeWatchdogTriggersRollback_Phase3"); } /** |