diff options
Diffstat (limited to 'tests')
10 files changed, 64 insertions, 110 deletions
diff --git a/tests/FlickerTests/lib/src/com/android/server/wm/flicker/LayersTraceSubject.java b/tests/FlickerTests/lib/src/com/android/server/wm/flicker/LayersTraceSubject.java index b4c97e4fc4f2..4085810a213d 100644 --- a/tests/FlickerTests/lib/src/com/android/server/wm/flicker/LayersTraceSubject.java +++ b/tests/FlickerTests/lib/src/com/android/server/wm/flicker/LayersTraceSubject.java @@ -26,9 +26,8 @@ import com.android.server.wm.flicker.Assertions.Result; import com.android.server.wm.flicker.LayersTrace.Entry; import com.android.server.wm.flicker.TransitionRunner.TransitionResult; -import com.google.common.truth.FailureStrategy; +import com.google.common.truth.FailureMetadata; import com.google.common.truth.Subject; -import com.google.common.truth.SubjectFactory; import java.util.List; import java.util.stream.Collectors; @@ -38,19 +37,19 @@ import java.util.stream.Collectors; */ public class LayersTraceSubject extends Subject<LayersTraceSubject, LayersTrace> { // Boiler-plate Subject.Factory for LayersTraceSubject - private static final SubjectFactory<LayersTraceSubject, LayersTrace> FACTORY = - new SubjectFactory<LayersTraceSubject, LayersTrace>() { + private static final Subject.Factory<LayersTraceSubject, LayersTrace> FACTORY = + new Subject.Factory<LayersTraceSubject, LayersTrace>() { @Override - public LayersTraceSubject getSubject( - FailureStrategy fs, @Nullable LayersTrace target) { - return new LayersTraceSubject(fs, target); + public LayersTraceSubject createSubject( + FailureMetadata fm, @Nullable LayersTrace target) { + return new LayersTraceSubject(fm, target); } }; private AssertionsChecker<Entry> mChecker = new AssertionsChecker<>(); - private LayersTraceSubject(FailureStrategy fs, @Nullable LayersTrace subject) { - super(fs, subject); + private LayersTraceSubject(FailureMetadata fm, @Nullable LayersTrace subject) { + super(fm, subject); } // User-defined entry point @@ -66,7 +65,7 @@ public class LayersTraceSubject extends Subject<LayersTraceSubject, LayersTrace> } // Static method for getting the subject factory (for use with assertAbout()) - public static SubjectFactory<LayersTraceSubject, LayersTrace> entries() { + public static Subject.Factory<LayersTraceSubject, LayersTrace> entries() { return FACTORY; } diff --git a/tests/FlickerTests/lib/src/com/android/server/wm/flicker/WmTraceSubject.java b/tests/FlickerTests/lib/src/com/android/server/wm/flicker/WmTraceSubject.java index 1fc7d591d2bb..e76da6e90834 100644 --- a/tests/FlickerTests/lib/src/com/android/server/wm/flicker/WmTraceSubject.java +++ b/tests/FlickerTests/lib/src/com/android/server/wm/flicker/WmTraceSubject.java @@ -24,9 +24,8 @@ import android.annotation.Nullable; import com.android.server.wm.flicker.Assertions.Result; import com.android.server.wm.flicker.TransitionRunner.TransitionResult; -import com.google.common.truth.FailureStrategy; +import com.google.common.truth.FailureMetadata; import com.google.common.truth.Subject; -import com.google.common.truth.SubjectFactory; import java.nio.file.Path; import java.util.List; @@ -38,19 +37,19 @@ import java.util.stream.Collectors; */ public class WmTraceSubject extends Subject<WmTraceSubject, WindowManagerTrace> { // Boiler-plate Subject.Factory for WmTraceSubject - private static final SubjectFactory<WmTraceSubject, WindowManagerTrace> FACTORY = - new SubjectFactory<WmTraceSubject, WindowManagerTrace>() { + private static final Subject.Factory<WmTraceSubject, WindowManagerTrace> FACTORY = + new Subject.Factory<WmTraceSubject, WindowManagerTrace>() { @Override - public WmTraceSubject getSubject( - FailureStrategy fs, @Nullable WindowManagerTrace target) { - return new WmTraceSubject(fs, target); + public WmTraceSubject createSubject( + FailureMetadata fm, @Nullable WindowManagerTrace target) { + return new WmTraceSubject(fm, target); } }; private AssertionsChecker<WindowManagerTrace.Entry> mChecker = new AssertionsChecker<>(); - private WmTraceSubject(FailureStrategy fs, @Nullable WindowManagerTrace subject) { - super(fs, subject); + private WmTraceSubject(FailureMetadata fm, @Nullable WindowManagerTrace subject) { + super(fm, subject); } // User-defined entry point @@ -66,7 +65,7 @@ public class WmTraceSubject extends Subject<WmTraceSubject, WindowManagerTrace> } // Static method for getting the subject factory (for use with assertAbout()) - public static SubjectFactory<WmTraceSubject, WindowManagerTrace> entries() { + public static Subject.Factory<WmTraceSubject, WindowManagerTrace> entries() { return FACTORY; } diff --git a/tests/net/Android.bp b/tests/net/Android.bp index 306cc515c870..eb25acfe6c45 100644 --- a/tests/net/Android.bp +++ b/tests/net/Android.bp @@ -10,6 +10,7 @@ java_defaults { "framework-protos", "androidx.test.rules", "mockito-target-minus-junit4", + "net-tests-utils", "platform-test-annotations", "services.core", "services.net", diff --git a/tests/net/java/android/net/nsd/NsdManagerTest.java b/tests/net/java/android/net/nsd/NsdManagerTest.java index 2d2bccba7eb9..cf7587a2039f 100644 --- a/tests/net/java/android/net/nsd/NsdManagerTest.java +++ b/tests/net/java/android/net/nsd/NsdManagerTest.java @@ -16,8 +16,6 @@ package android.net.nsd; -import static com.android.internal.util.TestUtils.waitForIdleHandler; - import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.fail; @@ -40,6 +38,7 @@ import androidx.test.filters.SmallTest; import androidx.test.runner.AndroidJUnit4; import com.android.internal.util.AsyncChannel; +import com.android.testutils.HandlerUtilsKt; import org.junit.After; import org.junit.Before; @@ -74,7 +73,7 @@ public class NsdManagerTest { @After public void tearDown() throws Exception { - mServiceHandler.waitForIdle(mTimeoutMs); + HandlerUtilsKt.waitForIdle(mServiceHandler, mTimeoutMs); mServiceHandler.chan.disconnect(); mServiceHandler.stop(); if (mManager != null) { @@ -334,7 +333,7 @@ public class NsdManagerTest { } int verifyRequest(int expectedMessageType) { - mServiceHandler.waitForIdle(mTimeoutMs); + HandlerUtilsKt.waitForIdle(mServiceHandler, mTimeoutMs); verify(mServiceHandler, timeout(mTimeoutMs)).handleMessage(any()); reset(mServiceHandler); Message received = mServiceHandler.getLastMessage(); @@ -366,10 +365,6 @@ public class NsdManagerTest { lastMessage.copyFrom(msg); } - void waitForIdle(long timeoutMs) { - waitForIdleHandler(this, timeoutMs); - } - @Override public void handleMessage(Message msg) { setLastMessage(msg); diff --git a/tests/net/java/android/net/util/DnsUtilsTest.java b/tests/net/java/android/net/util/DnsUtilsTest.java index 42e340bbcba9..b626db8d89e4 100644 --- a/tests/net/java/android/net/util/DnsUtilsTest.java +++ b/tests/net/java/android/net/util/DnsUtilsTest.java @@ -57,24 +57,38 @@ public class DnsUtilsTest { @Test public void testRfc6724Comparator() { final List<DnsUtils.SortableAddress> test = Arrays.asList( - makeSortableAddress("216.58.200.36"), // Ipv4 - makeSortableAddress("2404:6800:4008:801::2004"), // global - makeSortableAddress("::1"), // loop back - makeSortableAddress("fe80::c46f:1cff:fe04:39b4"), // link local - makeSortableAddress("::ffff:192.168.95.3"), // IPv4-mapped IPv6 - makeSortableAddress("2001::47c1"), // teredo tunneling - makeSortableAddress("::216.58.200.36"), // IPv4-compatible - makeSortableAddress("3ffe::1234:5678")); // 6bone + // Ipv4 + makeSortableAddress("216.58.200.36", "192.168.1.1"), + // global with different scope src + makeSortableAddress("2404:6800:4008:801::2004", "fe80::1111:2222"), + // global without src addr + makeSortableAddress("2404:6800:cafe:801::1"), + // loop back + makeSortableAddress("::1", "::1"), + // link local + makeSortableAddress("fe80::c46f:1cff:fe04:39b4", "fe80::1"), + // teredo tunneling + makeSortableAddress("2001::47c1", "2001::2"), + // 6bone without src addr + makeSortableAddress("3ffe::1234:5678"), + // IPv4-compatible + makeSortableAddress("::216.58.200.36", "::216.58.200.9"), + // 6bone + makeSortableAddress("3ffe::1234:5678", "3ffe::1234:1"), + // IPv4-mapped IPv6 + makeSortableAddress("::ffff:192.168.95.7", "::ffff:192.168.95.1")); final List<InetAddress> expected = Arrays.asList( stringToAddress("::1"), // loop back stringToAddress("fe80::c46f:1cff:fe04:39b4"), // link local - stringToAddress("2404:6800:4008:801::2004"), // global stringToAddress("216.58.200.36"), // Ipv4 - stringToAddress("::ffff:192.168.95.3"), // IPv4-mapped IPv6 + stringToAddress("::ffff:192.168.95.7"), // IPv4-mapped IPv6 stringToAddress("2001::47c1"), // teredo tunneling - stringToAddress("::216.58.200.36"), // IPv4-compatible - stringToAddress("3ffe::1234:5678")); // 6bone + stringToAddress("::216.58.200.36"), // IPv4-compatible + stringToAddress("3ffe::1234:5678"), // 6bone + stringToAddress("2404:6800:4008:801::2004"), // global with different scope src + stringToAddress("2404:6800:cafe:801::1"), // global without src addr + stringToAddress("3ffe::1234:5678")); // 6bone without src addr Collections.sort(test, new DnsUtils.Rfc6724Comparator()); diff --git a/tests/net/java/com/android/server/ConnectivityServiceTest.java b/tests/net/java/com/android/server/ConnectivityServiceTest.java index 8c024a5a53c7..e099270e85b9 100644 --- a/tests/net/java/com/android/server/ConnectivityServiceTest.java +++ b/tests/net/java/com/android/server/ConnectivityServiceTest.java @@ -68,10 +68,6 @@ import static android.net.NetworkPolicyManager.RULE_REJECT_ALL; import static android.net.NetworkPolicyManager.RULE_REJECT_METERED; import static android.net.RouteInfo.RTN_UNREACHABLE; -import static com.android.internal.util.TestUtils.waitForIdleHandler; -import static com.android.internal.util.TestUtils.waitForIdleLooper; -import static com.android.internal.util.TestUtils.waitForIdleSerialExecutor; - import static org.junit.Assert.assertArrayEquals; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; @@ -196,6 +192,7 @@ import com.android.server.connectivity.Tethering; import com.android.server.connectivity.Vpn; import com.android.server.net.NetworkPinner; import com.android.server.net.NetworkPolicyManagerInternal; +import com.android.testutils.HandlerUtilsKt; import org.junit.After; import org.junit.Before; @@ -375,19 +372,19 @@ public class ConnectivityServiceTest { public void waitForIdle(int timeoutMsAsInt) { long timeoutMs = timeoutMsAsInt; - waitForIdleHandler(mService.mHandlerThread, timeoutMs); + HandlerUtilsKt.waitForIdle(mService.mHandlerThread, timeoutMs); waitForIdle(mCellNetworkAgent, timeoutMs); waitForIdle(mWiFiNetworkAgent, timeoutMs); waitForIdle(mEthernetNetworkAgent, timeoutMs); - waitForIdleHandler(mService.mHandlerThread, timeoutMs); - waitForIdleLooper(ConnectivityThread.getInstanceLooper(), timeoutMs); + HandlerUtilsKt.waitForIdle(mService.mHandlerThread, timeoutMs); + HandlerUtilsKt.waitForIdle(ConnectivityThread.get(), timeoutMs); } public void waitForIdle(MockNetworkAgent agent, long timeoutMs) { if (agent == null) { return; } - waitForIdleHandler(agent.mHandlerThread, timeoutMs); + HandlerUtilsKt.waitForIdle(agent.mHandlerThread, timeoutMs); } private void waitForIdle() { @@ -1220,7 +1217,7 @@ public class ConnectivityServiceTest { } public void waitForIdle(int timeoutMs) { - waitForIdleHandler(mHandlerThread, timeoutMs); + HandlerUtilsKt.waitForIdle(mHandlerThread, timeoutMs); } public void waitForIdle() { @@ -4107,7 +4104,7 @@ public class ConnectivityServiceTest { } public void assertNoCallback() { - waitForIdleSerialExecutor(mExecutor, TIMEOUT_MS); + HandlerUtilsKt.waitForIdleSerialExecutor(mExecutor, TIMEOUT_MS); CallbackValue cv = mCallbacks.peek(); assertNull("Unexpected callback: " + cv, cv); } diff --git a/tests/net/java/com/android/server/connectivity/tethering/OffloadControllerTest.java b/tests/net/java/com/android/server/connectivity/tethering/OffloadControllerTest.java index be54b1a93b5d..762b76c0e18a 100644 --- a/tests/net/java/com/android/server/connectivity/tethering/OffloadControllerTest.java +++ b/tests/net/java/com/android/server/connectivity/tethering/OffloadControllerTest.java @@ -51,7 +51,6 @@ import android.net.LinkProperties; import android.net.NetworkStats; import android.net.RouteInfo; import android.net.util.SharedLog; -import android.os.ConditionVariable; import android.os.Handler; import android.os.INetworkManagementService; import android.os.Looper; @@ -63,6 +62,7 @@ import androidx.test.filters.SmallTest; import androidx.test.runner.AndroidJUnit4; import com.android.internal.util.test.FakeSettingsProvider; +import com.android.testutils.HandlerUtilsKt; import org.junit.After; import org.junit.Before; @@ -90,6 +90,7 @@ public class OffloadControllerTest { private static final String IPV6_DISCARD_PREFIX = "100::/64"; private static final String USB_PREFIX = "192.168.42.0/24"; private static final String WIFI_PREFIX = "192.168.43.0/24"; + private static final long WAIT_FOR_IDLE_TIMEOUT = 2 * 1000; @Mock private OffloadHardwareInterface mHardware; @Mock private ApplicationInfo mApplicationInfo; @@ -131,9 +132,7 @@ public class OffloadControllerTest { } private void waitForIdle() { - ConditionVariable cv = new ConditionVariable(); - new Handler(Looper.getMainLooper()).post(() -> { cv.open(); }); - cv.block(); + HandlerUtilsKt.waitForIdle(new Handler(Looper.getMainLooper()), WAIT_FOR_IDLE_TIMEOUT); } private OffloadController makeOffloadController() throws Exception { diff --git a/tests/net/java/com/android/server/net/NetworkStatsObserversTest.java b/tests/net/java/com/android/server/net/NetworkStatsObserversTest.java index 43a38039c0da..9a47f350806b 100644 --- a/tests/net/java/com/android/server/net/NetworkStatsObserversTest.java +++ b/tests/net/java/com/android/server/net/NetworkStatsObserversTest.java @@ -28,8 +28,6 @@ import static android.net.NetworkTemplate.buildTemplateWifiWildcard; import static android.net.TrafficStats.MB_IN_BYTES; import static android.text.format.DateUtils.MINUTE_IN_MILLIS; -import static com.android.internal.util.TestUtils.waitForIdleHandler; - import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import static org.mockito.Matchers.any; @@ -56,6 +54,7 @@ import androidx.test.runner.AndroidJUnit4; import com.android.internal.net.VpnInfo; import com.android.server.net.NetworkStatsServiceTest.LatchedHandler; +import com.android.testutils.HandlerUtilsKt; import org.junit.Before; import org.junit.Test; @@ -457,7 +456,7 @@ public class NetworkStatsObserversTest { } private void waitForObserverToIdle() { - waitForIdleHandler(mObserverHandlerThread, WAIT_TIMEOUT_MS); - waitForIdleHandler(mHandler, WAIT_TIMEOUT_MS); + HandlerUtilsKt.waitForIdle(mObserverHandlerThread, WAIT_TIMEOUT_MS); + HandlerUtilsKt.waitForIdle(mHandler, WAIT_TIMEOUT_MS); } } diff --git a/tests/net/java/com/android/server/net/NetworkStatsServiceTest.java b/tests/net/java/com/android/server/net/NetworkStatsServiceTest.java index d9f2c201fe37..31df9f3bc9c5 100644 --- a/tests/net/java/com/android/server/net/NetworkStatsServiceTest.java +++ b/tests/net/java/com/android/server/net/NetworkStatsServiceTest.java @@ -52,7 +52,6 @@ import static android.text.format.DateUtils.HOUR_IN_MILLIS; import static android.text.format.DateUtils.MINUTE_IN_MILLIS; import static android.text.format.DateUtils.WEEK_IN_MILLIS; -import static com.android.internal.util.TestUtils.waitForIdleHandler; import static com.android.server.net.NetworkStatsService.ACTION_NETWORK_STATS_POLL; import static org.junit.Assert.assertEquals; @@ -104,6 +103,7 @@ import com.android.internal.util.ArrayUtils; import com.android.internal.util.test.BroadcastInterceptingContext; import com.android.server.net.NetworkStatsService.NetworkStatsSettings; import com.android.server.net.NetworkStatsService.NetworkStatsSettings.Config; +import com.android.testutils.HandlerUtilsKt; import libcore.io.IoUtils; @@ -1432,8 +1432,6 @@ public class NetworkStatsServiceTest { expectNetworkStatsSummary(buildEmptyStats()); expectNetworkStatsUidDetail(buildEmptyStats()); - - // Register and verify request and that binder was called DataUsageRequest request = mService.registerUsageCallback(mServiceContext.getOpPackageName(), inputRequest, @@ -1445,14 +1443,11 @@ public class NetworkStatsServiceTest { // Send dummy message to make sure that any previous message has been handled mHandler.sendMessage(mHandler.obtainMessage(-1)); - waitForIdleHandler(mHandler, WAIT_TIMEOUT); - - + HandlerUtilsKt.waitForIdle(mHandler, WAIT_TIMEOUT); // Make sure that the caller binder gets connected verify(mBinder).linkToDeath(any(IBinder.DeathRecipient.class), anyInt()); - // modify some number on wifi, and trigger poll event // not enough traffic to call data usage callback incrementCurrentTime(HOUR_IN_MILLIS); @@ -1785,7 +1780,7 @@ public class NetworkStatsServiceTest { mServiceContext.sendBroadcast(new Intent(ACTION_NETWORK_STATS_POLL)); // Send dummy message to make sure that any previous message has been handled mHandler.sendMessage(mHandler.obtainMessage(-1)); - waitForIdleHandler(mHandler, WAIT_TIMEOUT); + HandlerUtilsKt.waitForIdle(mHandler, WAIT_TIMEOUT); } static class LatchedHandler extends Handler { diff --git a/tests/net/util/java/com/android/internal/util/TestUtils.java b/tests/net/util/java/com/android/internal/util/TestUtils.java index a99cd4716f9a..daa00d24f299 100644 --- a/tests/net/util/java/com/android/internal/util/TestUtils.java +++ b/tests/net/util/java/com/android/internal/util/TestUtils.java @@ -19,57 +19,13 @@ package com.android.internal.util; import static org.junit.Assert.assertEquals; import static org.junit.Assert.fail; -import android.os.ConditionVariable; -import android.os.Handler; -import android.os.HandlerThread; -import android.os.Looper; import android.os.Parcel; import android.os.Parcelable; -import androidx.annotation.NonNull; - -import java.util.concurrent.Executor; - public final class TestUtils { private TestUtils() { } /** - * Block until the given Handler thread becomes idle, or until timeoutMs has passed. - */ - public static void waitForIdleHandler(HandlerThread handlerThread, long timeoutMs) { - waitForIdleLooper(handlerThread.getLooper(), timeoutMs); - } - - /** - * Block until the given Looper becomes idle, or until timeoutMs has passed. - */ - public static void waitForIdleLooper(Looper looper, long timeoutMs) { - waitForIdleHandler(new Handler(looper), timeoutMs); - } - - /** - * Block until the given Handler becomes idle, or until timeoutMs has passed. - */ - public static void waitForIdleHandler(Handler handler, long timeoutMs) { - final ConditionVariable cv = new ConditionVariable(); - handler.post(() -> cv.open()); - if (!cv.block(timeoutMs)) { - fail(handler.toString() + " did not become idle after " + timeoutMs + " ms"); - } - } - - /** - * Block until the given Serial Executor becomes idle, or until timeoutMs has passed. - */ - public static void waitForIdleSerialExecutor(@NonNull Executor executor, long timeoutMs) { - final ConditionVariable cv = new ConditionVariable(); - executor.execute(() -> cv.open()); - if (!cv.block(timeoutMs)) { - fail(executor.toString() + " did not become idle after " + timeoutMs + " ms"); - } - } - - /** * Return a new instance of {@code T} after being parceled then unparceled. */ public static <T extends Parcelable> T parcelingRoundTrip(T source) { |