Loading core/tests/ConnectivityManagerTest/src/com/android/connectivitymanagertest/ConnectivityManagerTestActivity.java +40 −0 Original line number Diff line number Diff line Loading @@ -30,7 +30,9 @@ import android.provider.Settings; import android.util.Log; import android.view.KeyEvent; import java.io.IOException; import java.io.InputStream; import java.net.UnknownHostException; import java.util.ArrayList; import java.util.List; import android.widget.LinearLayout; Loading Loading @@ -484,6 +486,44 @@ public class ConnectivityManagerTestActivity extends Activity { } } /** * @param pingServerList a list of servers that can be used for ping test, can be null * @return true if the ping test is successful, false otherwise. */ public boolean pingTest(String[] pingServerList) { boolean result = false; String[] hostList = {"www.google.com", "www.yahoo.com", "www.bing.com", "www.facebook.com", "www.ask.com"}; if (pingServerList != null) { hostList = pingServerList; } try { // assume the chance that all servers are down is very small for (int i = 0; i < hostList.length; i++ ) { String host = hostList[i]; log("Start ping test, ping " + host); Process p = Runtime.getRuntime().exec("ping -c 10 -w 100 " + host); int status = p.waitFor(); if (status == 0) { // if any of the ping test is successful, return true result = true; break; } else { result = false; log("ping " + host + " failed."); } } } catch (UnknownHostException e) { log("Ping test Fail: Unknown Host"); } catch (IOException e) { log("Ping test Fail: IOException"); } catch (InterruptedException e) { log("Ping test Fail: InterruptedException"); } log("return"); return result; } /** * Associate the device to given SSID * If the device is already associated with a WiFi, disconnect and forget it, Loading core/tests/ConnectivityManagerTest/src/com/android/connectivitymanagertest/stress/WifiApStress.java +11 −0 Original line number Diff line number Diff line Loading @@ -107,6 +107,17 @@ public class WifiApStress } catch (Exception e) { fail("thread in sleep is interrupted"); } assertTrue("no uplink data connection after Wi-Fi tethering", mAct.pingTest(null)); // Wait for 5 minutes, and verify the data connection again. // bug id: 3400027 try { Thread.sleep(5 * 60 * 1000); } catch (Exception e) { fail("thread in sleep is interrupted"); } // Verify the uplink data connection assertTrue("no uplink data connection", mAct.pingTest(null)); // Disable soft AP assertTrue(mAct.mWifiManager.setWifiApEnabled(config, false)); // Wait for 30 seconds until Wi-Fi tethering is stopped try { Loading core/tests/ConnectivityManagerTest/src/com/android/connectivitymanagertest/stress/WifiStressTest.java +7 −0 Original line number Diff line number Diff line Loading @@ -243,6 +243,9 @@ public class WifiStressTest ConnectivityManagerTestActivity.SHORT_TIMEOUT)); assertTrue(mAct.waitForNetworkState(ConnectivityManager.TYPE_WIFI, State.CONNECTED, ConnectivityManagerTestActivity.LONG_TIMEOUT)); // Run ping test to verify the data connection assertTrue("Wi-Fi is connected, but no data connection.", mAct.pingTest(null)); int i; for (i = 0; i < mReconnectIterations; i++) { // 1. Put device into sleep mode Loading Loading @@ -271,6 +274,9 @@ public class WifiStressTest mAct.mCM.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState()); assertEquals("Cellular connection is down", State.CONNECTED, mAct.mCM.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState()); assertTrue("Mobile is connected, but no data connection.", mAct.pingTest(null)); // Turn screen on again mAct.turnScreenOn(); assertTrue("Wait for Wi-Fi enable timeout after wake up", Loading @@ -279,6 +285,7 @@ public class WifiStressTest assertTrue("Wait for Wi-Fi connection timeout after wake up", mAct.waitForNetworkState(ConnectivityManager.TYPE_WIFI, State.CONNECTED, ConnectivityManagerTestActivity.LONG_TIMEOUT)); assertTrue("Reconnect to Wi-Fi network, but no data connection.", mAct.pingTest(null)); } if (i == mReconnectIterations) { writeOutput(String.format("iteration %d out of %d", Loading Loading
core/tests/ConnectivityManagerTest/src/com/android/connectivitymanagertest/ConnectivityManagerTestActivity.java +40 −0 Original line number Diff line number Diff line Loading @@ -30,7 +30,9 @@ import android.provider.Settings; import android.util.Log; import android.view.KeyEvent; import java.io.IOException; import java.io.InputStream; import java.net.UnknownHostException; import java.util.ArrayList; import java.util.List; import android.widget.LinearLayout; Loading Loading @@ -484,6 +486,44 @@ public class ConnectivityManagerTestActivity extends Activity { } } /** * @param pingServerList a list of servers that can be used for ping test, can be null * @return true if the ping test is successful, false otherwise. */ public boolean pingTest(String[] pingServerList) { boolean result = false; String[] hostList = {"www.google.com", "www.yahoo.com", "www.bing.com", "www.facebook.com", "www.ask.com"}; if (pingServerList != null) { hostList = pingServerList; } try { // assume the chance that all servers are down is very small for (int i = 0; i < hostList.length; i++ ) { String host = hostList[i]; log("Start ping test, ping " + host); Process p = Runtime.getRuntime().exec("ping -c 10 -w 100 " + host); int status = p.waitFor(); if (status == 0) { // if any of the ping test is successful, return true result = true; break; } else { result = false; log("ping " + host + " failed."); } } } catch (UnknownHostException e) { log("Ping test Fail: Unknown Host"); } catch (IOException e) { log("Ping test Fail: IOException"); } catch (InterruptedException e) { log("Ping test Fail: InterruptedException"); } log("return"); return result; } /** * Associate the device to given SSID * If the device is already associated with a WiFi, disconnect and forget it, Loading
core/tests/ConnectivityManagerTest/src/com/android/connectivitymanagertest/stress/WifiApStress.java +11 −0 Original line number Diff line number Diff line Loading @@ -107,6 +107,17 @@ public class WifiApStress } catch (Exception e) { fail("thread in sleep is interrupted"); } assertTrue("no uplink data connection after Wi-Fi tethering", mAct.pingTest(null)); // Wait for 5 minutes, and verify the data connection again. // bug id: 3400027 try { Thread.sleep(5 * 60 * 1000); } catch (Exception e) { fail("thread in sleep is interrupted"); } // Verify the uplink data connection assertTrue("no uplink data connection", mAct.pingTest(null)); // Disable soft AP assertTrue(mAct.mWifiManager.setWifiApEnabled(config, false)); // Wait for 30 seconds until Wi-Fi tethering is stopped try { Loading
core/tests/ConnectivityManagerTest/src/com/android/connectivitymanagertest/stress/WifiStressTest.java +7 −0 Original line number Diff line number Diff line Loading @@ -243,6 +243,9 @@ public class WifiStressTest ConnectivityManagerTestActivity.SHORT_TIMEOUT)); assertTrue(mAct.waitForNetworkState(ConnectivityManager.TYPE_WIFI, State.CONNECTED, ConnectivityManagerTestActivity.LONG_TIMEOUT)); // Run ping test to verify the data connection assertTrue("Wi-Fi is connected, but no data connection.", mAct.pingTest(null)); int i; for (i = 0; i < mReconnectIterations; i++) { // 1. Put device into sleep mode Loading Loading @@ -271,6 +274,9 @@ public class WifiStressTest mAct.mCM.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState()); assertEquals("Cellular connection is down", State.CONNECTED, mAct.mCM.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState()); assertTrue("Mobile is connected, but no data connection.", mAct.pingTest(null)); // Turn screen on again mAct.turnScreenOn(); assertTrue("Wait for Wi-Fi enable timeout after wake up", Loading @@ -279,6 +285,7 @@ public class WifiStressTest assertTrue("Wait for Wi-Fi connection timeout after wake up", mAct.waitForNetworkState(ConnectivityManager.TYPE_WIFI, State.CONNECTED, ConnectivityManagerTestActivity.LONG_TIMEOUT)); assertTrue("Reconnect to Wi-Fi network, but no data connection.", mAct.pingTest(null)); } if (i == mReconnectIterations) { writeOutput(String.format("iteration %d out of %d", Loading