Merge "Clean up Bluetooth test code." into nyc-mr1-dev

This commit is contained in:
Sharvil Nanavati
2016-05-31 21:03:45 +00:00
committed by Android (Google) Code Review
2 changed files with 94 additions and 164 deletions

View File

@@ -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) {

View File

@@ -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:
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));
}
writeOutput("Enabling Bluetooth adapter.");
assertFalse(adapter.isEnabled());
assertTrue(adapter.enable());
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:
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));
}
writeOutput("Disabling Bluetooth adapter.");
assertTrue(adapter.isEnabled());
assertTrue(adapter.disable());
int state = BluetoothAdapter.STATE_OFF;
long s = System.currentTimeMillis();
while (System.currentTimeMillis() - s < ENABLE_DISABLE_TIMEOUT) {
state = adapter.getState();