Merge "Fix WiFi test:" into jb-mr1.1-dev

This commit is contained in:
Xia Wang
2013-01-31 02:54:55 +00:00
committed by Android (Google) Code Review
4 changed files with 30 additions and 72 deletions

View File

@ -60,13 +60,14 @@ public class ConnectivityManagerTestActivity extends Activity {
public static final String LOG_TAG = "ConnectivityManagerTestActivity"; public static final String LOG_TAG = "ConnectivityManagerTestActivity";
public static final int WAIT_FOR_SCAN_RESULT = 10 * 1000; //10 seconds public static final int WAIT_FOR_SCAN_RESULT = 10 * 1000; //10 seconds
public static final int WIFI_SCAN_TIMEOUT = 50 * 1000; public static final int WIFI_SCAN_TIMEOUT = 50 * 1000; // 50 seconds
public static final int SHORT_TIMEOUT = 5 * 1000; public static final int SHORT_TIMEOUT = 5 * 1000; // 5 seconds
public static final long LONG_TIMEOUT = 50 * 1000; public static final long LONG_TIMEOUT = 50 * 1000; // 50 seconds
public static final long WIFI_CONNECTION_TIMEOUT = 5 * 60 * 1000; // 5 minutes
// 2 minutes timer between wifi stop and start // 2 minutes timer between wifi stop and start
public static final long WIFI_STOP_START_INTERVAL = 2 * 60 * 1000; public static final long WIFI_STOP_START_INTERVAL = 2 * 60 * 1000; // 2 minutes
// Set ping test timer to be 3 minutes // Set ping test timer to be 3 minutes
public static final long PING_TIMER = 3 * 60 *1000; public static final long PING_TIMER = 3 * 60 *1000; // 3 minutes
public static final int SUCCESS = 0; // for Wifi tethering state change public static final int SUCCESS = 0; // for Wifi tethering state change
public static final int FAILURE = 1; public static final int FAILURE = 1;
public static final int INIT = -1; public static final int INIT = -1;
@ -573,7 +574,7 @@ public class ConnectivityManagerTestActivity extends Activity {
String ssid = config.SSID; String ssid = config.SSID;
config.SSID = convertToQuotedString(ssid); config.SSID = convertToQuotedString(ssid);
//If Wifi is not enabled, enable it // If Wifi is not enabled, enable it
if (!mWifiManager.isWifiEnabled()) { if (!mWifiManager.isWifiEnabled()) {
log("Wifi is not enabled, enable it"); log("Wifi is not enabled, enable it");
mWifiManager.setWifiEnabled(true); mWifiManager.setWifiEnabled(true);
@ -584,17 +585,7 @@ public class ConnectivityManagerTestActivity extends Activity {
} }
} }
boolean foundApInScanResults = false; // Save network configuration and connect to network without scanning
for (int retry = 0; retry < 5; retry++) {
List<ScanResult> netList = mWifiManager.getScanResults();
if (netList != null) {
log("size of scan result list: " + netList.size());
for (int i = 0; i < netList.size(); i++) {
ScanResult sr= netList.get(i);
if (sr.SSID.equals(ssid)) {
log("found " + ssid + " in the scan result list");
log("retry: " + retry);
foundApInScanResults = true;
mWifiManager.connect(config, mWifiManager.connect(config,
new WifiManager.ActionListener() { new WifiManager.ActionListener() {
public void onSuccess() { public void onSuccess() {
@ -603,40 +594,7 @@ public class ConnectivityManagerTestActivity extends Activity {
log("connect failure " + reason); log("connect failure " + reason);
} }
}); });
break;
}
}
}
if (foundApInScanResults) {
return true; return true;
} else {
// Start an active scan
mWifiManager.startScanActive();
mScanResultIsAvailable = false;
long startTime = System.currentTimeMillis();
while (!mScanResultIsAvailable) {
if ((System.currentTimeMillis() - startTime) > WIFI_SCAN_TIMEOUT) {
log("wait for scan results timeout");
return false;
}
// wait for the scan results to be available
synchronized (this) {
// wait for the scan result to be available
try {
this.wait(WAIT_FOR_SCAN_RESULT);
} catch (InterruptedException e) {
e.printStackTrace();
}
if ((mWifiManager.getScanResults() == null) ||
(mWifiManager.getScanResults().size() <= 0)) {
continue;
}
mScanResultIsAvailable = true;
}
}
}
}
return false;
} }
/* /*

View File

@ -184,7 +184,7 @@ public class ConnectivityManagerMobileTest extends
ConnectivityManagerTestActivity.LONG_TIMEOUT)); ConnectivityManagerTestActivity.LONG_TIMEOUT));
log("wifi state is enabled"); log("wifi state is enabled");
assertTrue(cmActivity.waitForNetworkState(ConnectivityManager.TYPE_WIFI, State.CONNECTED, assertTrue(cmActivity.waitForNetworkState(ConnectivityManager.TYPE_WIFI, State.CONNECTED,
ConnectivityManagerTestActivity.LONG_TIMEOUT)); ConnectivityManagerTestActivity.WIFI_CONNECTION_TIMEOUT));
if (!mWifiOnlyFlag) { if (!mWifiOnlyFlag) {
assertTrue(cmActivity.waitForNetworkState(ConnectivityManager.TYPE_MOBILE, assertTrue(cmActivity.waitForNetworkState(ConnectivityManager.TYPE_MOBILE,
State.DISCONNECTED, ConnectivityManagerTestActivity.LONG_TIMEOUT)); State.DISCONNECTED, ConnectivityManagerTestActivity.LONG_TIMEOUT));
@ -217,7 +217,7 @@ public class ConnectivityManagerMobileTest extends
assertTrue(cmActivity.waitForWifiState(WifiManager.WIFI_STATE_ENABLED, assertTrue(cmActivity.waitForWifiState(WifiManager.WIFI_STATE_ENABLED,
ConnectivityManagerTestActivity.LONG_TIMEOUT)); ConnectivityManagerTestActivity.LONG_TIMEOUT));
assertTrue(cmActivity.waitForNetworkState(ConnectivityManager.TYPE_WIFI, State.CONNECTED, assertTrue(cmActivity.waitForNetworkState(ConnectivityManager.TYPE_WIFI, State.CONNECTED,
ConnectivityManagerTestActivity.LONG_TIMEOUT)); ConnectivityManagerTestActivity.WIFI_CONNECTION_TIMEOUT));
sleep(ConnectivityManagerTestActivity.SHORT_TIMEOUT); sleep(ConnectivityManagerTestActivity.SHORT_TIMEOUT);
// Disable Wifi // Disable Wifi
@ -257,7 +257,7 @@ public class ConnectivityManagerMobileTest extends
// Wait for Wifi to be connected and mobile to be disconnected // Wait for Wifi to be connected and mobile to be disconnected
assertTrue(cmActivity.waitForNetworkState(ConnectivityManager.TYPE_WIFI, State.CONNECTED, assertTrue(cmActivity.waitForNetworkState(ConnectivityManager.TYPE_WIFI, State.CONNECTED,
ConnectivityManagerTestActivity.LONG_TIMEOUT)); ConnectivityManagerTestActivity.WIFI_CONNECTION_TIMEOUT));
if (!mWifiOnlyFlag) { if (!mWifiOnlyFlag) {
assertTrue(cmActivity.waitForNetworkState(ConnectivityManager.TYPE_MOBILE, assertTrue(cmActivity.waitForNetworkState(ConnectivityManager.TYPE_MOBILE,
State.DISCONNECTED, ConnectivityManagerTestActivity.LONG_TIMEOUT)); State.DISCONNECTED, ConnectivityManagerTestActivity.LONG_TIMEOUT));
@ -282,7 +282,7 @@ public class ConnectivityManagerMobileTest extends
cmActivity.connectToWifi(mTestAccessPoint)); cmActivity.connectToWifi(mTestAccessPoint));
assertTrue(cmActivity.waitForNetworkState(ConnectivityManager.TYPE_WIFI, State.CONNECTED, assertTrue(cmActivity.waitForNetworkState(ConnectivityManager.TYPE_WIFI, State.CONNECTED,
ConnectivityManagerTestActivity.LONG_TIMEOUT)); ConnectivityManagerTestActivity.WIFI_CONNECTION_TIMEOUT));
// Wait for a few seconds to avoid the state that both Mobile and Wifi is connected // Wait for a few seconds to avoid the state that both Mobile and Wifi is connected
sleep(ConnectivityManagerTestActivity.SHORT_TIMEOUT); sleep(ConnectivityManagerTestActivity.SHORT_TIMEOUT);
@ -420,7 +420,7 @@ public class ConnectivityManagerMobileTest extends
assertTrue("failed to connect to " + mTestAccessPoint, assertTrue("failed to connect to " + mTestAccessPoint,
cmActivity.connectToWifi(mTestAccessPoint)); cmActivity.connectToWifi(mTestAccessPoint));
assertTrue(cmActivity.waitForNetworkState(ConnectivityManager.TYPE_WIFI, State.CONNECTED, assertTrue(cmActivity.waitForNetworkState(ConnectivityManager.TYPE_WIFI, State.CONNECTED,
ConnectivityManagerTestActivity.LONG_TIMEOUT)); ConnectivityManagerTestActivity.WIFI_CONNECTION_TIMEOUT));
// validate state and broadcast // validate state and broadcast
if (!cmActivity.validateNetworkStates(ConnectivityManager.TYPE_WIFI)) { if (!cmActivity.validateNetworkStates(ConnectivityManager.TYPE_WIFI)) {
@ -454,7 +454,7 @@ public class ConnectivityManagerMobileTest extends
cmActivity.connectToWifi(mTestAccessPoint)); cmActivity.connectToWifi(mTestAccessPoint));
assertTrue(cmActivity.waitForNetworkState(ConnectivityManager.TYPE_WIFI, State.CONNECTED, assertTrue(cmActivity.waitForNetworkState(ConnectivityManager.TYPE_WIFI, State.CONNECTED,
ConnectivityManagerTestActivity.LONG_TIMEOUT)); ConnectivityManagerTestActivity.WIFI_CONNECTION_TIMEOUT));
try { try {
Thread.sleep(ConnectivityManagerTestActivity.SHORT_TIMEOUT); Thread.sleep(ConnectivityManagerTestActivity.SHORT_TIMEOUT);
@ -484,7 +484,7 @@ public class ConnectivityManagerMobileTest extends
cmActivity.setAirplaneMode(getInstrumentation().getContext(), false); cmActivity.setAirplaneMode(getInstrumentation().getContext(), false);
assertTrue(cmActivity.waitForNetworkState(ConnectivityManager.TYPE_WIFI, State.CONNECTED, assertTrue(cmActivity.waitForNetworkState(ConnectivityManager.TYPE_WIFI, State.CONNECTED,
ConnectivityManagerTestActivity.LONG_TIMEOUT)); ConnectivityManagerTestActivity.WIFI_CONNECTION_TIMEOUT));
if (!mWifiOnlyFlag) { if (!mWifiOnlyFlag) {
assertTrue(cmActivity.waitForNetworkState(ConnectivityManager.TYPE_MOBILE, assertTrue(cmActivity.waitForNetworkState(ConnectivityManager.TYPE_MOBILE,
State.DISCONNECTED, ConnectivityManagerTestActivity.LONG_TIMEOUT)); State.DISCONNECTED, ConnectivityManagerTestActivity.LONG_TIMEOUT));
@ -509,7 +509,7 @@ public class ConnectivityManagerMobileTest extends
assertTrue(cmActivity.waitForWifiState(WifiManager.WIFI_STATE_ENABLED, assertTrue(cmActivity.waitForWifiState(WifiManager.WIFI_STATE_ENABLED,
ConnectivityManagerTestActivity.LONG_TIMEOUT)); ConnectivityManagerTestActivity.LONG_TIMEOUT));
assertTrue(cmActivity.waitForNetworkState(ConnectivityManager.TYPE_WIFI, State.CONNECTED, assertTrue(cmActivity.waitForNetworkState(ConnectivityManager.TYPE_WIFI, State.CONNECTED,
ConnectivityManagerTestActivity.LONG_TIMEOUT)); ConnectivityManagerTestActivity.WIFI_CONNECTION_TIMEOUT));
assertNotNull("Not associated with any AP", assertNotNull("Not associated with any AP",
cmActivity.mWifiManager.getConnectionInfo().getBSSID()); cmActivity.mWifiManager.getConnectionInfo().getBSSID());

View File

@ -118,7 +118,7 @@ public class WifiConnectionTest
// step 2: verify Wifi state and network state; // step 2: verify Wifi state and network state;
assertTrue(mAct.waitForNetworkState(ConnectivityManager.TYPE_WIFI, assertTrue(mAct.waitForNetworkState(ConnectivityManager.TYPE_WIFI,
State.CONNECTED, 6 * ConnectivityManagerTestActivity.LONG_TIMEOUT)); State.CONNECTED, ConnectivityManagerTestActivity.WIFI_CONNECTION_TIMEOUT));
// step 3: verify the current connected network is the given SSID // step 3: verify the current connected network is the given SSID
assertNotNull("Wifi connection returns null", mAct.mWifiManager.getConnectionInfo()); assertNotNull("Wifi connection returns null", mAct.mWifiManager.getConnectionInfo());

View File

@ -248,7 +248,7 @@ public class WifiStressTest
assertTrue(mAct.waitForWifiState(WifiManager.WIFI_STATE_ENABLED, assertTrue(mAct.waitForWifiState(WifiManager.WIFI_STATE_ENABLED,
ConnectivityManagerTestActivity.SHORT_TIMEOUT)); ConnectivityManagerTestActivity.SHORT_TIMEOUT));
assertTrue(mAct.waitForNetworkState(ConnectivityManager.TYPE_WIFI, State.CONNECTED, assertTrue(mAct.waitForNetworkState(ConnectivityManager.TYPE_WIFI, State.CONNECTED,
ConnectivityManagerTestActivity.LONG_TIMEOUT)); ConnectivityManagerTestActivity.WIFI_CONNECTION_TIMEOUT));
// Run ping test to verify the data connection // Run ping test to verify the data connection
assertTrue("Wi-Fi is connected, but no data connection.", mAct.pingTest(null)); assertTrue("Wi-Fi is connected, but no data connection.", mAct.pingTest(null));
@ -302,7 +302,7 @@ public class WifiStressTest
ConnectivityManagerTestActivity.SHORT_TIMEOUT)); ConnectivityManagerTestActivity.SHORT_TIMEOUT));
assertTrue("Wait for Wi-Fi connection timeout after wake up", assertTrue("Wait for Wi-Fi connection timeout after wake up",
mAct.waitForNetworkState(ConnectivityManager.TYPE_WIFI, State.CONNECTED, mAct.waitForNetworkState(ConnectivityManager.TYPE_WIFI, State.CONNECTED,
6 * ConnectivityManagerTestActivity.LONG_TIMEOUT)); ConnectivityManagerTestActivity.WIFI_CONNECTION_TIMEOUT));
long connectionTime = System.currentTimeMillis() - startTime; long connectionTime = System.currentTimeMillis() - startTime;
sum += connectionTime; sum += connectionTime;
log("average reconnection time is: " + sum/(i+1)); log("average reconnection time is: " + sum/(i+1));