Wait for the profile to not be empty in BootImageProfileTest

Keep trying to force profile saves until it's not empty. This handles
the case when the system server isn't started enough to save a profile
yet. This can be affected by boot time fluctuations if we don't wait.

Test: atest BootImageProfileTest
Bug: 139883463

Change-Id: I98b359412f919bd64c2cd2a5b7d6659d1cef113d
This commit is contained in:
Mathieu Chartier
2019-09-24 13:11:26 -07:00
parent 6c5f83aaa3
commit 4aafe443c3

View File

@@ -66,10 +66,18 @@ public class BootImageProfileTest implements IDeviceTest {
String res;
res = mTestDevice.executeShellCommand("truncate -s 0 " + SYSTEM_SERVER_PROFILE).trim();
assertTrue(res, res.length() == 0);
// Force save profiles in case the system just started.
// Wait up to 20 seconds for the profile to be saved.
for (int i = 0; i < 20; ++i) {
// Force save the profile since we truncated it.
forceSaveProfile("system_server");
String s = mTestDevice.executeShellCommand("wc -c <" + SYSTEM_SERVER_PROFILE).trim();
if (!"0".equals(s)) {
break;
}
Thread.sleep(1000);
}
// In case the profile is partially saved, wait an extra second.
Thread.sleep(1000);
forceSaveProfile("system_server");
Thread.sleep(2000);
// Validate that the profile is non empty.
res = mTestDevice.executeShellCommand("profman --dump-only --profile-file="
+ SYSTEM_SERVER_PROFILE);