Merge "Clean up the rollback when test is done"

This commit is contained in:
JW Wang
2019-12-31 03:35:00 +00:00
committed by Android (Google) Code Review
2 changed files with 21 additions and 3 deletions

View File

@@ -185,6 +185,12 @@ public class StagedRollbackTest {
*/
@Test
public void testNativeWatchdogTriggersRollback_Phase1() throws Exception {
// When multiple staged sessions are installed on a device which doesn't support checkpoint,
// only the 1st one will prevail. We have to check no other rollbacks available to ensure
// TestApp.A is always the 1st and the only one to commit so rollback can work as intended.
// If there are leftover rollbacks from previous tests, this assertion will fail.
assertThat(RollbackUtils.getRollbackManager().getAvailableRollbacks()).isEmpty();
Uninstall.packages(TestApp.A);
Install.single(TestApp.A1).commit();
assertThat(InstallUtils.getInstalledVersion(TestApp.A)).isEqualTo(1);
@@ -373,6 +379,11 @@ public class StagedRollbackTest {
assertThat(RollbackUtils.getAvailableRollback(getModuleMetadataPackageName())).isNotNull();
}
@Test
public void testRollbackWhitelistedApp_cleanUp() throws Exception {
RollbackUtils.getRollbackManager().expireRollbackForPackage(getModuleMetadataPackageName());
}
private static void runShellCommand(String cmd) {
ParcelFileDescriptor pfd = InstrumentationRegistry.getInstrumentation().getUiAutomation()
.executeShellCommand(cmd);

View File

@@ -180,9 +180,16 @@ public class StagedRollbackTest extends BaseHostJUnit4Test {
*/
@Test
public void testRollbackWhitelistedApp() throws Exception {
runPhase("testRollbackWhitelistedApp_Phase1");
getDevice().reboot();
runPhase("testRollbackWhitelistedApp_Phase2");
try {
runPhase("testRollbackWhitelistedApp_Phase1");
getDevice().reboot();
runPhase("testRollbackWhitelistedApp_Phase2");
} finally {
// testNativeWatchdogTriggersRollback will fail if multiple staged sessions are
// committed on a device which doesn't support checkpoint. Let's clean up the rollback
// so there is only one rollback to commit when testing native crashes.
runPhase("testRollbackWhitelistedApp_cleanUp");
}
}
private void crashProcess(String processName, int numberOfCrashes) throws Exception {