| /* |
| * Copyright (C) 2010 The Android Open Source Project |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| package android.bluetooth; |
| |
| import junit.framework.TestSuite; |
| |
| import android.os.Bundle; |
| import android.test.InstrumentationTestRunner; |
| import android.test.InstrumentationTestSuite; |
| import android.util.Log; |
| |
| /** |
| * Instrumentation test runner for Bluetooth tests. |
| * <p> |
| * To run: |
| * <pre> |
| * {@code |
| * adb shell am instrument \ |
| * [-e enable_iterations <iterations>] \ |
| * [-e discoverable_iterations <iterations>] \ |
| * [-e scan_iterations <iterations>] \ |
| * [-e enable_pan_iterations <iterations>] \ |
| * [-e pair_iterations <iterations>] \ |
| * [-e connect_a2dp_iterations <iterations>] \ |
| * [-e connect_headset_iterations <iterations>] \ |
| * [-e connect_input_iterations <iterations>] \ |
| * [-e connect_pan_iterations <iterations>] \ |
| * [-e start_stop_sco_iterations <iterations>] \ |
| * [-e pair_address <address>] \ |
| * [-e headset_address <address>] \ |
| * [-e a2dp_address <address>] \ |
| * [-e input_address <address>] \ |
| * [-e pan_address <address>] \ |
| * [-e pair_pin <pin>] \ |
| * [-e pair_passkey <passkey>] \ |
| * -w com.android.bluetooth.tests/android.bluetooth.BluetoothTestRunner |
| * } |
| * </pre> |
| */ |
| public class BluetoothTestRunner extends InstrumentationTestRunner { |
| private static final String TAG = "BluetoothTestRunner"; |
| |
| public static int sEnableIterations = 100; |
| public static int sDiscoverableIterations = 1000; |
| public static int sScanIterations = 1000; |
| public static int sEnablePanIterations = 1000; |
| public static int sPairIterations = 100; |
| public static int sConnectHeadsetIterations = 100; |
| public static int sConnectA2dpIterations = 100; |
| public static int sConnectInputIterations = 100; |
| public static int sConnectPanIterations = 100; |
| public static int sStartStopScoIterations = 100; |
| |
| public static String sDeviceAddress = ""; |
| public static byte[] sDevicePairPin = {'1', '2', '3', '4'}; |
| public static int sDevicePairPasskey = 123456; |
| |
| @Override |
| public TestSuite getAllTests() { |
| TestSuite suite = new InstrumentationTestSuite(this); |
| suite.addTestSuite(BluetoothStressTest.class); |
| return suite; |
| } |
| |
| @Override |
| public ClassLoader getLoader() { |
| return BluetoothTestRunner.class.getClassLoader(); |
| } |
| |
| @Override |
| public void onCreate(Bundle arguments) { |
| String val = arguments.getString("enable_iterations"); |
| if (val != null) { |
| try { |
| sEnableIterations = Integer.parseInt(val); |
| } catch (NumberFormatException e) { |
| // Invalid argument, fall back to default value |
| } |
| } |
| |
| val = arguments.getString("discoverable_iterations"); |
| if (val != null) { |
| try { |
| sDiscoverableIterations = Integer.parseInt(val); |
| } catch (NumberFormatException e) { |
| // Invalid argument, fall back to default value |
| } |
| } |
| |
| val = arguments.getString("scan_iterations"); |
| if (val != null) { |
| try { |
| sScanIterations = Integer.parseInt(val); |
| } catch (NumberFormatException e) { |
| // Invalid argument, fall back to default value |
| } |
| } |
| |
| val = arguments.getString("enable_pan_iterations"); |
| if (val != null) { |
| try { |
| sEnablePanIterations = Integer.parseInt(val); |
| } catch (NumberFormatException e) { |
| // Invalid argument, fall back to default value |
| } |
| } |
| |
| val = arguments.getString("pair_iterations"); |
| if (val != null) { |
| try { |
| sPairIterations = Integer.parseInt(val); |
| } catch (NumberFormatException e) { |
| // Invalid argument, fall back to default value |
| } |
| } |
| |
| val = arguments.getString("connect_a2dp_iterations"); |
| if (val != null) { |
| try { |
| sConnectA2dpIterations = Integer.parseInt(val); |
| } catch (NumberFormatException e) { |
| // Invalid argument, fall back to default value |
| } |
| } |
| |
| val = arguments.getString("connect_headset_iterations"); |
| if (val != null) { |
| try { |
| sConnectHeadsetIterations = Integer.parseInt(val); |
| } catch (NumberFormatException e) { |
| // Invalid argument, fall back to default value |
| } |
| } |
| |
| val = arguments.getString("connect_input_iterations"); |
| if (val != null) { |
| try { |
| sConnectInputIterations = Integer.parseInt(val); |
| } catch (NumberFormatException e) { |
| // Invalid argument, fall back to default value |
| } |
| } |
| |
| val = arguments.getString("connect_pan_iterations"); |
| if (val != null) { |
| try { |
| sConnectPanIterations = Integer.parseInt(val); |
| } catch (NumberFormatException e) { |
| // Invalid argument, fall back to default value |
| } |
| } |
| |
| val = arguments.getString("start_stop_sco_iterations"); |
| if (val != null) { |
| try { |
| sStartStopScoIterations = Integer.parseInt(val); |
| } catch (NumberFormatException e) { |
| // Invalid argument, fall back to default value |
| } |
| } |
| |
| val = arguments.getString("device_address"); |
| if (val != null) { |
| sDeviceAddress = val; |
| } |
| |
| val = arguments.getString("device_pair_pin"); |
| if (val != null) { |
| byte[] pin = BluetoothDevice.convertPinToBytes(val); |
| if (pin != null) { |
| sDevicePairPin = pin; |
| } |
| } |
| |
| val = arguments.getString("device_pair_passkey"); |
| if (val != null) { |
| try { |
| sDevicePairPasskey = Integer.parseInt(val); |
| } catch (NumberFormatException e) { |
| // Invalid argument, fall back to default value |
| } |
| } |
| |
| Log.i(TAG, String.format("enable_iterations=%d", sEnableIterations)); |
| Log.i(TAG, String.format("discoverable_iterations=%d", sDiscoverableIterations)); |
| Log.i(TAG, String.format("scan_iterations=%d", sScanIterations)); |
| Log.i(TAG, String.format("pair_iterations=%d", sPairIterations)); |
| Log.i(TAG, String.format("connect_a2dp_iterations=%d", sConnectA2dpIterations)); |
| Log.i(TAG, String.format("connect_headset_iterations=%d", sConnectHeadsetIterations)); |
| Log.i(TAG, String.format("connect_input_iterations=%d", sConnectInputIterations)); |
| Log.i(TAG, String.format("connect_pan_iterations=%d", sConnectPanIterations)); |
| Log.i(TAG, String.format("start_stop_sco_iterations=%d", sStartStopScoIterations)); |
| Log.i(TAG, String.format("device_address=%s", sDeviceAddress)); |
| Log.i(TAG, String.format("device_pair_pin=%s", new String(sDevicePairPin))); |
| Log.i(TAG, String.format("device_pair_passkey=%d", sDevicePairPasskey)); |
| |
| // Call onCreate last since we want to set the static variables first. |
| super.onCreate(arguments); |
| } |
| } |