Merge "Fix SynchedDeviceConfigTest flakiness" into udc-qpr-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
0917a8fa80
@@ -16,9 +16,13 @@
|
||||
|
||||
package com.android.server.wm;
|
||||
|
||||
import static com.android.dx.mockito.inline.extended.ExtendedMockito.doAnswer;
|
||||
import static com.android.dx.mockito.inline.extended.ExtendedMockito.spyOn;
|
||||
|
||||
import static com.google.common.truth.Truth.assertThat;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.mockito.ArgumentMatchers.any;
|
||||
|
||||
import android.app.ActivityThread;
|
||||
import android.platform.test.annotations.Presubmit;
|
||||
@@ -68,8 +72,6 @@ public class SynchedDeviceConfigTests {
|
||||
.addDeviceConfigEntry(/* key */ "key2", /* default */ false, /* enabled */ true)
|
||||
.addDeviceConfigEntry(/* key */ "key3", /* default */ true, /* enabled */ false)
|
||||
.addDeviceConfigEntry(/* key */ "key4", /* default */ false, /* enabled */ false)
|
||||
.addDeviceConfigEntry(/* key */ "key5", /* default */ true, /* enabled */ false)
|
||||
.addDeviceConfigEntry(/* key */ "key6", /* default */ false, /* enabled */ false)
|
||||
.build();
|
||||
}
|
||||
|
||||
@@ -84,8 +86,6 @@ public class SynchedDeviceConfigTests {
|
||||
assertFlagValue(/* key */ "key2", /* expected */ false); // enabled
|
||||
assertFlagValue(/* key */ "key3", /* expected */ false); // disabled
|
||||
assertFlagValue(/* key */ "key4", /* expected */ false); // disabled
|
||||
assertFlagValue(/* key */ "key5", /* expected */ false); // disabled
|
||||
assertFlagValue(/* key */ "key6", /* expected */ false); // disabled
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -94,18 +94,17 @@ public class SynchedDeviceConfigTests {
|
||||
assertFlagEnabled(/* key */ "key2", /* expected */ true);
|
||||
assertFlagEnabled(/* key */ "key3", /* expected */ false);
|
||||
assertFlagEnabled(/* key */ "key4", /* expected */ false);
|
||||
assertFlagEnabled(/* key */ "key5", /* expected */ false);
|
||||
assertFlagEnabled(/* key */ "key6", /* expected */ false);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testWhenUpdated_onlyEnabledChanges() {
|
||||
final CountDownLatch countDownLatch = new CountDownLatch(4);
|
||||
final DeviceConfig.OnPropertiesChangedListener countDownLatchListener =
|
||||
properties -> countDownLatch.countDown();
|
||||
DeviceConfig.addOnPropertiesChangedListener(NAMESPACE_FOR_TEST, mExecutor,
|
||||
countDownLatchListener);
|
||||
|
||||
spyOn(mDeviceConfig);
|
||||
doAnswer(invocation -> {
|
||||
invocation.callRealMethod();
|
||||
countDownLatch.countDown();
|
||||
return null;
|
||||
}).when(mDeviceConfig).onPropertiesChanged(any());
|
||||
try {
|
||||
// We update all the keys
|
||||
updateProperty(/* key */ "key1", /* value */ false);
|
||||
@@ -123,58 +122,9 @@ public class SynchedDeviceConfigTests {
|
||||
assertFlagValue(/* key */ "key4", /* expected */ false); // disabled
|
||||
} catch (InterruptedException e) {
|
||||
Assert.fail(e.getMessage());
|
||||
} finally {
|
||||
DeviceConfig.removeOnPropertiesChangedListener(countDownLatchListener);
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testWhenEnabled_updatesAreUsed() {
|
||||
final CountDownLatch countDownLatchBefore = new CountDownLatch(2);
|
||||
final CountDownLatch countDownLatchAfter = new CountDownLatch(2);
|
||||
final DeviceConfig.OnPropertiesChangedListener countDownLatchBeforeListener =
|
||||
properties -> countDownLatchBefore.countDown();
|
||||
final DeviceConfig.OnPropertiesChangedListener countDownLatchAfterListener =
|
||||
properties -> countDownLatchAfter.countDown();
|
||||
DeviceConfig.addOnPropertiesChangedListener(NAMESPACE_FOR_TEST, mExecutor,
|
||||
countDownLatchBeforeListener);
|
||||
|
||||
try {
|
||||
// We update disabled values
|
||||
updateProperty(/* key */ "key3", /* value */ false);
|
||||
updateProperty(/* key */ "key4", /* value */ true);
|
||||
|
||||
assertThat(countDownLatchBefore.await(
|
||||
WAIT_FOR_PROPERTY_CHANGE_TIMEOUT_MILLIS, TimeUnit.MILLISECONDS)).isTrue();
|
||||
|
||||
// We check they haven't been updated
|
||||
assertFlagValue(/* key */ "key3", /* expected */ false);
|
||||
assertFlagValue(/* key */ "key4", /* expected */ false);
|
||||
|
||||
|
||||
DeviceConfig.removeOnPropertiesChangedListener(countDownLatchBeforeListener);
|
||||
DeviceConfig.addOnPropertiesChangedListener(NAMESPACE_FOR_TEST, mExecutor,
|
||||
countDownLatchAfterListener);
|
||||
|
||||
// We update enabled flags
|
||||
updateProperty(/* key */ "key1", /* value */ false);
|
||||
updateProperty(/* key */ "key2", /* value */ true);
|
||||
|
||||
assertThat(countDownLatchAfter.await(
|
||||
WAIT_FOR_PROPERTY_CHANGE_TIMEOUT_MILLIS, TimeUnit.MILLISECONDS)).isTrue();
|
||||
|
||||
// Value have been updated
|
||||
assertFlagValue(/* key */ "key1", /* expected */ false);
|
||||
assertFlagValue(/* key */ "key2", /* expected */ true);
|
||||
|
||||
} catch (InterruptedException e) {
|
||||
Assert.fail(e.getMessage());
|
||||
} finally {
|
||||
DeviceConfig.removeOnPropertiesChangedListener(countDownLatchAfterListener);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private void assertFlagValue(String key, boolean expectedValue) {
|
||||
assertEquals(/* message */"Flag " + key + " value is not " + expectedValue, /* expected */
|
||||
expectedValue, /* actual */ mDeviceConfig.getFlagValue(key));
|
||||
|
||||
Reference in New Issue
Block a user