Merge "Fix a flaky test" into rvc-dev
This commit is contained in:
@@ -23,6 +23,10 @@
|
|||||||
<option name="run-command" value="am broadcast -a 'com.google.android.gms.phenotype.FLAG_OVERRIDE' --es package "com.google.android.gms.platformconfigurator" --es user '\\*' --esa flags "ModuleConfig__versioned_immediate_commit_packages" --esa types "bytes" --esa values "Cm5vdGFwYWNrYWdlOgA=" com.google.android.gms" />
|
<option name="run-command" value="am broadcast -a 'com.google.android.gms.phenotype.FLAG_OVERRIDE' --es package "com.google.android.gms.platformconfigurator" --es user '\\*' --esa flags "ModuleConfig__versioned_immediate_commit_packages" --esa types "bytes" --esa values "Cm5vdGFwYWNrYWdlOgA=" com.google.android.gms" />
|
||||||
<option name="teardown-command" value="am broadcast -a 'com.google.android.gms.phenotype.FLAG_OVERRIDE' --es action delete --es package "com.google.android.gms.platformconfigurator" --es user '\*' --esa flag "ModuleConfig__immediate_commit_packages" com.google.android.gms" />
|
<option name="teardown-command" value="am broadcast -a 'com.google.android.gms.phenotype.FLAG_OVERRIDE' --es action delete --es package "com.google.android.gms.platformconfigurator" --es user '\*' --esa flag "ModuleConfig__immediate_commit_packages" com.google.android.gms" />
|
||||||
<option name="teardown-command" value="am broadcast -a 'com.google.android.gms.phenotype.FLAG_OVERRIDE' --es action delete --es package "com.google.android.gms.platformconfigurator" --es user '\*' --esa flag "ModuleConfig__versioned_immediate_commit_packages" com.google.android.gms" />
|
<option name="teardown-command" value="am broadcast -a 'com.google.android.gms.phenotype.FLAG_OVERRIDE' --es action delete --es package "com.google.android.gms.platformconfigurator" --es user '\*' --esa flag "ModuleConfig__versioned_immediate_commit_packages" com.google.android.gms" />
|
||||||
|
<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>
|
</target_preparer>
|
||||||
<test class="com.android.tradefed.testtype.AndroidJUnitTest" >
|
<test class="com.android.tradefed.testtype.AndroidJUnitTest" >
|
||||||
<option name="package" value="com.android.tests.rollback" />
|
<option name="package" value="com.android.tests.rollback" />
|
||||||
|
|||||||
@@ -75,6 +75,12 @@ public class RollbackTest {
|
|||||||
private static final String PROPERTY_ENABLE_ROLLBACK_TIMEOUT_MILLIS =
|
private static final String PROPERTY_ENABLE_ROLLBACK_TIMEOUT_MILLIS =
|
||||||
"enable_rollback_timeout";
|
"enable_rollback_timeout";
|
||||||
|
|
||||||
|
private static boolean hasRollbackInclude(List<RollbackInfo> rollbacks, String packageName) {
|
||||||
|
return rollbacks.stream().anyMatch(
|
||||||
|
ri -> ri.getPackages().stream().anyMatch(
|
||||||
|
pri -> packageName.equals(pri.getPackageName())));
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Test basic rollbacks.
|
* Test basic rollbacks.
|
||||||
*/
|
*/
|
||||||
@@ -113,18 +119,14 @@ public class RollbackTest {
|
|||||||
// Uninstall TestApp.A
|
// Uninstall TestApp.A
|
||||||
Uninstall.packages(TestApp.A);
|
Uninstall.packages(TestApp.A);
|
||||||
assertThat(InstallUtils.getInstalledVersion(TestApp.A)).isEqualTo(-1);
|
assertThat(InstallUtils.getInstalledVersion(TestApp.A)).isEqualTo(-1);
|
||||||
// TODO: There is currently a race condition between when the app is
|
|
||||||
// uninstalled and when rollback manager deletes the rollback. Fix it
|
|
||||||
// so that's not the case!
|
|
||||||
for (int i = 0; i < 5; ++i) {
|
for (int i = 0; i < 5; ++i) {
|
||||||
RollbackInfo rollback = getUniqueRollbackInfoForPackage(
|
if (hasRollbackInclude(rm.getRecentlyCommittedRollbacks(), TestApp.A)) {
|
||||||
rm.getRecentlyCommittedRollbacks(), TestApp.A);
|
|
||||||
if (rollback != null) {
|
|
||||||
Log.i(TAG, "Sleeping 1 second to wait for uninstall to take effect.");
|
Log.i(TAG, "Sleeping 1 second to wait for uninstall to take effect.");
|
||||||
Thread.sleep(1000);
|
Thread.sleep(1000);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
assertThat(hasRollbackInclude(rm.getRecentlyCommittedRollbacks(), TestApp.A)).isFalse();
|
||||||
// The app should not be available for rollback.
|
// The app should not be available for rollback.
|
||||||
waitForUnavailableRollback(TestApp.A);
|
waitForUnavailableRollback(TestApp.A);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user