ConnectivityManagerStressTestRunner.java revision 90e1c782a63475cd9b3973936decf6a4f6c6148f
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;
226026d52710d7a6195a33885020d29aa1330fa855Xia Wangimport com.android.connectivitymanagertest.stress.WifiApStress;
2390e1c782a63475cd9b3973936decf6a4f6c6148fXia Wangimport com.android.connectivitymanagertest.stress.WifiStressTest;
246026d52710d7a6195a33885020d29aa1330fa855Xia Wang
256026d52710d7a6195a33885020d29aa1330fa855Xia Wangimport junit.framework.TestSuite;
266026d52710d7a6195a33885020d29aa1330fa855Xia Wang
276026d52710d7a6195a33885020d29aa1330fa855Xia Wang/**
286026d52710d7a6195a33885020d29aa1330fa855Xia Wang * Instrumentation Test Runner for all stress tests
296026d52710d7a6195a33885020d29aa1330fa855Xia Wang *
306026d52710d7a6195a33885020d29aa1330fa855Xia Wang * To run the stress tests:
316026d52710d7a6195a33885020d29aa1330fa855Xia Wang *
326026d52710d7a6195a33885020d29aa1330fa855Xia Wang * adb shell am instrument -e stressnum <stress times> \
336026d52710d7a6195a33885020d29aa1330fa855Xia Wang *     -w com.android.connectivitymanagertest/.ConnectivityManagerStressTestRunner
346026d52710d7a6195a33885020d29aa1330fa855Xia Wang */
356026d52710d7a6195a33885020d29aa1330fa855Xia Wang
366026d52710d7a6195a33885020d29aa1330fa855Xia Wangpublic class ConnectivityManagerStressTestRunner extends InstrumentationTestRunner {
3790e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang    public int mSoftapIterations = 100;
3890e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang    public int mScanIterations = 100;
3990e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang    public int mReconnectIterations = 100;
4090e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang    public int mSleepTime = 30 * 1000;  // default sleep time is 30 seconds
4190e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang    public String mReconnectSsid = "securenetdhcp";
4290e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang    public String mReconnectPassword = "androidwifi";
4390e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang
446026d52710d7a6195a33885020d29aa1330fa855Xia Wang    @Override
456026d52710d7a6195a33885020d29aa1330fa855Xia Wang    public TestSuite getAllTests() {
466026d52710d7a6195a33885020d29aa1330fa855Xia Wang        TestSuite suite = new InstrumentationTestSuite(this);
476026d52710d7a6195a33885020d29aa1330fa855Xia Wang        suite.addTestSuite(WifiApStress.class);
4890e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang        suite.addTestSuite(WifiStressTest.class);
496026d52710d7a6195a33885020d29aa1330fa855Xia Wang        return suite;
506026d52710d7a6195a33885020d29aa1330fa855Xia Wang    }
516026d52710d7a6195a33885020d29aa1330fa855Xia Wang
526026d52710d7a6195a33885020d29aa1330fa855Xia Wang    @Override
536026d52710d7a6195a33885020d29aa1330fa855Xia Wang    public ClassLoader getLoader() {
546026d52710d7a6195a33885020d29aa1330fa855Xia Wang        return ConnectivityManagerTestRunner.class.getClassLoader();
556026d52710d7a6195a33885020d29aa1330fa855Xia Wang    }
566026d52710d7a6195a33885020d29aa1330fa855Xia Wang
576026d52710d7a6195a33885020d29aa1330fa855Xia Wang    @Override
586026d52710d7a6195a33885020d29aa1330fa855Xia Wang    public void onCreate(Bundle icicle) {
596026d52710d7a6195a33885020d29aa1330fa855Xia Wang        super.onCreate(icicle);
6090e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang        String valueStr = (String) icicle.get("softap_iterations");
6190e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang        if (valueStr != null) {
6290e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang            int iteration = Integer.parseInt(valueStr);
636026d52710d7a6195a33885020d29aa1330fa855Xia Wang            if (iteration > 0) {
6490e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang                mSoftapIterations = iteration;
6590e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang            }
6690e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang        }
6790e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang
6890e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang        String scanIterationStr = (String) icicle.get("scan_iterations");
6990e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang        if (scanIterationStr != null) {
7090e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang            int scanIteration = Integer.parseInt(scanIterationStr);
7190e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang            if (scanIteration > 0) {
7290e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang                mScanIterations = scanIteration;
7390e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang            }
7490e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang        }
7590e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang
7690e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang        String ssidStr= (String) icicle.get("reconnect_ssid");
7790e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang        if (ssidStr != null) {
7890e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang            mReconnectSsid = ssidStr;
7990e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang        }
8090e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang
8190e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang        String passwordStr = (String) icicle.get("reconnect_password");
8290e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang        if (passwordStr != null) {
8390e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang            mReconnectPassword = passwordStr;
8490e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang        }
8590e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang
8690e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang        String reconnectStr = (String) icicle.get("reconnect_iterations");
8790e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang        if (reconnectStr != null) {
8890e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang            int iteration = Integer.parseInt(reconnectStr);
8990e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang            if (iteration > 0) {
9090e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang                mReconnectIterations = iteration;
916026d52710d7a6195a33885020d29aa1330fa855Xia Wang            }
926026d52710d7a6195a33885020d29aa1330fa855Xia Wang        }
936026d52710d7a6195a33885020d29aa1330fa855Xia Wang
9490e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang        String sleepTimeStr = (String) icicle.get("sleep_time");
9590e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang        if (sleepTimeStr != null) {
9690e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang            int sleepTime = Integer.parseInt(sleepTimeStr);
9790e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang            if (sleepTime > 0) {
9890e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang                mSleepTime = 1000 * sleepTime;
9990e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang            }
10090e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang        }
10190e1c782a63475cd9b3973936decf6a4f6c6148fXia Wang    }
1026026d52710d7a6195a33885020d29aa1330fa855Xia Wang}
103