Merge "Clean up rollbacks and test apps" into rvc-dev am: babc302595 am: c9d61439d2
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/11716087 Change-Id: Idad7d9e7c82c4cb9b300ff8ccc9b695e767c3249
This commit is contained in:
@@ -15,6 +15,12 @@
|
|||||||
-->
|
-->
|
||||||
<configuration description="Runs rollback tests for multiple users">
|
<configuration description="Runs rollback tests for multiple users">
|
||||||
<option name="test-suite-tag" value="MultiUserRollbackTest" />
|
<option name="test-suite-tag" value="MultiUserRollbackTest" />
|
||||||
|
<target_preparer class="com.android.tradefed.targetprep.RunCommandTargetPreparer">
|
||||||
|
<option name="run-command" value="pm uninstall com.android.cts.install.lib.testapp.A" />
|
||||||
|
<option name="run-command" value="pm uninstall com.android.cts.install.lib.testapp.B" />
|
||||||
|
<option name="teardown-command" value="pm uninstall com.android.cts.install.lib.testapp.A" />
|
||||||
|
<option name="teardown-command" value="pm uninstall com.android.cts.install.lib.testapp.B" />
|
||||||
|
</target_preparer>
|
||||||
<test class="com.android.tradefed.testtype.HostTest" >
|
<test class="com.android.tradefed.testtype.HostTest" >
|
||||||
<option name="class" value="com.android.tests.rollback.host.MultiUserRollbackTest" />
|
<option name="class" value="com.android.tests.rollback.host.MultiUserRollbackTest" />
|
||||||
</test>
|
</test>
|
||||||
|
|||||||
@@ -40,23 +40,18 @@ public class MultiUserRollbackTest extends BaseHostJUnit4Test {
|
|||||||
private static final long SWITCH_USER_COMPLETED_NUMBER_OF_POLLS = 60;
|
private static final long SWITCH_USER_COMPLETED_NUMBER_OF_POLLS = 60;
|
||||||
private static final long SWITCH_USER_COMPLETED_POLL_INTERVAL_IN_MILLIS = 1000;
|
private static final long SWITCH_USER_COMPLETED_POLL_INTERVAL_IN_MILLIS = 1000;
|
||||||
|
|
||||||
private void cleanUp() throws Exception {
|
|
||||||
getDevice().executeShellCommand("pm rollback-app com.android.cts.install.lib.testapp.A");
|
|
||||||
getDevice().executeShellCommand("pm uninstall com.android.cts.install.lib.testapp.A");
|
|
||||||
}
|
|
||||||
|
|
||||||
@After
|
@After
|
||||||
public void tearDown() throws Exception {
|
public void tearDown() throws Exception {
|
||||||
cleanUp();
|
|
||||||
removeSecondaryUserIfNecessary();
|
removeSecondaryUserIfNecessary();
|
||||||
|
runPhaseForUsers("cleanUp", mOriginalUserId);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void setup() throws Exception {
|
public void setup() throws Exception {
|
||||||
cleanUp();
|
|
||||||
mOriginalUserId = getDevice().getCurrentUser();
|
mOriginalUserId = getDevice().getCurrentUser();
|
||||||
createAndStartSecondaryUser();
|
createAndStartSecondaryUser();
|
||||||
installPackage("RollbackTest.apk", "--user all");
|
installPackage("RollbackTest.apk", "--user all");
|
||||||
|
runPhaseForUsers("cleanUp", mOriginalUserId);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|||||||
@@ -59,12 +59,14 @@ public class NetworkStagedRollbackTest extends BaseHostJUnit4Test {
|
|||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void setUp() throws Exception {
|
public void setUp() throws Exception {
|
||||||
|
runPhase("cleanUp");
|
||||||
mLogger.start(getDevice());
|
mLogger.start(getDevice());
|
||||||
}
|
}
|
||||||
|
|
||||||
@After
|
@After
|
||||||
public void tearDown() throws Exception {
|
public void tearDown() throws Exception {
|
||||||
mLogger.stop();
|
mLogger.stop();
|
||||||
|
runPhase("cleanUp");
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ import static com.google.common.truth.Truth.assertThat;
|
|||||||
|
|
||||||
import android.Manifest;
|
import android.Manifest;
|
||||||
import android.content.rollback.RollbackInfo;
|
import android.content.rollback.RollbackInfo;
|
||||||
|
import android.content.rollback.RollbackManager;
|
||||||
|
|
||||||
import com.android.cts.install.lib.Install;
|
import com.android.cts.install.lib.Install;
|
||||||
import com.android.cts.install.lib.InstallUtils;
|
import com.android.cts.install.lib.InstallUtils;
|
||||||
@@ -53,6 +54,17 @@ public class MultiUserRollbackTest {
|
|||||||
InstallUtils.dropShellPermissionIdentity();
|
InstallUtils.dropShellPermissionIdentity();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void cleanUp() {
|
||||||
|
RollbackManager rm = RollbackUtils.getRollbackManager();
|
||||||
|
rm.getAvailableRollbacks().stream().flatMap(info -> info.getPackages().stream())
|
||||||
|
.map(info -> info.getPackageName()).forEach(rm::expireRollbackForPackage);
|
||||||
|
rm.getRecentlyCommittedRollbacks().stream().flatMap(info -> info.getPackages().stream())
|
||||||
|
.map(info -> info.getPackageName()).forEach(rm::expireRollbackForPackage);
|
||||||
|
assertThat(rm.getAvailableRollbacks()).isEmpty();
|
||||||
|
assertThat(rm.getRecentlyCommittedRollbacks()).isEmpty();
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testBasic() throws Exception {
|
public void testBasic() throws Exception {
|
||||||
new RollbackTest().testBasic();
|
new RollbackTest().testBasic();
|
||||||
|
|||||||
@@ -19,6 +19,8 @@ package com.android.tests.rollback;
|
|||||||
import static com.android.cts.rollback.lib.RollbackInfoSubject.assertThat;
|
import static com.android.cts.rollback.lib.RollbackInfoSubject.assertThat;
|
||||||
import static com.android.cts.rollback.lib.RollbackUtils.getUniqueRollbackInfoForPackage;
|
import static com.android.cts.rollback.lib.RollbackUtils.getUniqueRollbackInfoForPackage;
|
||||||
|
|
||||||
|
import static com.google.common.truth.Truth.assertThat;
|
||||||
|
|
||||||
import android.Manifest;
|
import android.Manifest;
|
||||||
import android.content.ComponentName;
|
import android.content.ComponentName;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
@@ -90,15 +92,24 @@ public class NetworkStagedRollbackTest {
|
|||||||
InstallUtils.dropShellPermissionIdentity();
|
InstallUtils.dropShellPermissionIdentity();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void cleanUp() {
|
||||||
|
RollbackManager rm = RollbackUtils.getRollbackManager();
|
||||||
|
rm.getAvailableRollbacks().stream().flatMap(info -> info.getPackages().stream())
|
||||||
|
.map(info -> info.getPackageName()).forEach(rm::expireRollbackForPackage);
|
||||||
|
rm.getRecentlyCommittedRollbacks().stream().flatMap(info -> info.getPackages().stream())
|
||||||
|
.map(info -> info.getPackageName()).forEach(rm::expireRollbackForPackage);
|
||||||
|
assertThat(rm.getAvailableRollbacks()).isEmpty();
|
||||||
|
assertThat(rm.getRecentlyCommittedRollbacks()).isEmpty();
|
||||||
|
uninstallNetworkStackPackage();
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testNetworkFailedRollback_Phase1() throws Exception {
|
public void testNetworkFailedRollback_Phase1() throws Exception {
|
||||||
// Remove available rollbacks and uninstall NetworkStack on /data/
|
// Remove available rollbacks and uninstall NetworkStack on /data/
|
||||||
RollbackManager rm = RollbackUtils.getRollbackManager();
|
RollbackManager rm = RollbackUtils.getRollbackManager();
|
||||||
String networkStack = getNetworkStackPackageName();
|
String networkStack = getNetworkStackPackageName();
|
||||||
|
|
||||||
rm.expireRollbackForPackage(networkStack);
|
|
||||||
uninstallNetworkStackPackage();
|
|
||||||
|
|
||||||
assertThat(getUniqueRollbackInfoForPackage(rm.getAvailableRollbacks(),
|
assertThat(getUniqueRollbackInfoForPackage(rm.getAvailableRollbacks(),
|
||||||
networkStack)).isNull();
|
networkStack)).isNull();
|
||||||
|
|
||||||
@@ -153,9 +164,6 @@ public class NetworkStagedRollbackTest {
|
|||||||
RollbackManager rm = RollbackUtils.getRollbackManager();
|
RollbackManager rm = RollbackUtils.getRollbackManager();
|
||||||
String networkStack = getNetworkStackPackageName();
|
String networkStack = getNetworkStackPackageName();
|
||||||
|
|
||||||
rm.expireRollbackForPackage(networkStack);
|
|
||||||
uninstallNetworkStackPackage();
|
|
||||||
|
|
||||||
assertThat(getUniqueRollbackInfoForPackage(rm.getAvailableRollbacks(),
|
assertThat(getUniqueRollbackInfoForPackage(rm.getAvailableRollbacks(),
|
||||||
networkStack)).isNull();
|
networkStack)).isNull();
|
||||||
|
|
||||||
|
|||||||
@@ -48,6 +48,8 @@ import com.android.cts.rollback.lib.Rollback;
|
|||||||
import com.android.cts.rollback.lib.RollbackBroadcastReceiver;
|
import com.android.cts.rollback.lib.RollbackBroadcastReceiver;
|
||||||
import com.android.cts.rollback.lib.RollbackUtils;
|
import com.android.cts.rollback.lib.RollbackUtils;
|
||||||
|
|
||||||
|
import org.junit.After;
|
||||||
|
import org.junit.Before;
|
||||||
import org.junit.Ignore;
|
import org.junit.Ignore;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.junit.runner.RunWith;
|
import org.junit.runner.RunWith;
|
||||||
@@ -81,6 +83,21 @@ public class RollbackTest {
|
|||||||
pri -> packageName.equals(pri.getPackageName())));
|
pri -> packageName.equals(pri.getPackageName())));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Before
|
||||||
|
@After
|
||||||
|
public void cleanUp() {
|
||||||
|
try {
|
||||||
|
InstallUtils.adoptShellPermissionIdentity(Manifest.permission.TEST_MANAGE_ROLLBACKS);
|
||||||
|
RollbackManager rm = RollbackUtils.getRollbackManager();
|
||||||
|
rm.getAvailableRollbacks().stream().flatMap(info -> info.getPackages().stream())
|
||||||
|
.map(info -> info.getPackageName()).forEach(rm::expireRollbackForPackage);
|
||||||
|
rm.getRecentlyCommittedRollbacks().stream().flatMap(info -> info.getPackages().stream())
|
||||||
|
.map(info -> info.getPackageName()).forEach(rm::expireRollbackForPackage);
|
||||||
|
} finally {
|
||||||
|
InstallUtils.dropShellPermissionIdentity();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Test basic rollbacks.
|
* Test basic rollbacks.
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -360,7 +360,10 @@ public class StagedRollbackTest {
|
|||||||
RollbackManager rm = RollbackUtils.getRollbackManager();
|
RollbackManager rm = RollbackUtils.getRollbackManager();
|
||||||
rm.getAvailableRollbacks().stream().flatMap(info -> info.getPackages().stream())
|
rm.getAvailableRollbacks().stream().flatMap(info -> info.getPackages().stream())
|
||||||
.map(info -> info.getPackageName()).forEach(rm::expireRollbackForPackage);
|
.map(info -> info.getPackageName()).forEach(rm::expireRollbackForPackage);
|
||||||
assertThat(RollbackUtils.getRollbackManager().getAvailableRollbacks()).isEmpty();
|
rm.getRecentlyCommittedRollbacks().stream().flatMap(info -> info.getPackages().stream())
|
||||||
|
.map(info -> info.getPackageName()).forEach(rm::expireRollbackForPackage);
|
||||||
|
assertThat(rm.getAvailableRollbacks()).isEmpty();
|
||||||
|
assertThat(rm.getRecentlyCommittedRollbacks()).isEmpty();
|
||||||
}
|
}
|
||||||
|
|
||||||
private static final String APK_IN_APEX_TESTAPEX_NAME = "com.android.apex.apkrollback.test";
|
private static final String APK_IN_APEX_TESTAPEX_NAME = "com.android.apex.apkrollback.test";
|
||||||
|
|||||||
@@ -19,6 +19,12 @@
|
|||||||
<option name="cleanup-apks" value="true" />
|
<option name="cleanup-apks" value="true" />
|
||||||
<option name="test-file-name" value="RollbackTest.apk" />
|
<option name="test-file-name" value="RollbackTest.apk" />
|
||||||
</target_preparer>
|
</target_preparer>
|
||||||
|
<target_preparer class="com.android.tradefed.targetprep.RunCommandTargetPreparer">
|
||||||
|
<option name="run-command" value="pm uninstall com.android.cts.install.lib.testapp.A" />
|
||||||
|
<option name="run-command" value="pm uninstall com.android.cts.install.lib.testapp.B" />
|
||||||
|
<option name="teardown-command" value="pm uninstall com.android.cts.install.lib.testapp.A" />
|
||||||
|
<option name="teardown-command" value="pm uninstall com.android.cts.install.lib.testapp.B" />
|
||||||
|
</target_preparer>
|
||||||
<test class="com.android.tradefed.testtype.HostTest" >
|
<test class="com.android.tradefed.testtype.HostTest" >
|
||||||
<option name="class" value="com.android.tests.rollback.host.StagedRollbackTest" />
|
<option name="class" value="com.android.tests.rollback.host.StagedRollbackTest" />
|
||||||
</test>
|
</test>
|
||||||
|
|||||||
Reference in New Issue
Block a user