2 * Copyright (C) 2010 The Android Open Source Project
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
17 package android.bluetooth;
19 import android.content.Context;
20 import android.test.InstrumentationTestCase;
22 public class BluetoothStressTest extends InstrumentationTestCase {
23 private static final String TAG = "BluetoothStressTest";
24 private static final String OUTPUT_FILE = "BluetoothStressTestOutput.txt";
26 private BluetoothTestUtils mTestUtils;
29 protected void setUp() throws Exception {
32 Context context = getInstrumentation().getTargetContext();
33 mTestUtils = new BluetoothTestUtils(context, TAG, OUTPUT_FILE);
37 protected void tearDown() throws Exception {
43 public void testEnable() {
44 int iterations = BluetoothTestRunner.sEnableIterations;
45 BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter();
47 for (int i = 0; i < iterations; i++) {
48 mTestUtils.writeOutput("enable iteration " + (i + 1) + " of " + iterations);
49 mTestUtils.enable(adapter);
50 mTestUtils.disable(adapter);
54 public void testDiscoverable() {
55 int iterations = BluetoothTestRunner.sDiscoverableIterations;
56 BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter();
57 mTestUtils.enable(adapter);
59 for (int i = 0; i < iterations; i++) {
60 mTestUtils.writeOutput("discoverable iteration " + (i + 1) + " of " + iterations);
61 mTestUtils.discoverable(adapter);
62 mTestUtils.undiscoverable(adapter);
65 mTestUtils.disable(adapter);
68 public void testScan() {
69 int iterations = BluetoothTestRunner.sScanIterations;
70 BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter();
71 mTestUtils.enable(adapter);
73 for (int i = 0; i < iterations; i++) {
74 mTestUtils.writeOutput("scan iteration " + (i + 1) + " of " + iterations);
75 mTestUtils.startScan(adapter);
76 mTestUtils.stopScan(adapter);
79 mTestUtils.disable(adapter);
82 public void testPair() {
83 int iterations = BluetoothTestRunner.sPairIterations;
84 BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter();
85 BluetoothDevice device = adapter.getRemoteDevice(BluetoothTestRunner.sPairAddress);
86 mTestUtils.enable(adapter);
88 for (int i = 0; i < iterations; i++) {
89 mTestUtils.writeOutput("pair iteration " + (i + 1) + " of " + iterations);
90 mTestUtils.pair(adapter, device, BluetoothTestRunner.sPairPasskey,
91 BluetoothTestRunner.sPairPin);
92 mTestUtils.unpair(adapter, device);
94 mTestUtils.disable(adapter);
97 public void testAcceptPair() {
98 int iterations = BluetoothTestRunner.sPairIterations;
99 BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter();
100 BluetoothDevice device = adapter.getRemoteDevice(BluetoothTestRunner.sPairAddress);
101 mTestUtils.enable(adapter);
103 for (int i = 0; i < iterations; i++) {
104 mTestUtils.writeOutput("acceptPair iteration " + (i + 1) + " of " + iterations);
105 mTestUtils.acceptPair(adapter, device, BluetoothTestRunner.sPairPasskey,
106 BluetoothTestRunner.sPairPin);
107 mTestUtils.unpair(adapter, device);
109 mTestUtils.disable(adapter);
112 public void testConnectA2dp() {
113 int iterations = BluetoothTestRunner.sConnectA2dpIterations;
114 BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter();
115 BluetoothDevice device = adapter.getRemoteDevice(BluetoothTestRunner.sA2dpAddress);
117 mTestUtils.enable(adapter);
118 mTestUtils.pair(adapter, device, BluetoothTestRunner.sPairPasskey,
119 BluetoothTestRunner.sPairPin);
121 for (int i = 0; i < iterations; i++) {
122 mTestUtils.writeOutput("connectA2dp iteration " + (i + 1) + " of " + iterations);
123 mTestUtils.connectA2dp(adapter, device);
124 mTestUtils.disconnectA2dp(adapter, device);
127 // TODO: Unpair from device if device can accept pairing after unpairing
128 mTestUtils.disable(adapter);
131 public void testConnectHeadset() {
132 int iterations = BluetoothTestRunner.sConnectHeadsetIterations;
133 BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter();
134 BluetoothDevice device = adapter.getRemoteDevice(BluetoothTestRunner.sHeadsetAddress);
136 mTestUtils.enable(adapter);
137 mTestUtils.pair(adapter, device, BluetoothTestRunner.sPairPasskey,
138 BluetoothTestRunner.sPairPin);
140 for (int i = 0; i < iterations; i++) {
141 mTestUtils.writeOutput("connectHeadset iteration " + (i + 1) + " of " + iterations);
142 mTestUtils.connectHeadset(adapter, device);
143 mTestUtils.disconnectHeadset(adapter, device);
146 // TODO: Unpair from device if device can accept pairing after unpairing
147 mTestUtils.disable(adapter);