Loading core/tests/ConnectivityManagerTest/Android.mk +1 −1 Original line number Diff line number Diff line Loading @@ -25,6 +25,6 @@ LOCAL_SRC_FILES := $(call all-java-files-under, src) LOCAL_PACKAGE_NAME := ConnectivityManagerTest #LOCAL_INSTRUMENTATION_FOR := connectivitymanagertest LOCAL_CERTIFICATE := platform include $(BUILD_PACKAGE) core/tests/ConnectivityManagerTest/AndroidManifest.xml +6 −1 Original line number Diff line number Diff line Loading @@ -16,7 +16,8 @@ <!-- package name must be unique so suffix with "tests" so package loader doesn't ignore us --> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.android.connectivitymanagertest"> package="com.android.connectivitymanagertest" android:sharedUserId="com.android.uid.test"> <!-- We add an application tag here just so that we can indicate that this package needs to link against the android.test library, Loading Loading @@ -67,5 +68,9 @@ <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> <uses-permission android:name="android.permission.WRITE_SETTINGS" /> <uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" /> <uses-permission android:name="android.permission.WAKE_LOCK" /> <uses-permission android:name="android.permission.DEVICE_POWER" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> </manifest> core/tests/ConnectivityManagerTest/src/com/android/connectivitymanagertest/ConnectivityManagerStressTestRunner.java +47 −7 Original line number Diff line number Diff line Loading @@ -19,8 +19,8 @@ package com.android.connectivitymanagertest; import android.os.Bundle; import android.test.InstrumentationTestRunner; import android.test.InstrumentationTestSuite; import android.util.Log; import com.android.connectivitymanagertest.stress.WifiApStress; import com.android.connectivitymanagertest.stress.WifiStressTest; import junit.framework.TestSuite; Loading @@ -34,10 +34,18 @@ import junit.framework.TestSuite; */ public class ConnectivityManagerStressTestRunner extends InstrumentationTestRunner { public int mSoftapIterations = 100; public int mScanIterations = 100; public int mReconnectIterations = 100; public int mSleepTime = 30 * 1000; // default sleep time is 30 seconds public String mReconnectSsid = "securenetdhcp"; public String mReconnectPassword = "androidwifi"; @Override public TestSuite getAllTests() { TestSuite suite = new InstrumentationTestSuite(this); suite.addTestSuite(WifiApStress.class); suite.addTestSuite(WifiStressTest.class); return suite; } Loading @@ -49,14 +57,46 @@ public class ConnectivityManagerStressTestRunner extends InstrumentationTestRunn @Override public void onCreate(Bundle icicle) { super.onCreate(icicle); String stressValue = (String) icicle.get("stressnum"); if (stressValue != null) { int iteration = Integer.parseInt(stressValue); String valueStr = (String) icicle.get("softap_iterations"); if (valueStr != null) { int iteration = Integer.parseInt(valueStr); if (iteration > 0) { numStress = iteration; mSoftapIterations = iteration; } } String scanIterationStr = (String) icicle.get("scan_iterations"); if (scanIterationStr != null) { int scanIteration = Integer.parseInt(scanIterationStr); if (scanIteration > 0) { mScanIterations = scanIteration; } } String ssidStr= (String) icicle.get("reconnect_ssid"); if (ssidStr != null) { mReconnectSsid = ssidStr; } String passwordStr = (String) icicle.get("reconnect_password"); if (passwordStr != null) { mReconnectPassword = passwordStr; } String reconnectStr = (String) icicle.get("reconnect_iterations"); if (reconnectStr != null) { int iteration = Integer.parseInt(reconnectStr); if (iteration > 0) { mReconnectIterations = iteration; } } public int numStress = 100; String sleepTimeStr = (String) icicle.get("sleep_time"); if (sleepTimeStr != null) { int sleepTime = Integer.parseInt(sleepTimeStr); if (sleepTime > 0) { mSleepTime = 1000 * sleepTime; } } } } core/tests/ConnectivityManagerTest/src/com/android/connectivitymanagertest/ConnectivityManagerTestActivity.java +6 −0 Original line number Diff line number Diff line Loading @@ -76,6 +76,7 @@ public class ConnectivityManagerTestActivity extends Activity { public String mBssid; public String mPowerSsid = "GoogleGuest"; //Default power SSID private Context mContext; public boolean scanResultAvailable = false; /* * Control Wifi States Loading Loading @@ -142,6 +143,7 @@ public class ConnectivityManagerTestActivity extends Activity { String action = intent.getAction(); Log.v("WifiReceiver", "onReceive() is calleld with " + intent); if (action.equals(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION)) { log("scan results are available"); notifyScanResult(); } else if (action.equals(WifiManager.NETWORK_STATE_CHANGED_ACTION)) { mWifiNetworkInfo = Loading Loading @@ -174,6 +176,7 @@ public class ConnectivityManagerTestActivity extends Activity { public ConnectivityManagerTestActivity() { mState = State.UNKNOWN; scanResultAvailable = false; } @Override Loading Loading @@ -267,6 +270,7 @@ public class ConnectivityManagerTestActivity extends Activity { private void notifyScanResult() { synchronized (this) { log("notify that scan results are available"); scanResultAvailable = true; this.notify(); } } Loading Loading @@ -328,6 +332,8 @@ public class ConnectivityManagerTestActivity extends Activity { long startTime = System.currentTimeMillis(); while (true) { if ((System.currentTimeMillis() - startTime) > timeout) { log("waitForNetworkState time out, the state of network type " + networkType + " is: " + mCM.getNetworkInfo(networkType).getState()); if (mCM.getNetworkInfo(networkType).getState() != expectedState) { return false; } else { Loading core/tests/ConnectivityManagerTest/src/com/android/connectivitymanagertest/stress/WifiApStress.java +41 −8 Original line number Diff line number Diff line Loading @@ -19,25 +19,36 @@ package com.android.connectivitymanagertest.stress; import com.android.connectivitymanagertest.ConnectivityManagerStressTestRunner; import com.android.connectivitymanagertest.ConnectivityManagerTestActivity; import com.android.connectivitymanagertest.ConnectivityManagerTestRunner; import android.content.Context; import android.net.wifi.WifiConfiguration; import android.net.wifi.WifiConfiguration.KeyMgmt; import android.net.wifi.WifiConfiguration.AuthAlgorithm; import android.net.wifi.WifiManager; import android.os.Environment; import android.os.PowerManager; import android.test.ActivityInstrumentationTestCase2; import android.test.suitebuilder.annotation.LargeTest; import android.util.Log; import java.io.BufferedWriter; import java.io.File; import java.io.FileWriter; /** * Stress the wifi driver as access point. */ public class WifiApStress extends ActivityInstrumentationTestCase2<ConnectivityManagerTestActivity> { private final static String TAG = "WifiApStress"; private ConnectivityManagerTestActivity mAct; private static String NETWORK_ID = "AndroidAPTest"; private static String PASSWD = "androidwifi"; private int max_num; private final static String OUTPUT_FILE = "WifiApStressOutput.txt"; private ConnectivityManagerTestActivity mAct; private int iterations; private PowerManager.WakeLock mWakelock = null; private BufferedWriter mOutputWriter = null; private int mLastIteration = 0; public WifiApStress() { super(ConnectivityManagerTestActivity.class); Loading @@ -47,11 +58,27 @@ public class WifiApStress public void setUp() throws Exception { super.setUp(); mAct = getActivity(); max_num = ((ConnectivityManagerStressTestRunner)getInstrumentation()).numStress; ConnectivityManagerStressTestRunner mRunner = (ConnectivityManagerStressTestRunner)getInstrumentation(); iterations = mRunner.mSoftapIterations; PowerManager pm = (PowerManager)mRunner.getContext().getSystemService(Context.POWER_SERVICE); mWakelock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "wifiApStress"); mWakelock.acquire(); } @Override public void tearDown() throws Exception { if (mWakelock != null) { mWakelock.release(); } // write the total number of iterations into output file mOutputWriter = new BufferedWriter(new FileWriter(new File( Environment.getExternalStorageDirectory(), OUTPUT_FILE))); mOutputWriter.write(String.format("iteration %d out of %d" + "\n", mLastIteration, iterations)); mOutputWriter.flush(); mOutputWriter.close(); super.tearDown(); } Loading @@ -67,15 +94,18 @@ public class WifiApStress if (mAct.mWifiManager.isWifiEnabled()) { mAct.disableWifi(); } for (int i = 0; i < max_num; i++) { int i; for (i = 0; i < iterations; i++) { Log.v(TAG, "iteration: " + i); mLastIteration = i; // enable Wifi tethering assertTrue(mAct.mWifiManager.setWifiApEnabled(config, true)); // Wait for wifi ap state to be ENABLED assertTrue(mAct.waitForWifiAPState(mAct.mWifiManager.WIFI_AP_STATE_ENABLED, mAct.LONG_TIMEOUT)); assertTrue(mAct.waitForWifiAPState(WifiManager.WIFI_AP_STATE_ENABLED, ConnectivityManagerTestActivity.LONG_TIMEOUT)); // Wait for wifi tethering result assertEquals(mAct.SUCCESS, mAct.waitForTetherStateChange(2*mAct.SHORT_TIMEOUT)); assertEquals(ConnectivityManagerTestActivity.SUCCESS, mAct.waitForTetherStateChange(2*ConnectivityManagerTestActivity.SHORT_TIMEOUT)); // Allow the wifi tethering to be enabled for 10 seconds try { Thread.sleep(2 * ConnectivityManagerTestActivity.SHORT_TIMEOUT); Loading @@ -84,6 +114,9 @@ public class WifiApStress } assertTrue(mAct.mWifiManager.setWifiApEnabled(config, false)); } if (i == iterations) { mLastIteration = iterations; } } } Loading
core/tests/ConnectivityManagerTest/Android.mk +1 −1 Original line number Diff line number Diff line Loading @@ -25,6 +25,6 @@ LOCAL_SRC_FILES := $(call all-java-files-under, src) LOCAL_PACKAGE_NAME := ConnectivityManagerTest #LOCAL_INSTRUMENTATION_FOR := connectivitymanagertest LOCAL_CERTIFICATE := platform include $(BUILD_PACKAGE)
core/tests/ConnectivityManagerTest/AndroidManifest.xml +6 −1 Original line number Diff line number Diff line Loading @@ -16,7 +16,8 @@ <!-- package name must be unique so suffix with "tests" so package loader doesn't ignore us --> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.android.connectivitymanagertest"> package="com.android.connectivitymanagertest" android:sharedUserId="com.android.uid.test"> <!-- We add an application tag here just so that we can indicate that this package needs to link against the android.test library, Loading Loading @@ -67,5 +68,9 @@ <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> <uses-permission android:name="android.permission.WRITE_SETTINGS" /> <uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" /> <uses-permission android:name="android.permission.WAKE_LOCK" /> <uses-permission android:name="android.permission.DEVICE_POWER" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> </manifest>
core/tests/ConnectivityManagerTest/src/com/android/connectivitymanagertest/ConnectivityManagerStressTestRunner.java +47 −7 Original line number Diff line number Diff line Loading @@ -19,8 +19,8 @@ package com.android.connectivitymanagertest; import android.os.Bundle; import android.test.InstrumentationTestRunner; import android.test.InstrumentationTestSuite; import android.util.Log; import com.android.connectivitymanagertest.stress.WifiApStress; import com.android.connectivitymanagertest.stress.WifiStressTest; import junit.framework.TestSuite; Loading @@ -34,10 +34,18 @@ import junit.framework.TestSuite; */ public class ConnectivityManagerStressTestRunner extends InstrumentationTestRunner { public int mSoftapIterations = 100; public int mScanIterations = 100; public int mReconnectIterations = 100; public int mSleepTime = 30 * 1000; // default sleep time is 30 seconds public String mReconnectSsid = "securenetdhcp"; public String mReconnectPassword = "androidwifi"; @Override public TestSuite getAllTests() { TestSuite suite = new InstrumentationTestSuite(this); suite.addTestSuite(WifiApStress.class); suite.addTestSuite(WifiStressTest.class); return suite; } Loading @@ -49,14 +57,46 @@ public class ConnectivityManagerStressTestRunner extends InstrumentationTestRunn @Override public void onCreate(Bundle icicle) { super.onCreate(icicle); String stressValue = (String) icicle.get("stressnum"); if (stressValue != null) { int iteration = Integer.parseInt(stressValue); String valueStr = (String) icicle.get("softap_iterations"); if (valueStr != null) { int iteration = Integer.parseInt(valueStr); if (iteration > 0) { numStress = iteration; mSoftapIterations = iteration; } } String scanIterationStr = (String) icicle.get("scan_iterations"); if (scanIterationStr != null) { int scanIteration = Integer.parseInt(scanIterationStr); if (scanIteration > 0) { mScanIterations = scanIteration; } } String ssidStr= (String) icicle.get("reconnect_ssid"); if (ssidStr != null) { mReconnectSsid = ssidStr; } String passwordStr = (String) icicle.get("reconnect_password"); if (passwordStr != null) { mReconnectPassword = passwordStr; } String reconnectStr = (String) icicle.get("reconnect_iterations"); if (reconnectStr != null) { int iteration = Integer.parseInt(reconnectStr); if (iteration > 0) { mReconnectIterations = iteration; } } public int numStress = 100; String sleepTimeStr = (String) icicle.get("sleep_time"); if (sleepTimeStr != null) { int sleepTime = Integer.parseInt(sleepTimeStr); if (sleepTime > 0) { mSleepTime = 1000 * sleepTime; } } } }
core/tests/ConnectivityManagerTest/src/com/android/connectivitymanagertest/ConnectivityManagerTestActivity.java +6 −0 Original line number Diff line number Diff line Loading @@ -76,6 +76,7 @@ public class ConnectivityManagerTestActivity extends Activity { public String mBssid; public String mPowerSsid = "GoogleGuest"; //Default power SSID private Context mContext; public boolean scanResultAvailable = false; /* * Control Wifi States Loading Loading @@ -142,6 +143,7 @@ public class ConnectivityManagerTestActivity extends Activity { String action = intent.getAction(); Log.v("WifiReceiver", "onReceive() is calleld with " + intent); if (action.equals(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION)) { log("scan results are available"); notifyScanResult(); } else if (action.equals(WifiManager.NETWORK_STATE_CHANGED_ACTION)) { mWifiNetworkInfo = Loading Loading @@ -174,6 +176,7 @@ public class ConnectivityManagerTestActivity extends Activity { public ConnectivityManagerTestActivity() { mState = State.UNKNOWN; scanResultAvailable = false; } @Override Loading Loading @@ -267,6 +270,7 @@ public class ConnectivityManagerTestActivity extends Activity { private void notifyScanResult() { synchronized (this) { log("notify that scan results are available"); scanResultAvailable = true; this.notify(); } } Loading Loading @@ -328,6 +332,8 @@ public class ConnectivityManagerTestActivity extends Activity { long startTime = System.currentTimeMillis(); while (true) { if ((System.currentTimeMillis() - startTime) > timeout) { log("waitForNetworkState time out, the state of network type " + networkType + " is: " + mCM.getNetworkInfo(networkType).getState()); if (mCM.getNetworkInfo(networkType).getState() != expectedState) { return false; } else { Loading
core/tests/ConnectivityManagerTest/src/com/android/connectivitymanagertest/stress/WifiApStress.java +41 −8 Original line number Diff line number Diff line Loading @@ -19,25 +19,36 @@ package com.android.connectivitymanagertest.stress; import com.android.connectivitymanagertest.ConnectivityManagerStressTestRunner; import com.android.connectivitymanagertest.ConnectivityManagerTestActivity; import com.android.connectivitymanagertest.ConnectivityManagerTestRunner; import android.content.Context; import android.net.wifi.WifiConfiguration; import android.net.wifi.WifiConfiguration.KeyMgmt; import android.net.wifi.WifiConfiguration.AuthAlgorithm; import android.net.wifi.WifiManager; import android.os.Environment; import android.os.PowerManager; import android.test.ActivityInstrumentationTestCase2; import android.test.suitebuilder.annotation.LargeTest; import android.util.Log; import java.io.BufferedWriter; import java.io.File; import java.io.FileWriter; /** * Stress the wifi driver as access point. */ public class WifiApStress extends ActivityInstrumentationTestCase2<ConnectivityManagerTestActivity> { private final static String TAG = "WifiApStress"; private ConnectivityManagerTestActivity mAct; private static String NETWORK_ID = "AndroidAPTest"; private static String PASSWD = "androidwifi"; private int max_num; private final static String OUTPUT_FILE = "WifiApStressOutput.txt"; private ConnectivityManagerTestActivity mAct; private int iterations; private PowerManager.WakeLock mWakelock = null; private BufferedWriter mOutputWriter = null; private int mLastIteration = 0; public WifiApStress() { super(ConnectivityManagerTestActivity.class); Loading @@ -47,11 +58,27 @@ public class WifiApStress public void setUp() throws Exception { super.setUp(); mAct = getActivity(); max_num = ((ConnectivityManagerStressTestRunner)getInstrumentation()).numStress; ConnectivityManagerStressTestRunner mRunner = (ConnectivityManagerStressTestRunner)getInstrumentation(); iterations = mRunner.mSoftapIterations; PowerManager pm = (PowerManager)mRunner.getContext().getSystemService(Context.POWER_SERVICE); mWakelock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "wifiApStress"); mWakelock.acquire(); } @Override public void tearDown() throws Exception { if (mWakelock != null) { mWakelock.release(); } // write the total number of iterations into output file mOutputWriter = new BufferedWriter(new FileWriter(new File( Environment.getExternalStorageDirectory(), OUTPUT_FILE))); mOutputWriter.write(String.format("iteration %d out of %d" + "\n", mLastIteration, iterations)); mOutputWriter.flush(); mOutputWriter.close(); super.tearDown(); } Loading @@ -67,15 +94,18 @@ public class WifiApStress if (mAct.mWifiManager.isWifiEnabled()) { mAct.disableWifi(); } for (int i = 0; i < max_num; i++) { int i; for (i = 0; i < iterations; i++) { Log.v(TAG, "iteration: " + i); mLastIteration = i; // enable Wifi tethering assertTrue(mAct.mWifiManager.setWifiApEnabled(config, true)); // Wait for wifi ap state to be ENABLED assertTrue(mAct.waitForWifiAPState(mAct.mWifiManager.WIFI_AP_STATE_ENABLED, mAct.LONG_TIMEOUT)); assertTrue(mAct.waitForWifiAPState(WifiManager.WIFI_AP_STATE_ENABLED, ConnectivityManagerTestActivity.LONG_TIMEOUT)); // Wait for wifi tethering result assertEquals(mAct.SUCCESS, mAct.waitForTetherStateChange(2*mAct.SHORT_TIMEOUT)); assertEquals(ConnectivityManagerTestActivity.SUCCESS, mAct.waitForTetherStateChange(2*ConnectivityManagerTestActivity.SHORT_TIMEOUT)); // Allow the wifi tethering to be enabled for 10 seconds try { Thread.sleep(2 * ConnectivityManagerTestActivity.SHORT_TIMEOUT); Loading @@ -84,6 +114,9 @@ public class WifiApStress } assertTrue(mAct.mWifiManager.setWifiApEnabled(config, false)); } if (i == iterations) { mLastIteration = iterations; } } }