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

Commit 25261f59 authored by Xia Wang's avatar Xia Wang Committed by Android (Google) Code Review
Browse files

Merge "Increase time between wifi stop and wifi start: set to 2 minutes...

Merge "Increase time between wifi stop and wifi start: set to 2 minutes http://b/issue?id=5629901" into ics-mr0
parents fe464a76 a4c2caac
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