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