16026d52710d7a6195a33885020d29aa1330fa855Xia Wang/* 26026d52710d7a6195a33885020d29aa1330fa855Xia Wang * Copyright (C) 2010, The Android Open Source Project 36026d52710d7a6195a33885020d29aa1330fa855Xia Wang * 46026d52710d7a6195a33885020d29aa1330fa855Xia Wang * Licensed under the Apache License, Version 2.0 (the "License"); 56026d52710d7a6195a33885020d29aa1330fa855Xia Wang * you may not use this file except in compliance with the License. 66026d52710d7a6195a33885020d29aa1330fa855Xia Wang * You may obtain a copy of the License at 76026d52710d7a6195a33885020d29aa1330fa855Xia Wang * 86026d52710d7a6195a33885020d29aa1330fa855Xia Wang * http://www.apache.org/licenses/LICENSE-2.0 96026d52710d7a6195a33885020d29aa1330fa855Xia Wang * 106026d52710d7a6195a33885020d29aa1330fa855Xia Wang * Unless required by applicable law or agreed to in writing, software 116026d52710d7a6195a33885020d29aa1330fa855Xia Wang * distributed under the License is distributed on an "AS IS" BASIS, 126026d52710d7a6195a33885020d29aa1330fa855Xia Wang * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 136026d52710d7a6195a33885020d29aa1330fa855Xia Wang * See the License for the specific language governing permissions and 146026d52710d7a6195a33885020d29aa1330fa855Xia Wang * limitations under the License. 156026d52710d7a6195a33885020d29aa1330fa855Xia Wang */ 166026d52710d7a6195a33885020d29aa1330fa855Xia Wang 176026d52710d7a6195a33885020d29aa1330fa855Xia Wangpackage com.android.connectivitymanagertest; 186026d52710d7a6195a33885020d29aa1330fa855Xia Wang 196026d52710d7a6195a33885020d29aa1330fa855Xia Wangimport android.os.Bundle; 206026d52710d7a6195a33885020d29aa1330fa855Xia Wangimport android.test.InstrumentationTestRunner; 216026d52710d7a6195a33885020d29aa1330fa855Xia Wangimport android.test.InstrumentationTestSuite; 22b97435c94f4d35a70d63e5dcba5415b0110cf2c9Xia Wang 236026d52710d7a6195a33885020d29aa1330fa855Xia Wangimport com.android.connectivitymanagertest.stress.WifiApStress; 2490e1c782a63475cd9b3973936decf6a4f6c6148fXia Wangimport com.android.connectivitymanagertest.stress.WifiStressTest; 256026d52710d7a6195a33885020d29aa1330fa855Xia Wang 266026d52710d7a6195a33885020d29aa1330fa855Xia Wangimport junit.framework.TestSuite; 276026d52710d7a6195a33885020d29aa1330fa855Xia Wang 286026d52710d7a6195a33885020d29aa1330fa855Xia Wang/** 296026d52710d7a6195a33885020d29aa1330fa855Xia Wang * Instrumentation Test Runner for all stress tests 306026d52710d7a6195a33885020d29aa1330fa855Xia Wang * 316026d52710d7a6195a33885020d29aa1330fa855Xia Wang * To run the stress tests: 326026d52710d7a6195a33885020d29aa1330fa855Xia Wang * 336026d52710d7a6195a33885020d29aa1330fa855Xia Wang * adb shell am instrument -e stressnum <stress times> \ 346026d52710d7a6195a33885020d29aa1330fa855Xia Wang * -w com.android.connectivitymanagertest/.ConnectivityManagerStressTestRunner 356026d52710d7a6195a33885020d29aa1330fa855Xia Wang */ 366026d52710d7a6195a33885020d29aa1330fa855Xia Wang 376026d52710d7a6195a33885020d29aa1330fa855Xia Wangpublic class ConnectivityManagerStressTestRunner extends InstrumentationTestRunner { 3890e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang public int mSoftapIterations = 100; 3990e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang public int mScanIterations = 100; 4090e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang public int mReconnectIterations = 100; 41a4c2caac05009512213454d329579a79dde11e5fXia Wang // sleep time before restart wifi, default is set to 2 minutes 42a4c2caac05009512213454d329579a79dde11e5fXia Wang public int mSleepTime = 2 * 60 * 1000; 4390e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang public String mReconnectSsid = "securenetdhcp"; 4490e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang public String mReconnectPassword = "androidwifi"; 45776cca3b3a84cd16bdaccdd43963cc34d923e0a4Xia Wang public boolean mWifiOnlyFlag = false; 4690e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang 476026d52710d7a6195a33885020d29aa1330fa855Xia Wang @Override 486026d52710d7a6195a33885020d29aa1330fa855Xia Wang public TestSuite getAllTests() { 496026d52710d7a6195a33885020d29aa1330fa855Xia Wang TestSuite suite = new InstrumentationTestSuite(this); 50776cca3b3a84cd16bdaccdd43963cc34d923e0a4Xia Wang suite.addTestSuite(WifiApStress.class); 51776cca3b3a84cd16bdaccdd43963cc34d923e0a4Xia Wang suite.addTestSuite(WifiStressTest.class); 526026d52710d7a6195a33885020d29aa1330fa855Xia Wang return suite; 536026d52710d7a6195a33885020d29aa1330fa855Xia Wang } 546026d52710d7a6195a33885020d29aa1330fa855Xia Wang 556026d52710d7a6195a33885020d29aa1330fa855Xia Wang @Override 566026d52710d7a6195a33885020d29aa1330fa855Xia Wang public ClassLoader getLoader() { 576026d52710d7a6195a33885020d29aa1330fa855Xia Wang return ConnectivityManagerTestRunner.class.getClassLoader(); 586026d52710d7a6195a33885020d29aa1330fa855Xia Wang } 596026d52710d7a6195a33885020d29aa1330fa855Xia Wang 606026d52710d7a6195a33885020d29aa1330fa855Xia Wang @Override 616026d52710d7a6195a33885020d29aa1330fa855Xia Wang public void onCreate(Bundle icicle) { 626026d52710d7a6195a33885020d29aa1330fa855Xia Wang super.onCreate(icicle); 63776cca3b3a84cd16bdaccdd43963cc34d923e0a4Xia Wang String valueStr = (String) icicle.get("softap_iterations"); 64776cca3b3a84cd16bdaccdd43963cc34d923e0a4Xia Wang if (valueStr != null) { 65776cca3b3a84cd16bdaccdd43963cc34d923e0a4Xia Wang int iteration = Integer.parseInt(valueStr); 66776cca3b3a84cd16bdaccdd43963cc34d923e0a4Xia Wang if (iteration > 0) { 67776cca3b3a84cd16bdaccdd43963cc34d923e0a4Xia Wang mSoftapIterations = iteration; 6890e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang } 6990e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang } 7090e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang 7190e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang String scanIterationStr = (String) icicle.get("scan_iterations"); 7290e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang if (scanIterationStr != null) { 7390e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang int scanIteration = Integer.parseInt(scanIterationStr); 7490e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang if (scanIteration > 0) { 7590e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang mScanIterations = scanIteration; 7690e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang } 7790e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang } 7890e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang 7990e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang String ssidStr= (String) icicle.get("reconnect_ssid"); 8090e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang if (ssidStr != null) { 8190e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang mReconnectSsid = ssidStr; 8290e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang } 8390e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang 8490e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang String passwordStr = (String) icicle.get("reconnect_password"); 8590e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang if (passwordStr != null) { 8690e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang mReconnectPassword = passwordStr; 8790e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang } 8890e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang 8990e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang String reconnectStr = (String) icicle.get("reconnect_iterations"); 9090e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang if (reconnectStr != null) { 9190e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang int iteration = Integer.parseInt(reconnectStr); 9290e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang if (iteration > 0) { 9390e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang mReconnectIterations = iteration; 946026d52710d7a6195a33885020d29aa1330fa855Xia Wang } 956026d52710d7a6195a33885020d29aa1330fa855Xia Wang } 966026d52710d7a6195a33885020d29aa1330fa855Xia Wang 9790e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang String sleepTimeStr = (String) icicle.get("sleep_time"); 9890e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang if (sleepTimeStr != null) { 9990e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang int sleepTime = Integer.parseInt(sleepTimeStr); 10090e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang if (sleepTime > 0) { 10190e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang mSleepTime = 1000 * sleepTime; 10290e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang } 10390e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang } 104776cca3b3a84cd16bdaccdd43963cc34d923e0a4Xia Wang 105776cca3b3a84cd16bdaccdd43963cc34d923e0a4Xia Wang String wifiOnlyFlag = (String) icicle.get("wifi-only"); 106776cca3b3a84cd16bdaccdd43963cc34d923e0a4Xia Wang if (wifiOnlyFlag != null) { 107776cca3b3a84cd16bdaccdd43963cc34d923e0a4Xia Wang mWifiOnlyFlag = true; 108776cca3b3a84cd16bdaccdd43963cc34d923e0a4Xia Wang } 10990e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang } 1106026d52710d7a6195a33885020d29aa1330fa855Xia Wang} 111