Skip the test if no mainline modules installed

The test failed because we failed to enable rollback for
ModuleMetadataGoogle which is not a module on AOSP builds.

Let's skip the test for builds which have no mainline modules
installed.

Bug: 152721401
Test: atest StagedRollbackTest
Change-Id: Iaf75dea5388e2a751a26f983a79924c4358d4833
This commit is contained in:
JW Wang
2020-04-03 21:36:37 +08:00
parent cb83004e12
commit 65a7eeee7b
2 changed files with 21 additions and 0 deletions

View File

@@ -477,4 +477,12 @@ public class StagedRollbackTest {
StorageManager sm = (StorageManager) context.getSystemService(Context.STORAGE_SERVICE);
assertThat(sm.isCheckpointSupported()).isTrue();
}
@Test
public void hasMainlineModule() throws Exception {
String pkgName = getModuleMetadataPackageName();
boolean existed = InstrumentationRegistry.getInstrumentation().getContext()
.getPackageManager().getModuleInfo(pkgName, 0) != null;
assertThat(existed).isTrue();
}
}

View File

@@ -243,6 +243,7 @@ public class StagedRollbackTest extends BaseHostJUnit4Test {
*/
@Test
public void testRollbackWhitelistedApp() throws Exception {
assumeTrue(hasMainlineModule());
runPhase("testRollbackWhitelistedApp_Phase1");
getDevice().reboot();
runPhase("testRollbackWhitelistedApp_Phase2");
@@ -460,4 +461,16 @@ public class StagedRollbackTest extends BaseHostJUnit4Test {
return false;
}
}
/**
* True if this build has mainline modules installed.
*/
private boolean hasMainlineModule() throws Exception {
try {
runPhase("hasMainlineModule");
return true;
} catch (AssertionError ignore) {
return false;
}
}
}