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

Commit 5c096a71 authored by Sharvil Nanavati's avatar Sharvil Nanavati
Browse files

Clean up Bluetooth test code.

Change-Id: I502b03df842c628c7b504e2a32a17bce6d25b4f8
parent 630c0a3a
Loading
Loading
Loading
Loading
+84 −116
Original line number Diff line number Diff line
@@ -35,6 +35,7 @@ public class BluetoothStressTest extends InstrumentationTestCase {
    /** The amount of time to sleep between issuing start/stop SCO in ms. */
    private static final long SCO_SLEEP_TIME = 2 * 1000;

    private BluetoothAdapter mAdapter;
    private BluetoothTestUtils mTestUtils;

    @Override
@@ -42,13 +43,18 @@ public class BluetoothStressTest extends InstrumentationTestCase {
        super.setUp();

        Context context = getInstrumentation().getTargetContext();
        mAdapter = BluetoothAdapter.getDefaultAdapter();
        mTestUtils = new BluetoothTestUtils(context, TAG, OUTPUT_FILE);

        // Start all tests in a disabled state.
        if (mAdapter.isEnabled()) {
            mTestUtils.disable(mAdapter);
        }
    }

    @Override
    protected void tearDown() throws Exception {
        super.tearDown();

        mTestUtils.close();
    }

@@ -61,13 +67,10 @@ public class BluetoothStressTest extends InstrumentationTestCase {
            return;
        }

        BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter();
        mTestUtils.disable(adapter);

        for (int i = 0; i < iterations; i++) {
            mTestUtils.writeOutput("enable iteration " + (i + 1) + " of " + iterations);
            mTestUtils.enable(adapter);
            mTestUtils.disable(adapter);
            mTestUtils.enable(mAdapter);
            mTestUtils.disable(mAdapter);
        }
    }

@@ -80,18 +83,14 @@ public class BluetoothStressTest extends InstrumentationTestCase {
            return;
        }

        BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter();
        mTestUtils.disable(adapter);
        mTestUtils.enable(adapter);
        mTestUtils.undiscoverable(adapter);
        mTestUtils.enable(mAdapter);
        mTestUtils.undiscoverable(mAdapter);

        for (int i = 0; i < iterations; i++) {
            mTestUtils.writeOutput("discoverable iteration " + (i + 1) + " of " + iterations);
            mTestUtils.discoverable(adapter);
            mTestUtils.undiscoverable(adapter);
            mTestUtils.discoverable(mAdapter);
            mTestUtils.undiscoverable(mAdapter);
        }

        mTestUtils.disable(adapter);
    }

    /**
@@ -103,18 +102,14 @@ public class BluetoothStressTest extends InstrumentationTestCase {
            return;
        }

        BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter();
        mTestUtils.disable(adapter);
        mTestUtils.enable(adapter);
        mTestUtils.stopScan(adapter);
        mTestUtils.enable(mAdapter);
        mTestUtils.stopScan(mAdapter);

        for (int i = 0; i < iterations; i++) {
            mTestUtils.writeOutput("scan iteration " + (i + 1) + " of " + iterations);
            mTestUtils.startScan(adapter);
            mTestUtils.stopScan(adapter);
            mTestUtils.startScan(mAdapter);
            mTestUtils.stopScan(mAdapter);
        }

        mTestUtils.disable(adapter);
    }

    /**
@@ -125,19 +120,16 @@ public class BluetoothStressTest extends InstrumentationTestCase {
        if (iterations == 0) {
            return;
        }
        BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter();
        mTestUtils.disable(adapter);
        mTestUtils.enable(adapter);
        mTestUtils.disablePan(adapter);

        mTestUtils.enable(mAdapter);
        mTestUtils.disablePan(mAdapter);

        for (int i = 0; i < iterations; i++) {
            mTestUtils.writeOutput("testEnablePan iteration " + (i + 1) + " of "
                    + iterations);
            mTestUtils.enablePan(adapter);
            mTestUtils.disablePan(adapter);
            mTestUtils.enablePan(mAdapter);
            mTestUtils.disablePan(mAdapter);
        }

        mTestUtils.disable(adapter);
    }

    /**
@@ -152,19 +144,16 @@ public class BluetoothStressTest extends InstrumentationTestCase {
            return;
        }

        BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter();
        BluetoothDevice device = adapter.getRemoteDevice(BluetoothTestRunner.sDeviceAddress);
        mTestUtils.disable(adapter);
        mTestUtils.enable(adapter);
        mTestUtils.unpair(adapter, device);
        BluetoothDevice device = mAdapter.getRemoteDevice(BluetoothTestRunner.sDeviceAddress);
        mTestUtils.enable(mAdapter);
        mTestUtils.unpair(mAdapter, device);

        for (int i = 0; i < iterations; i++) {
            mTestUtils.writeOutput("pair iteration " + (i + 1) + " of " + iterations);
            mTestUtils.pair(adapter, device, BluetoothTestRunner.sDevicePairPasskey,
            mTestUtils.pair(mAdapter, device, BluetoothTestRunner.sDevicePairPasskey,
                    BluetoothTestRunner.sDevicePairPin);
            mTestUtils.unpair(adapter, device);
            mTestUtils.unpair(mAdapter, device);
        }
        mTestUtils.disable(adapter);
    }

    /**
@@ -178,19 +167,16 @@ public class BluetoothStressTest extends InstrumentationTestCase {
        if (iterations == 0) {
            return;
        }
        BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter();
        BluetoothDevice device = adapter.getRemoteDevice(BluetoothTestRunner.sDeviceAddress);
        mTestUtils.disable(adapter);
        mTestUtils.enable(adapter);
        mTestUtils.unpair(adapter, device);
        BluetoothDevice device = mAdapter.getRemoteDevice(BluetoothTestRunner.sDeviceAddress);
        mTestUtils.enable(mAdapter);
        mTestUtils.unpair(mAdapter, device);

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

    /**
@@ -205,25 +191,22 @@ public class BluetoothStressTest extends InstrumentationTestCase {
            return;
        }

        BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter();
        BluetoothDevice device = adapter.getRemoteDevice(BluetoothTestRunner.sDeviceAddress);
        mTestUtils.disable(adapter);
        mTestUtils.enable(adapter);
        mTestUtils.unpair(adapter, device);
        mTestUtils.pair(adapter, device, BluetoothTestRunner.sDevicePairPasskey,
        BluetoothDevice device = mAdapter.getRemoteDevice(BluetoothTestRunner.sDeviceAddress);
        mTestUtils.enable(mAdapter);
        mTestUtils.unpair(mAdapter, device);
        mTestUtils.pair(mAdapter, device, BluetoothTestRunner.sDevicePairPasskey,
                BluetoothTestRunner.sDevicePairPin);
        mTestUtils.disconnectProfile(adapter, device, BluetoothProfile.A2DP, null);
        mTestUtils.disconnectProfile(mAdapter, device, BluetoothProfile.A2DP, null);

        for (int i = 0; i < iterations; i++) {
            mTestUtils.writeOutput("connectA2dp iteration " + (i + 1) + " of " + iterations);
            mTestUtils.connectProfile(adapter, device, BluetoothProfile.A2DP,
            mTestUtils.connectProfile(mAdapter, device, BluetoothProfile.A2DP,
                    String.format("connectA2dp(device=%s)", device));
            mTestUtils.disconnectProfile(adapter, device, BluetoothProfile.A2DP,
            mTestUtils.disconnectProfile(mAdapter, device, BluetoothProfile.A2DP,
                    String.format("disconnectA2dp(device=%s)", device));
        }

        mTestUtils.unpair(adapter, device);
        mTestUtils.disable(adapter);
        mTestUtils.unpair(mAdapter, device);
    }

    /**
@@ -238,25 +221,22 @@ public class BluetoothStressTest extends InstrumentationTestCase {
            return;
        }

        BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter();
        BluetoothDevice device = adapter.getRemoteDevice(BluetoothTestRunner.sDeviceAddress);
        mTestUtils.disable(adapter);
        mTestUtils.enable(adapter);
        mTestUtils.unpair(adapter, device);
        mTestUtils.pair(adapter, device, BluetoothTestRunner.sDevicePairPasskey,
        BluetoothDevice device = mAdapter.getRemoteDevice(BluetoothTestRunner.sDeviceAddress);
        mTestUtils.enable(mAdapter);
        mTestUtils.unpair(mAdapter, device);
        mTestUtils.pair(mAdapter, device, BluetoothTestRunner.sDevicePairPasskey,
                BluetoothTestRunner.sDevicePairPin);
        mTestUtils.disconnectProfile(adapter, device, BluetoothProfile.HEADSET, null);
        mTestUtils.disconnectProfile(mAdapter, device, BluetoothProfile.HEADSET, null);

        for (int i = 0; i < iterations; i++) {
            mTestUtils.writeOutput("connectHeadset iteration " + (i + 1) + " of " + iterations);
            mTestUtils.connectProfile(adapter, device, BluetoothProfile.HEADSET,
            mTestUtils.connectProfile(mAdapter, device, BluetoothProfile.HEADSET,
                    String.format("connectHeadset(device=%s)", device));
            mTestUtils.disconnectProfile(adapter, device, BluetoothProfile.HEADSET,
            mTestUtils.disconnectProfile(mAdapter, device, BluetoothProfile.HEADSET,
                    String.format("disconnectHeadset(device=%s)", device));
        }

        mTestUtils.unpair(adapter, device);
        mTestUtils.disable(adapter);
        mTestUtils.unpair(mAdapter, device);
    }

    /**
@@ -271,25 +251,22 @@ public class BluetoothStressTest extends InstrumentationTestCase {
            return;
        }

        BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter();
        BluetoothDevice device = adapter.getRemoteDevice(BluetoothTestRunner.sDeviceAddress);
        mTestUtils.disable(adapter);
        mTestUtils.enable(adapter);
        mTestUtils.unpair(adapter, device);
        mTestUtils.pair(adapter, device, BluetoothTestRunner.sDevicePairPasskey,
        BluetoothDevice device = mAdapter.getRemoteDevice(BluetoothTestRunner.sDeviceAddress);
        mTestUtils.enable(mAdapter);
        mTestUtils.unpair(mAdapter, device);
        mTestUtils.pair(mAdapter, device, BluetoothTestRunner.sDevicePairPasskey,
                BluetoothTestRunner.sDevicePairPin);
        mTestUtils.disconnectProfile(adapter, device, BluetoothProfile.INPUT_DEVICE, null);
        mTestUtils.disconnectProfile(mAdapter, device, BluetoothProfile.INPUT_DEVICE, null);

        for (int i = 0; i < iterations; i++) {
            mTestUtils.writeOutput("connectInput iteration " + (i + 1) + " of " + iterations);
            mTestUtils.connectProfile(adapter, device, BluetoothProfile.INPUT_DEVICE,
            mTestUtils.connectProfile(mAdapter, device, BluetoothProfile.INPUT_DEVICE,
                    String.format("connectInput(device=%s)", device));
            mTestUtils.disconnectProfile(adapter, device, BluetoothProfile.INPUT_DEVICE,
            mTestUtils.disconnectProfile(mAdapter, device, BluetoothProfile.INPUT_DEVICE,
                    String.format("disconnectInput(device=%s)", device));
        }

        mTestUtils.unpair(adapter, device);
        mTestUtils.disable(adapter);
        mTestUtils.unpair(mAdapter, device);
    }

    /**
@@ -304,22 +281,19 @@ public class BluetoothStressTest extends InstrumentationTestCase {
            return;
        }

        BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter();
        BluetoothDevice device = adapter.getRemoteDevice(BluetoothTestRunner.sDeviceAddress);
        mTestUtils.disable(adapter);
        mTestUtils.enable(adapter);
        mTestUtils.unpair(adapter, device);
        mTestUtils.pair(adapter, device, BluetoothTestRunner.sDevicePairPasskey,
        BluetoothDevice device = mAdapter.getRemoteDevice(BluetoothTestRunner.sDeviceAddress);
        mTestUtils.enable(mAdapter);
        mTestUtils.unpair(mAdapter, device);
        mTestUtils.pair(mAdapter, device, BluetoothTestRunner.sDevicePairPasskey,
                BluetoothTestRunner.sDevicePairPin);

        for (int i = 0; i < iterations; i++) {
            mTestUtils.writeOutput("connectPan iteration " + (i + 1) + " of " + iterations);
            mTestUtils.connectPan(adapter, device);
            mTestUtils.disconnectPan(adapter, device);
            mTestUtils.connectPan(mAdapter, device);
            mTestUtils.disconnectPan(mAdapter, device);
        }

        mTestUtils.unpair(adapter, device);
        mTestUtils.disable(adapter);
        mTestUtils.unpair(mAdapter, device);
    }

    /**
@@ -334,26 +308,23 @@ public class BluetoothStressTest extends InstrumentationTestCase {
            return;
        }

        BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter();
        BluetoothDevice device = adapter.getRemoteDevice(BluetoothTestRunner.sDeviceAddress);
        mTestUtils.disable(adapter);
        mTestUtils.enable(adapter);
        mTestUtils.disablePan(adapter);
        mTestUtils.enablePan(adapter);
        mTestUtils.unpair(adapter, device);
        mTestUtils.acceptPair(adapter, device, BluetoothTestRunner.sDevicePairPasskey,
        BluetoothDevice device = mAdapter.getRemoteDevice(BluetoothTestRunner.sDeviceAddress);
        mTestUtils.enable(mAdapter);
        mTestUtils.disablePan(mAdapter);
        mTestUtils.enablePan(mAdapter);
        mTestUtils.unpair(mAdapter, device);
        mTestUtils.acceptPair(mAdapter, device, BluetoothTestRunner.sDevicePairPasskey,
                BluetoothTestRunner.sDevicePairPin);

        for (int i = 0; i < iterations; i++) {
            mTestUtils.writeOutput("incomingPanConnection iteration " + (i + 1) + " of "
                    + iterations);
            mTestUtils.incomingPanConnection(adapter, device);
            mTestUtils.incomingPanDisconnection(adapter, device);
            mTestUtils.incomingPanConnection(mAdapter, device);
            mTestUtils.incomingPanDisconnection(mAdapter, device);
        }

        mTestUtils.unpair(adapter, device);
        mTestUtils.disablePan(adapter);
        mTestUtils.disable(adapter);
        mTestUtils.unpair(mAdapter, device);
        mTestUtils.disablePan(mAdapter);
    }

    /**
@@ -368,28 +339,25 @@ public class BluetoothStressTest extends InstrumentationTestCase {
            return;
        }

        BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter();
        BluetoothDevice device = adapter.getRemoteDevice(BluetoothTestRunner.sDeviceAddress);
        mTestUtils.disable(adapter);
        mTestUtils.enable(adapter);
        mTestUtils.unpair(adapter, device);
        mTestUtils.pair(adapter, device, BluetoothTestRunner.sDevicePairPasskey,
        BluetoothDevice device = mAdapter.getRemoteDevice(BluetoothTestRunner.sDeviceAddress);
        mTestUtils.enable(mAdapter);
        mTestUtils.unpair(mAdapter, device);
        mTestUtils.pair(mAdapter, device, BluetoothTestRunner.sDevicePairPasskey,
                BluetoothTestRunner.sDevicePairPin);
        mTestUtils.disconnectProfile(adapter, device, BluetoothProfile.HEADSET, null);
        mTestUtils.connectProfile(adapter, device, BluetoothProfile.HEADSET, null);
        mTestUtils.stopSco(adapter, device);
        mTestUtils.disconnectProfile(mAdapter, device, BluetoothProfile.HEADSET, null);
        mTestUtils.connectProfile(mAdapter, device, BluetoothProfile.HEADSET, null);
        mTestUtils.stopSco(mAdapter, device);

        for (int i = 0; i < iterations; i++) {
            mTestUtils.writeOutput("startStopSco iteration " + (i + 1) + " of " + iterations);
            mTestUtils.startSco(adapter, device);
            mTestUtils.startSco(mAdapter, device);
            sleep(SCO_SLEEP_TIME);
            mTestUtils.stopSco(adapter, device);
            mTestUtils.stopSco(mAdapter, device);
            sleep(SCO_SLEEP_TIME);
        }

        mTestUtils.disconnectProfile(adapter, device, BluetoothProfile.HEADSET, null);
        mTestUtils.unpair(adapter, device);
        mTestUtils.disable(adapter);
        mTestUtils.disconnectProfile(mAdapter, device, BluetoothProfile.HEADSET, null);
        mTestUtils.unpair(mAdapter, device);
    }

    private void sleep(long time) {
+10 −48
Original line number Diff line number Diff line
@@ -425,33 +425,14 @@ public class BluetoothTestUtils extends Assert {
    public void enable(BluetoothAdapter adapter) {
        int mask = (BluetoothReceiver.STATE_TURNING_ON_FLAG | BluetoothReceiver.STATE_ON_FLAG
                | BluetoothReceiver.SCAN_MODE_CONNECTABLE_FLAG);
        long start = -1;
        long start = System.currentTimeMillis();
        BluetoothReceiver receiver = getBluetoothReceiver(mask);

        int state = adapter.getState();
        switch (state) {
            case BluetoothAdapter.STATE_ON:
                assertTrue(adapter.isEnabled());
                removeReceiver(receiver);
                return;
            case BluetoothAdapter.STATE_TURNING_ON:
        writeOutput("Enabling Bluetooth adapter.");
        assertFalse(adapter.isEnabled());
                mask = 0; // Don't check for received intents since we might have missed them.
                break;
            case BluetoothAdapter.STATE_OFF:
                assertFalse(adapter.isEnabled());
                start = System.currentTimeMillis();
                assertTrue(adapter.enable());
                break;
            case BluetoothAdapter.STATE_TURNING_OFF:
                start = System.currentTimeMillis();
        assertTrue(adapter.enable());
                break;
            default:
                removeReceiver(receiver);
                fail(String.format("enable() invalid state: state=%d", state));
        }

        int state = BluetoothAdapter.STATE_OFF;
        long s = System.currentTimeMillis();
        while (System.currentTimeMillis() - s < ENABLE_DISABLE_TIMEOUT) {
            state = adapter.getState();
@@ -485,33 +466,14 @@ public class BluetoothTestUtils extends Assert {
    public void disable(BluetoothAdapter adapter) {
        int mask = (BluetoothReceiver.STATE_TURNING_OFF_FLAG | BluetoothReceiver.STATE_OFF_FLAG
                | BluetoothReceiver.SCAN_MODE_NONE_FLAG);
        long start = -1;
        long start = System.currentTimeMillis();
        BluetoothReceiver receiver = getBluetoothReceiver(mask);

        int state = adapter.getState();
        switch (state) {
            case BluetoothAdapter.STATE_OFF:
                assertFalse(adapter.isEnabled());
                removeReceiver(receiver);
                return;
            case BluetoothAdapter.STATE_TURNING_ON:
                assertFalse(adapter.isEnabled());
                start = System.currentTimeMillis();
                break;
            case BluetoothAdapter.STATE_ON:
        writeOutput("Disabling Bluetooth adapter.");
        assertTrue(adapter.isEnabled());
                start = System.currentTimeMillis();
        assertTrue(adapter.disable());
                break;
            case BluetoothAdapter.STATE_TURNING_OFF:
                assertFalse(adapter.isEnabled());
                mask = 0; // Don't check for received intents since we might have missed them.
                break;
            default:
                removeReceiver(receiver);
                fail(String.format("disable() invalid state: state=%d", state));
        }

        int state = BluetoothAdapter.STATE_OFF;
        long s = System.currentTimeMillis();
        while (System.currentTimeMillis() - s < ENABLE_DISABLE_TIMEOUT) {
            state = adapter.getState();