Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e4933687 authored by Android Build Merger (Role)'s avatar Android Build Merger (Role) Committed by Automerger Merge Worker
Browse files

Merge "Merge "Use CompletableFuture instead of a latch." am: a5f8e9b3 am:...

Merge "Merge "Use CompletableFuture instead of a latch." am: a5f8e9b3 am: 954479e6 am: 50f5fb01" into rvc-d1-dev-plus-aosp am: 1b642491

Change-Id: Ibcad3cee0cb55370ae7ad05f864110029f8fb4d0
parents edebb34f 1b642491
Loading
Loading
Loading
Loading
+18 −19
Original line number Diff line number Diff line
@@ -63,6 +63,7 @@ import java.nio.ByteBuffer;
import java.util.Collection;
import java.util.List;
import java.util.Random;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeUnit;

@@ -150,10 +151,7 @@ public class EthernetTetheringTest {
        Log.d(TAG, "Including test interfaces");
        mEm.setIncludeTestInterfaces(true);

        Log.d(TAG, "Requesting tethered interface");
        mTetheredInterfaceRequester.requestInterface();

        final String iface = mTetheredInterfaceRequester.awaitRequestedInterface();
        final String iface = mTetheredInterfaceRequester.getInterface();
        assertEquals("TetheredInterfaceCallback for unexpected interface",
                mTestIface.getInterfaceName(), iface);

@@ -165,14 +163,13 @@ public class EthernetTetheringTest {
        // This test requires manipulating packets. Skip if there is a physical Ethernet connected.
        assumeFalse(mEm.isAvailable());

        Log.d(TAG, "Requesting tethered interface");
        mTetheredInterfaceRequester.requestInterface();
        CompletableFuture<String> futureIface = mTetheredInterfaceRequester.requestInterface();

        mEm.setIncludeTestInterfaces(true);

        mTestIface = createTestInterface();

        final String iface = mTetheredInterfaceRequester.awaitRequestedInterface();
        final String iface = futureIface.get(TIMEOUT_MS, TimeUnit.MILLISECONDS);
        assertEquals("TetheredInterfaceCallback for unexpected interface",
                mTestIface.getInterfaceName(), iface);

@@ -184,8 +181,7 @@ public class EthernetTetheringTest {
        assumeTrue(mEm.isAvailable());

        // Get an interface to use.
        mTetheredInterfaceRequester.requestInterface();
        String iface = mTetheredInterfaceRequester.awaitRequestedInterface();
        final String iface = mTetheredInterfaceRequester.getInterface();

        // Enable Ethernet tethering and check that it starts.
        mTetheringEventCallback = enableEthernetTethering(iface);
@@ -373,8 +369,8 @@ public class EthernetTetheringTest {
        private final Handler mHandler;
        private final EthernetManager mEm;

        private volatile TetheredInterfaceRequest mRequest;
        private volatile String mIface;
        private TetheredInterfaceRequest mRequest;
        private final CompletableFuture<String> mFuture = new CompletableFuture<>();

        TetheredInterfaceRequester(Handler handler, EthernetManager em) {
            mHandler = handler;
@@ -384,25 +380,28 @@ public class EthernetTetheringTest {
        @Override
        public void onAvailable(String iface) {
            Log.d(TAG, "Ethernet interface available: " + iface);
            mIface = iface;
            mInterfaceAvailableLatch.countDown();
            mFuture.complete(iface);
        }

        @Override
        public void onUnavailable() {}
        public void onUnavailable() {
            mFuture.completeExceptionally(new IllegalStateException("onUnavailable received"));
        }

        public void requestInterface() {
        public CompletableFuture<String> requestInterface() {
            assertNull("BUG: more than one tethered interface request", mRequest);
            Log.d(TAG, "Requesting tethered interface");
            mRequest = mEm.requestTetheredInterface(mHandler::post, this);
            return mFuture;
        }

        public String awaitRequestedInterface() throws InterruptedException {
            assertTrue("No tethered interface available after " + TIMEOUT_MS + "ms",
                    mInterfaceAvailableLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS));
            return mIface;
        public String getInterface() throws Exception {
            return requestInterface().get(TIMEOUT_MS, TimeUnit.MILLISECONDS);
        }

        public void release() {
            if (mRequest != null) {
                mFuture.obtrudeException(new IllegalStateException("Request already released"));
                mRequest.release();
                mRequest = null;
            }