Merge "Set boot image profile properties in a loop for BootImageProfileTest" am: 33905aa38d am: c0800cfc20 am: 68d208e6fa

Change-Id: I39a6773363e49b6517cca4761b0221b5ccc3618d
This commit is contained in:
Automerger Merge Worker
2020-02-12 00:54:01 +00:00
2 changed files with 31 additions and 15 deletions

View File

@@ -19,18 +19,8 @@
-->
<target_preparer
class="com.android.tradefed.targetprep.DeviceSetup">
<!-- we need this magic flag, otherwise it always reboots and breaks the selinux -->
<!-- we need this magic flag, otherwise it always reboots and breaks selinux -->
<option name="force-skip-system-props" value="true" />
<option name="run-command" value="device_config put runtime_native_boot profilesystemserver true" />
<option name="run-command" value="device_config put runtime_native_boot profilebootclasspath true" />
<!-- Profiling does not pick up the above changes we restart the shell -->
<option name="run-command" value="stop" />
<option name="run-command" value="start" />
<!-- give it some time to restart the shell; otherwise the first unit test might fail -->
<option name="run-command" value="sleep 2" />
</target_preparer>
<test class="com.android.tradefed.testtype.HostTest" >

View File

@@ -42,10 +42,9 @@ public class BootImageProfileTest implements IDeviceTest {
}
/**
* Test that the boot image profile properties are set.
* Validate that the boot image profile properties are set.
*/
@Test
public void testProperties() throws Exception {
public void validateProperties() throws Exception {
String res = mTestDevice.getProperty(
"persist.device_config.runtime_native_boot.profilebootclasspath");
assertTrue("profile boot class path not enabled", res != null && res.equals("true"));
@@ -67,13 +66,37 @@ public class BootImageProfileTest implements IDeviceTest {
@Test
public void testSystemServerProfile() throws Exception {
final int numIterations = 20;
for (int i = 1; i <= numIterations; ++i) {
String res;
res = mTestDevice.getProperty(
"persist.device_config.runtime_native_boot.profilebootclasspath");
boolean profileBootClassPath = res != null && res.equals("true");
res = mTestDevice.getProperty(
"persist.device_config.runtime_native_boot.profilesystemserver");
boolean profileSystemServer = res != null && res.equals("true");
if (profileBootClassPath && profileSystemServer) {
break;
}
if (i == numIterations) {
assertTrue("profile system server not enabled", profileSystemServer);
assertTrue("profile boot class path not enabled", profileSystemServer);
}
res = mTestDevice.executeShellCommand(
"device_config put runtime_native_boot profilebootclasspath true");
res = mTestDevice.executeShellCommand(
"device_config put runtime_native_boot profilesystemserver true");
res = mTestDevice.executeShellCommand("stop");
res = mTestDevice.executeShellCommand("start");
Thread.sleep(5000);
}
// Trunacte the profile before force it to be saved to prevent previous profiles
// causing the test to pass.
String res;
res = mTestDevice.executeShellCommand("truncate -s 0 " + SYSTEM_SERVER_PROFILE).trim();
assertTrue(res, res.length() == 0);
// Wait up to 20 seconds for the profile to be saved.
final int numIterations = 20;
for (int i = 1; i <= numIterations; ++i) {
// Force save the profile since we truncated it.
if (forceSaveProfile("system_server")) {
@@ -89,6 +112,9 @@ public class BootImageProfileTest implements IDeviceTest {
// In case the profile is partially saved, wait an extra second.
Thread.sleep(1000);
// Validate that properties are still set.
validateProperties();
// Validate that the profile is non empty.
res = mTestDevice.executeShellCommand("profman --dump-only --profile-file="
+ SYSTEM_SERVER_PROFILE);