Test that install fails when apk requires missing shared lib

Test: atest UpdatableSharedLibsTest

Bug: 191978330

Ignore-AOSP-First: logic under test is only available in internal master

Change-Id: Ie0181833c8b35d98ab22b00fe36d3273c934559d
This commit is contained in:
Pedro Loureiro
2021-11-08 16:47:03 +00:00
parent 1ce7f04989
commit e1c68f98db

View File

@@ -16,12 +16,17 @@
package com.android.modules.updatablesharedlibs;
import static com.google.common.truth.Truth.assertThat;
import static org.junit.Assume.assumeTrue;
import static org.junit.Assert.assertThrows;
import com.android.internal.util.test.SystemPreparer;
import com.android.tradefed.targetprep.TargetSetupError;
import com.android.tradefed.testtype.DeviceJUnit4ClassRunner;
import com.android.tradefed.testtype.junit4.BaseHostJUnit4Test;
import com.android.tradefed.testtype.junit4.DeviceTestRunOptions;
import com.android.internal.util.test.SystemPreparer;
import org.junit.Assert;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.RuleChain;
@@ -48,6 +53,9 @@ public class UpdatableSharedLibsTest extends BaseHostJUnit4Test {
assumeTrue("Device does not support updating APEX", mHostUtils.isApexUpdateSupported());
assumeTrue("Device requires root", getDevice().isAdbRoot());
// install app requiring lib before the lib is installed
assertInstalationFails();
String apex = "test_com.android.modules.updatablesharedlibs.apex";
mPreparer.pushResourceFile(apex, "/system/apex/" + apex);
mPreparer.reboot();
@@ -61,4 +69,15 @@ public class UpdatableSharedLibsTest extends BaseHostJUnit4Test {
runDeviceTests("com.android.modules.updatablesharedlibs.apps.targetT", null);
runDeviceTests("com.android.modules.updatablesharedlibs.apps.targetTWithLib", null);
}
private void assertInstalationFails() throws Exception {
String packageName = "com.android.modules.updatablesharedlibs.apps.targetTWithLib";
Exception e = assertThrows(
TargetSetupError.class,
() -> installPackage(packageName + ".apk"));
assertThat(e).hasMessageThat().contains(
"Package " + packageName + " requires "
+ "unavailable shared library "
+ "com.android.modules.updatablesharedlibs.libs.since.t");
}
}