Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit da822367 authored by Xia Wang's avatar Xia Wang Committed by Android Git Automerger
Browse files

am 25261f59: Merge "Increase time between wifi stop and wifi start: set to 2...

am 25261f59: Merge "Increase time between wifi stop and wifi start: set to 2 minutes http://b/issue?id=5629901" into ics-mr0

* commit '25261f59':
  Increase time between wifi stop and wifi start: set to 2 minutes http://b/issue?id=5629901
parents 8990cb57 25261f59
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -38,7 +38,8 @@ public class ConnectivityManagerStressTestRunner extends InstrumentationTestRunn
    public int mSoftapIterations = 100;
    public int mScanIterations = 100;
    public int mReconnectIterations = 100;
    public int mSleepTime = 30 * 1000;  // default sleep time is 30 seconds
    // sleep time before restart wifi, default is set to 2 minutes
    public int mSleepTime = 2 * 60 * 1000;
    public String mReconnectSsid = "securenetdhcp";
    public String mReconnectPassword = "androidwifi";

+4 −0
Original line number Diff line number Diff line
@@ -62,6 +62,8 @@ public class ConnectivityManagerTestActivity extends Activity {
    public static final int WIFI_SCAN_TIMEOUT = 50 * 1000;
    public static final int SHORT_TIMEOUT = 5 * 1000;
    public static final long LONG_TIMEOUT = 50 * 1000;
    // 2 minutes timer between wifi stop and start
    public static final long  WIFI_STOP_START_INTERVAL = 2 * 60 * 1000;
    public static final int SUCCESS = 0;  // for Wifi tethering state change
    public static final int FAILURE = 1;
    public static final int INIT = -1;
@@ -247,6 +249,8 @@ public class ConnectivityManagerTestActivity extends Activity {
        sleep(SHORT_TIMEOUT);
        removeConfiguredNetworksAndDisableWifi();
        mWifiRegexs = mCM.getTetherableWifiRegexs();
        // after wifi is shutdown, wait for 2 minute to enable wifi
        sleep(WIFI_STOP_START_INTERVAL);
     }

    public List<WifiConfiguration> loadNetworkConfigurations() throws Exception {
+7 −4
Original line number Diff line number Diff line
@@ -77,10 +77,13 @@ public class NetworkState {
                mReason = "no state is recorded.";
                return false;
            } else if (mStateDepository.size() > 1) {
                Log.v(LOG_TAG, "no broadcast is expected, " +
                        "instead broadcast is probably received");
                mReason = "no broadcast is expected, instead broadcast is probably received";
                for (int i = 0; i < mStateDepository.size(); i++) {
                    if (mStateDepository.get(i) != mTransitionTarget) {
                        Log.v(LOG_TAG, "state changed.");
                        mReason = "Unexpected state change";
                        return false;
                    }
                }
            } else if (mStateDepository.get(0) != mTransitionTarget) {
                Log.v(LOG_TAG, mTransitionTarget + " is expected, but it is " +
                        mStateDepository.get(0));
+61 −70
Original line number Diff line number Diff line
@@ -66,7 +66,7 @@ public class ConnectivityManagerMobileTest
        // Each test case will start with cellular connection
        if (Settings.System.getInt(getInstrumentation().getContext().getContentResolver(),
                Settings.System.AIRPLANE_MODE_ON) == 1) {
            Log.v(LOG_TAG, "airplane is not disabled, disable it.");
            log("airplane is not disabled, disable it.");
            cmActivity.setAirplaneMode(getInstrumentation().getContext(), false);
        }
        if (!UtilHelper.isWifiOnly()) {
@@ -84,13 +84,13 @@ public class ConnectivityManagerMobileTest
    @Override
    public void tearDown() throws Exception {
        cmActivity.finish();
        Log.v(LOG_TAG, "tear down ConnectivityManagerTestActivity");
        log("tear down ConnectivityManagerTestActivity");
        wl.release();
        cmActivity.removeConfiguredNetworksAndDisableWifi();
        // if airplane mode is set, disable it.
        if (Settings.System.getInt(getInstrumentation().getContext().getContentResolver(),
                Settings.System.AIRPLANE_MODE_ON) == 1) {
            Log.v(LOG_TAG, "disable airplane mode if it is enabled");
            log("disable airplane mode if it is enabled");
            cmActivity.setAirplaneMode(getInstrumentation().getContext(), false);
        }
        super.tearDown();
@@ -104,17 +104,24 @@ public class ConnectivityManagerMobileTest
        assertTrue("not connected to cellular network", extraNetInfo.isConnected());
    }

    private void log(String message) {
        Log.v(LOG_TAG, message);
    }

    private void sleep(long sleeptime) {
        try {
            Thread.sleep(sleeptime);
        } catch (InterruptedException e) {}
    }

    // Test case 1: Test enabling Wifi without associating with any AP, no broadcast on network
    //              event should be expected.
    @LargeTest
    public void test3GToWifiNotification() {
        // Enable Wi-Fi to avoid initial UNKNOWN state
        cmActivity.enableWifi();
        try {
            Thread.sleep(2 * ConnectivityManagerTestActivity.SHORT_TIMEOUT);
        } catch (Exception e) {
            Log.v(LOG_TAG, "exception: " + e.toString());
        }
        sleep(2 * ConnectivityManagerTestActivity.SHORT_TIMEOUT);

        // Wi-Fi is disabled
        cmActivity.disableWifi();

@@ -123,11 +130,8 @@ public class ConnectivityManagerMobileTest
        assertTrue(cmActivity.waitForNetworkState(ConnectivityManager.TYPE_MOBILE,
                State.CONNECTED, ConnectivityManagerTestActivity.LONG_TIMEOUT));
        // Wait for 10 seconds for broadcasts to be sent out
        try {
            Thread.sleep(10 * 1000);
        } catch (Exception e) {
            fail("thread in sleep is interrupted.");
        }
        sleep(10 * 1000);

        // As Wifi stays in DISCONNETED, Mobile statys in CONNECTED,
        // the connectivity manager will not broadcast any network connectivity event for Wifi
        NetworkInfo networkInfo = cmActivity.mCM.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
@@ -138,22 +142,18 @@ public class ConnectivityManagerMobileTest
                NetworkState.DO_NOTHING, State.DISCONNECTED);
        // Eanble Wifi without associating with any AP
        cmActivity.enableWifi();
        try {
            Thread.sleep(2 * ConnectivityManagerTestActivity.SHORT_TIMEOUT);
        } catch (Exception e) {
            Log.v(LOG_TAG, "exception: " + e.toString());
        }
        sleep(2 * ConnectivityManagerTestActivity.SHORT_TIMEOUT);

        // validate state and broadcast
        if (!cmActivity.validateNetworkStates(ConnectivityManager.TYPE_WIFI)) {
            Log.v(LOG_TAG, "the state for WIFI is changed");
            Log.v(LOG_TAG, "reason: " +
            log("the state for WIFI is changed");
            log("reason: " +
                    cmActivity.getTransitionFailureReason(ConnectivityManager.TYPE_WIFI));
            assertTrue("state validation fail", false);
        }
        if (!cmActivity.validateNetworkStates(ConnectivityManager.TYPE_MOBILE)) {
            Log.v(LOG_TAG, "the state for MOBILE is changed");
            Log.v(LOG_TAG, "reason: " +
            log("the state for MOBILE is changed");
            log("reason: " +
                    cmActivity.getTransitionFailureReason(ConnectivityManager.TYPE_MOBILE));
            assertTrue("state validation fail", false);
        }
@@ -182,7 +182,7 @@ public class ConnectivityManagerMobileTest

        assertTrue(cmActivity.waitForWifiState(WifiManager.WIFI_STATE_ENABLED,
                ConnectivityManagerTestActivity.LONG_TIMEOUT));
        Log.v(LOG_TAG, "wifi state is enabled");
        log("wifi state is enabled");
        assertTrue(cmActivity.waitForNetworkState(ConnectivityManager.TYPE_WIFI, State.CONNECTED,
                ConnectivityManagerTestActivity.LONG_TIMEOUT));
        if (!UtilHelper.isWifiOnly()) {
@@ -192,15 +192,15 @@ public class ConnectivityManagerMobileTest

        // validate states
        if (!cmActivity.validateNetworkStates(ConnectivityManager.TYPE_WIFI)) {
            Log.v(LOG_TAG, "Wifi state transition validation failed.");
            Log.v(LOG_TAG, "reason: " +
            log("Wifi state transition validation failed.");
            log("reason: " +
                    cmActivity.getTransitionFailureReason(ConnectivityManager.TYPE_WIFI));
            assertTrue(false);
        }
        if (!UtilHelper.isWifiOnly()) {
            if (!cmActivity.validateNetworkStates(ConnectivityManager.TYPE_MOBILE)) {
                Log.v(LOG_TAG, "Mobile state transition validation failed.");
                Log.v(LOG_TAG, "reason: " +
                log("Mobile state transition validation failed.");
                log("reason: " +
                        cmActivity.getTransitionFailureReason(ConnectivityManager.TYPE_MOBILE));
                assertTrue(false);
            }
@@ -219,16 +219,11 @@ public class ConnectivityManagerMobileTest
        assertTrue(cmActivity.waitForNetworkState(ConnectivityManager.TYPE_WIFI, State.CONNECTED,
                ConnectivityManagerTestActivity.LONG_TIMEOUT));

        try {
            Thread.sleep(ConnectivityManagerTestActivity.SHORT_TIMEOUT);
        } catch (Exception e) {
            Log.v(LOG_TAG, "exception: " + e.toString());
        }

        sleep(ConnectivityManagerTestActivity.SHORT_TIMEOUT);
        // Disable Wifi
        Log.v(LOG_TAG, "Disable Wifi");
        log("Disable Wifi");
        if (!cmActivity.disableWifi()) {
            Log.v(LOG_TAG, "disable Wifi failed");
            log("disable Wifi failed");
            return;
        }

@@ -254,8 +249,10 @@ public class ConnectivityManagerMobileTest
        cmActivity.setStateTransitionCriteria(ConnectivityManager.TYPE_WIFI, networkInfo.getState(),
                NetworkState.TO_CONNECTION, State.CONNECTED);

        // wait for 2 minutes before restart wifi
        sleep(ConnectivityManagerTestActivity.WIFI_STOP_START_INTERVAL);
        // Enable Wifi again
        Log.v(LOG_TAG, "Enable Wifi again");
        log("Enable Wifi again");
        cmActivity.enableWifi();

        // Wait for Wifi to be connected and mobile to be disconnected
@@ -268,8 +265,8 @@ public class ConnectivityManagerMobileTest

        // validate wifi states
        if (!cmActivity.validateNetworkStates(ConnectivityManager.TYPE_WIFI)) {
            Log.v(LOG_TAG, "Wifi state transition validation failed.");
            Log.v(LOG_TAG, "reason: " +
            log("Wifi state transition validation failed.");
            log("reason: " +
                    cmActivity.getTransitionFailureReason(ConnectivityManager.TYPE_WIFI));
            assertTrue(false);
        }
@@ -288,11 +285,7 @@ public class ConnectivityManagerMobileTest
            ConnectivityManagerTestActivity.LONG_TIMEOUT));

        // Wait for a few seconds to avoid the state that both Mobile and Wifi is connected
        try {
            Thread.sleep(ConnectivityManagerTestActivity.SHORT_TIMEOUT);
        } catch (Exception e) {
            Log.v(LOG_TAG, "exception: " + e.toString());
        }
        sleep(ConnectivityManagerTestActivity.SHORT_TIMEOUT);

        NetworkInfo networkInfo;
        if (!UtilHelper.isWifiOnly()) {
@@ -318,15 +311,15 @@ public class ConnectivityManagerMobileTest

        // validate states
        if (!cmActivity.validateNetworkStates(ConnectivityManager.TYPE_WIFI)) {
            Log.v(LOG_TAG, "Wifi state transition validation failed.");
            Log.v(LOG_TAG, "reason: " +
            log("Wifi state transition validation failed.");
            log("reason: " +
                    cmActivity.getTransitionFailureReason(ConnectivityManager.TYPE_WIFI));
            assertTrue(false);
        }
        if (!UtilHelper.isWifiOnly()) {
            if (!cmActivity.validateNetworkStates(ConnectivityManager.TYPE_MOBILE)) {
                Log.v(LOG_TAG, "Mobile state transition validation failed.");
                Log.v(LOG_TAG, "reason: " +
                log("Mobile state transition validation failed.");
                log("reason: " +
                        cmActivity.getTransitionFailureReason(ConnectivityManager.TYPE_MOBILE));
                assertTrue(false);
            }
@@ -346,19 +339,16 @@ public class ConnectivityManagerMobileTest
        assertEquals(State.DISCONNECTED, networkInfo.getState());

        // Enable airplane mode
        log("Enable airplane mode");
        cmActivity.setAirplaneMode(getInstrumentation().getContext(), true);
        try {
            Thread.sleep(ConnectivityManagerTestActivity.SHORT_TIMEOUT);
        } catch (Exception e) {
            Log.v(LOG_TAG, "exception: " + e.toString());
        }
        sleep(ConnectivityManagerTestActivity.SHORT_TIMEOUT);

        networkInfo = cmActivity.mCM.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
        assertEquals(State.DISCONNECTED, networkInfo.getState());

        if (!cmActivity.validateNetworkStates(ConnectivityManager.TYPE_MOBILE)) {
            Log.v(LOG_TAG, "Mobile state transition validation failed.");
            Log.v(LOG_TAG, "reason: " +
            log("Mobile state transition validation failed.");
            log("reason: " +
                    cmActivity.getTransitionFailureReason(ConnectivityManager.TYPE_MOBILE));
            assertTrue(false);
        }
@@ -381,14 +371,14 @@ public class ConnectivityManagerMobileTest

        // Validate the state transition
        if (!cmActivity.validateNetworkStates(ConnectivityManager.TYPE_MOBILE)) {
            Log.v(LOG_TAG, "Mobile state transition validation failed.");
            Log.v(LOG_TAG, "reason: " +
            log("Mobile state transition validation failed.");
            log("reason: " +
                    cmActivity.getTransitionFailureReason(ConnectivityManager.TYPE_MOBILE));
            assertTrue(false);
        }
        if (!cmActivity.validateNetworkStates(ConnectivityManager.TYPE_WIFI)) {
          Log.v(LOG_TAG, "Wifi state transition validation failed.");
          Log.v(LOG_TAG, "reason: " +
          log("Wifi state transition validation failed.");
          log("reason: " +
                  cmActivity.getTransitionFailureReason(ConnectivityManager.TYPE_WIFI));
          assertTrue(false);
        }
@@ -399,6 +389,7 @@ public class ConnectivityManagerMobileTest
    public void testDataConnectionOverAMWithWifi() {
        assertNotNull("SSID is null", TEST_ACCESS_POINT);
        // Eanble airplane mode
        log("Enable airplane mode");
        cmActivity.setAirplaneMode(getInstrumentation().getContext(), true);

        NetworkInfo networkInfo;
@@ -423,15 +414,15 @@ public class ConnectivityManagerMobileTest

        // validate state and broadcast
        if (!cmActivity.validateNetworkStates(ConnectivityManager.TYPE_WIFI)) {
            Log.v(LOG_TAG, "state validate for Wifi failed");
            Log.v(LOG_TAG, "reason: " +
            log("state validate for Wifi failed");
            log("reason: " +
                    cmActivity.getTransitionFailureReason(ConnectivityManager.TYPE_WIFI));
            assertTrue("State validation failed", false);
        }
        if (!UtilHelper.isWifiOnly()) {
            if (!cmActivity.validateNetworkStates(ConnectivityManager.TYPE_MOBILE)) {
                Log.v(LOG_TAG, "state validation for Mobile failed");
                Log.v(LOG_TAG, "reason: " +
                log("state validation for Mobile failed");
                log("reason: " +
                        cmActivity.getTransitionFailureReason(ConnectivityManager.TYPE_MOBILE));
                assertTrue("state validation failed", false);
            }
@@ -454,7 +445,7 @@ public class ConnectivityManagerMobileTest
        try {
            Thread.sleep(ConnectivityManagerTestActivity.SHORT_TIMEOUT);
        } catch (Exception e) {
            Log.v(LOG_TAG, "exception: " + e.toString());
            log("exception: " + e.toString());
        }

        // Enable airplane mode without clearing Wifi
@@ -466,7 +457,7 @@ public class ConnectivityManagerMobileTest
        try {
            Thread.sleep(ConnectivityManagerTestActivity.SHORT_TIMEOUT);
        } catch (Exception e) {
            Log.v(LOG_TAG, "exception: " + e.toString());
            log("exception: " + e.toString());
        }

        // Prepare for state validation
@@ -487,8 +478,8 @@ public class ConnectivityManagerMobileTest

        // validate the state transition
        if (!cmActivity.validateNetworkStates(ConnectivityManager.TYPE_WIFI)) {
            Log.v(LOG_TAG, "Wifi state transition validation failed.");
            Log.v(LOG_TAG, "reason: " +
            log("Wifi state transition validation failed.");
            log("reason: " +
                    cmActivity.getTransitionFailureReason(ConnectivityManager.TYPE_WIFI));
            assertTrue(false);
        }
@@ -511,13 +502,13 @@ public class ConnectivityManagerMobileTest
        try {
            Thread.sleep(ConnectivityManagerTestActivity.SHORT_TIMEOUT);
        } catch (Exception e) {
            Log.v(LOG_TAG, "exception: " + e.toString());
            log("exception: " + e.toString());
        }

        // Disconnect from the current AP
        Log.v(LOG_TAG, "disconnect from the AP");
        log("disconnect from the AP");
        if (!cmActivity.disconnectAP()) {
            Log.v(LOG_TAG, "failed to disconnect from " + TEST_ACCESS_POINT);
            log("failed to disconnect from " + TEST_ACCESS_POINT);
        }

        // Verify the connectivity state for Wifi is DISCONNECTED
@@ -525,7 +516,7 @@ public class ConnectivityManagerMobileTest
                ConnectivityManagerTestActivity.LONG_TIMEOUT));

        if (!cmActivity.disableWifi()) {
            Log.v(LOG_TAG, "disable Wifi failed");
            log("disable Wifi failed");
            return;
        }
        assertTrue(cmActivity.waitForWifiState(WifiManager.WIFI_STATE_DISABLED,
+4 −3
Original line number Diff line number Diff line
@@ -136,7 +136,7 @@ public class WifiConnectionTest

        // step 2: verify Wifi state and network state;
        assertTrue(mAct.waitForNetworkState(ConnectivityManager.TYPE_WIFI,
                State.CONNECTED, 2 * ConnectivityManagerTestActivity.LONG_TIMEOUT));
                State.CONNECTED, 6 * ConnectivityManagerTestActivity.LONG_TIMEOUT));

        // step 3: verify the current connected network is the given SSID
        assertNotNull("Wifi connection returns null", mAct.mWifiManager.getConnectionInfo());
@@ -166,8 +166,9 @@ public class WifiConnectionTest
            String ssid = networks.get(i).SSID;
            log("-- START Wi-Fi connection test to : " + ssid + " --");
            connectToWifi(networks.get(i));
            sleep(2 * ConnectivityManagerTestActivity.SHORT_TIMEOUT,
                    "interruped while waiting for wifi disabled.");
            // wait for 2 minutes between wifi stop and start
            sleep(ConnectivityManagerTestActivity.WIFI_START_TIMER,
                  "interruped while connected to wifi");
            log("-- END Wi-Fi connection test to " + ssid + " -- ");
        }
    }
Loading