ConnectivityManagerStressTestRunner.java revision 3d58d63b03edd95352b70b9b18251c4f72f17b74
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; 4190e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang public int mSleepTime = 30 * 1000; // default sleep time is 30 seconds 4290e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang public String mReconnectSsid = "securenetdhcp"; 4390e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang public String mReconnectPassword = "androidwifi"; 4490e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang 456026d52710d7a6195a33885020d29aa1330fa855Xia Wang @Override 466026d52710d7a6195a33885020d29aa1330fa855Xia Wang public TestSuite getAllTests() { 476026d52710d7a6195a33885020d29aa1330fa855Xia Wang TestSuite suite = new InstrumentationTestSuite(this); 48b97435c94f4d35a70d63e5dcba5415b0110cf2c9Xia Wang if (!UtilHelper.isWifiOnly()) { 49b97435c94f4d35a70d63e5dcba5415b0110cf2c9Xia Wang suite.addTestSuite(WifiApStress.class); 50b97435c94f4d35a70d63e5dcba5415b0110cf2c9Xia Wang suite.addTestSuite(WifiStressTest.class); 51b97435c94f4d35a70d63e5dcba5415b0110cf2c9Xia Wang } else { 523d58d63b03edd95352b70b9b18251c4f72f17b74Xia Wang // only the wifi stress tests 533d58d63b03edd95352b70b9b18251c4f72f17b74Xia Wang suite.addTestSuite(WifiStressTest.class); 54b97435c94f4d35a70d63e5dcba5415b0110cf2c9Xia Wang } 556026d52710d7a6195a33885020d29aa1330fa855Xia Wang return suite; 566026d52710d7a6195a33885020d29aa1330fa855Xia Wang } 576026d52710d7a6195a33885020d29aa1330fa855Xia Wang 586026d52710d7a6195a33885020d29aa1330fa855Xia Wang @Override 596026d52710d7a6195a33885020d29aa1330fa855Xia Wang public ClassLoader getLoader() { 606026d52710d7a6195a33885020d29aa1330fa855Xia Wang return ConnectivityManagerTestRunner.class.getClassLoader(); 616026d52710d7a6195a33885020d29aa1330fa855Xia Wang } 626026d52710d7a6195a33885020d29aa1330fa855Xia Wang 636026d52710d7a6195a33885020d29aa1330fa855Xia Wang @Override 646026d52710d7a6195a33885020d29aa1330fa855Xia Wang public void onCreate(Bundle icicle) { 656026d52710d7a6195a33885020d29aa1330fa855Xia Wang super.onCreate(icicle); 663d58d63b03edd95352b70b9b18251c4f72f17b74Xia Wang if (!UtilHelper.isWifiOnly()) { 673d58d63b03edd95352b70b9b18251c4f72f17b74Xia Wang String valueStr = (String) icicle.get("softap_iterations"); 683d58d63b03edd95352b70b9b18251c4f72f17b74Xia Wang if (valueStr != null) { 693d58d63b03edd95352b70b9b18251c4f72f17b74Xia Wang int iteration = Integer.parseInt(valueStr); 703d58d63b03edd95352b70b9b18251c4f72f17b74Xia Wang if (iteration > 0) { 713d58d63b03edd95352b70b9b18251c4f72f17b74Xia Wang mSoftapIterations = iteration; 723d58d63b03edd95352b70b9b18251c4f72f17b74Xia Wang } 7390e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang } 7490e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang } 7590e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang 7690e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang String scanIterationStr = (String) icicle.get("scan_iterations"); 7790e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang if (scanIterationStr != null) { 7890e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang int scanIteration = Integer.parseInt(scanIterationStr); 7990e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang if (scanIteration > 0) { 8090e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang mScanIterations = scanIteration; 8190e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang } 8290e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang } 8390e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang 8490e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang String ssidStr= (String) icicle.get("reconnect_ssid"); 8590e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang if (ssidStr != null) { 8690e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang mReconnectSsid = ssidStr; 8790e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang } 8890e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang 8990e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang String passwordStr = (String) icicle.get("reconnect_password"); 9090e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang if (passwordStr != null) { 9190e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang mReconnectPassword = passwordStr; 9290e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang } 9390e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang 9490e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang String reconnectStr = (String) icicle.get("reconnect_iterations"); 9590e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang if (reconnectStr != null) { 9690e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang int iteration = Integer.parseInt(reconnectStr); 9790e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang if (iteration > 0) { 9890e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang mReconnectIterations = iteration; 996026d52710d7a6195a33885020d29aa1330fa855Xia Wang } 1006026d52710d7a6195a33885020d29aa1330fa855Xia Wang } 1016026d52710d7a6195a33885020d29aa1330fa855Xia Wang 10290e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang String sleepTimeStr = (String) icicle.get("sleep_time"); 10390e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang if (sleepTimeStr != null) { 10490e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang int sleepTime = Integer.parseInt(sleepTimeStr); 10590e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang if (sleepTime > 0) { 10690e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang mSleepTime = 1000 * sleepTime; 10790e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang } 10890e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang } 10990e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang } 1106026d52710d7a6195a33885020d29aa1330fa855Xia Wang} 111