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

Commit 776e64da authored by Eric Rowe's avatar Eric Rowe
Browse files

DO NOT MERGE Add acceptPair method to BT stress.

Add a method to the test utils which waits to accept a bonding request from
another device.  This is identical to the pairing method except that it
waits for a remote pair request instead of initiating the pairing
request itself.  Also, add a test method to the test utils.

Change-Id: I6391d03e9f33c040afd64d73083acfe3184251eb
parent 42361551
Loading
Loading
Loading
Loading
+15 −0
Original line number Diff line number Diff line
@@ -94,6 +94,21 @@ public class BluetoothStressTest extends InstrumentationTestCase {
        mTestUtils.disable(adapter);
    }

    public void testAcceptPair() {
        int iterations = BluetoothTestRunner.sPairIterations;
        BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter();
        BluetoothDevice device = adapter.getRemoteDevice(BluetoothTestRunner.sPairAddress);
        mTestUtils.enable(adapter);

        for (int i = 0; i < iterations; i++) {
            mTestUtils.writeOutput("acceptPair iteration " + (i + 1) + " of " + iterations);
            mTestUtils.acceptPair(adapter, device, BluetoothTestRunner.sPairPasskey,
                    BluetoothTestRunner.sPairPin);
            mTestUtils.unpair(adapter, device);
        }
        mTestUtils.disable(adapter);
    }

    public void testConnectA2dp() {
        int iterations = BluetoothTestRunner.sConnectA2dpIterations;
        BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter();
+21 −8
Original line number Diff line number Diff line
@@ -635,6 +635,17 @@ public class BluetoothTestUtils extends Assert {
    }

    public void pair(BluetoothAdapter adapter, BluetoothDevice device, int passkey, byte[] pin) {
        pairOrAcceptPair(adapter, device, passkey, pin, true);
    }

    public void acceptPair(BluetoothAdapter adapter, BluetoothDevice device, int passkey,
            byte[] pin) {
        pairOrAcceptPair(adapter, device, passkey, pin, false);
    }

    private void pairOrAcceptPair(BluetoothAdapter adapter, BluetoothDevice device, int passkey,
            byte[] pin, boolean pair) {
        String methodName = pair ? "pair()" : "acceptPair()";
        int mask = PairReceiver.PAIR_FLAG;
        int pairMask = PairReceiver.PAIR_STATE_BONDING | PairReceiver.PAIR_STATE_BONDED;

@@ -642,7 +653,7 @@ public class BluetoothTestUtils extends Assert {
        mReceivers.add(pairReceiver);

        if (!adapter.isEnabled()) {
            fail("pair() bluetooth not enabled");
            fail(methodName + " bluetooth not enabled");
        }

        int state = device.getBondState();
@@ -656,10 +667,12 @@ public class BluetoothTestUtils extends Assert {
                break;
            case BluetoothDevice.BOND_NONE:
                assertFalse(adapter.getBondedDevices().contains(device));
                if (pair) {
                    assertTrue(device.createBond());
                }
                break;
            default:
                fail("pair() invalide state: state=" + state);
                fail(methodName + " invalide state: state=" + state);
        }

        long s = System.currentTimeMillis();
@@ -669,8 +682,8 @@ public class BluetoothTestUtils extends Assert {
                assertTrue(adapter.getBondedDevices().contains(device));
                if ((pairReceiver.getFiredFlags() & mask) == mask
                        && (pairReceiver.getPairFiredFlags() & pairMask) == pairMask) {
                    writeOutput(String.format("pair() completed in %d ms: device=%s",
                            (System.currentTimeMillis() - s), device));
                    writeOutput(String.format("%s completed in %d ms: device=%s",
                            methodName, (System.currentTimeMillis() - s), device));
                    mReceivers.remove(pairReceiver);
                    mContext.unregisterReceiver(pairReceiver);
                    return;
@@ -682,9 +695,9 @@ public class BluetoothTestUtils extends Assert {
        int firedFlags = pairReceiver.getFiredFlags();
        int pairFiredFlags = pairReceiver.getPairFiredFlags();
        pairReceiver.resetFiredFlags();
        fail(String.format("pair() timeout: state=%d (expected %d), flags=0x%x (expected 0x%x), "
                + "pairFlags=0x%x (expected 0x%x)", state, BluetoothDevice.BOND_BONDED, firedFlags,
                mask, pairFiredFlags, pairMask));
        fail(String.format("%s timeout: state=%d (expected %d), flags=0x%x (expected 0x%x), "
                + "pairFlags=0x%x (expected 0x%x)", methodName, state, BluetoothDevice.BOND_BONDED,
                firedFlags, mask, pairFiredFlags, pairMask));
    }

    public void unpair(BluetoothAdapter adapter, BluetoothDevice device) {