ConnectivityManagerStressTestRunner.java revision a4c2caac05009512213454d329579a79dde11e5f
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";
4590e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang
466026d52710d7a6195a33885020d29aa1330fa855Xia Wang    @Override
476026d52710d7a6195a33885020d29aa1330fa855Xia Wang    public TestSuite getAllTests() {
486026d52710d7a6195a33885020d29aa1330fa855Xia Wang        TestSuite suite = new InstrumentationTestSuite(this);
49b97435c94f4d35a70d63e5dcba5415b0110cf2c9Xia Wang        if (!UtilHelper.isWifiOnly()) {
50b97435c94f4d35a70d63e5dcba5415b0110cf2c9Xia Wang            suite.addTestSuite(WifiApStress.class);
51b97435c94f4d35a70d63e5dcba5415b0110cf2c9Xia Wang            suite.addTestSuite(WifiStressTest.class);
52b97435c94f4d35a70d63e5dcba5415b0110cf2c9Xia Wang        } else {
533d58d63b03edd95352b70b9b18251c4f72f17b74Xia Wang            // only the wifi stress tests
543d58d63b03edd95352b70b9b18251c4f72f17b74Xia Wang            suite.addTestSuite(WifiStressTest.class);
55b97435c94f4d35a70d63e5dcba5415b0110cf2c9Xia Wang        }
566026d52710d7a6195a33885020d29aa1330fa855Xia Wang        return suite;
576026d52710d7a6195a33885020d29aa1330fa855Xia Wang    }
586026d52710d7a6195a33885020d29aa1330fa855Xia Wang
596026d52710d7a6195a33885020d29aa1330fa855Xia Wang    @Override
606026d52710d7a6195a33885020d29aa1330fa855Xia Wang    public ClassLoader getLoader() {
616026d52710d7a6195a33885020d29aa1330fa855Xia Wang        return ConnectivityManagerTestRunner.class.getClassLoader();
626026d52710d7a6195a33885020d29aa1330fa855Xia Wang    }
636026d52710d7a6195a33885020d29aa1330fa855Xia Wang
646026d52710d7a6195a33885020d29aa1330fa855Xia Wang    @Override
656026d52710d7a6195a33885020d29aa1330fa855Xia Wang    public void onCreate(Bundle icicle) {
666026d52710d7a6195a33885020d29aa1330fa855Xia Wang        super.onCreate(icicle);
673d58d63b03edd95352b70b9b18251c4f72f17b74Xia Wang        if (!UtilHelper.isWifiOnly()) {
683d58d63b03edd95352b70b9b18251c4f72f17b74Xia Wang            String valueStr = (String) icicle.get("softap_iterations");
693d58d63b03edd95352b70b9b18251c4f72f17b74Xia Wang            if (valueStr != null) {
703d58d63b03edd95352b70b9b18251c4f72f17b74Xia Wang                int iteration = Integer.parseInt(valueStr);
713d58d63b03edd95352b70b9b18251c4f72f17b74Xia Wang                if (iteration > 0) {
723d58d63b03edd95352b70b9b18251c4f72f17b74Xia Wang                    mSoftapIterations = iteration;
733d58d63b03edd95352b70b9b18251c4f72f17b74Xia Wang                }
7490e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang            }
7590e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang        }
7690e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang
7790e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang        String scanIterationStr = (String) icicle.get("scan_iterations");
7890e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang        if (scanIterationStr != null) {
7990e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang            int scanIteration = Integer.parseInt(scanIterationStr);
8090e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang            if (scanIteration > 0) {
8190e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang                mScanIterations = scanIteration;
8290e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang            }
8390e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang        }
8490e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang
8590e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang        String ssidStr= (String) icicle.get("reconnect_ssid");
8690e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang        if (ssidStr != null) {
8790e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang            mReconnectSsid = ssidStr;
8890e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang        }
8990e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang
9090e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang        String passwordStr = (String) icicle.get("reconnect_password");
9190e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang        if (passwordStr != null) {
9290e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang            mReconnectPassword = passwordStr;
9390e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang        }
9490e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang
9590e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang        String reconnectStr = (String) icicle.get("reconnect_iterations");
9690e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang        if (reconnectStr != null) {
9790e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang            int iteration = Integer.parseInt(reconnectStr);
9890e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang            if (iteration > 0) {
9990e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang                mReconnectIterations = iteration;
1006026d52710d7a6195a33885020d29aa1330fa855Xia Wang            }
1016026d52710d7a6195a33885020d29aa1330fa855Xia Wang        }
1026026d52710d7a6195a33885020d29aa1330fa855Xia Wang
10390e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang        String sleepTimeStr = (String) icicle.get("sleep_time");
10490e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang        if (sleepTimeStr != null) {
10590e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang            int sleepTime = Integer.parseInt(sleepTimeStr);
10690e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang            if (sleepTime > 0) {
10790e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang                mSleepTime = 1000 * sleepTime;
10890e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang            }
10990e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang        }
11090e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang    }
1116026d52710d7a6195a33885020d29aa1330fa855Xia Wang}
112