Merge "Wait for network to resume in ConcurrencyTest" am: 3ba439e1b2

am: 52697c65f3

* commit '52697c65f38b93e979b854017d5669d3dbc00395':
  Wait for network to resume in ConcurrencyTest
This commit is contained in:
Yi Kong
2016-01-29 18:05:26 +00:00
committed by android-build-merger

View File

@@ -20,12 +20,20 @@ import android.content.BroadcastReceiver;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.content.IntentFilter; import android.content.IntentFilter;
import android.net.ConnectivityManager;
import android.net.ConnectivityManager.NetworkCallback;
import android.net.Network;
import android.net.NetworkCapabilities;
import android.net.NetworkRequest;
import android.net.wifi.WifiManager; import android.net.wifi.WifiManager;
import android.net.wifi.p2p.WifiP2pManager; import android.net.wifi.p2p.WifiP2pManager;
import static android.net.wifi.p2p.WifiP2pManager.WIFI_P2P_STATE_DISABLED; import static android.net.wifi.p2p.WifiP2pManager.WIFI_P2P_STATE_DISABLED;
import static android.net.wifi.p2p.WifiP2pManager.WIFI_P2P_STATE_ENABLED; import static android.net.wifi.p2p.WifiP2pManager.WIFI_P2P_STATE_ENABLED;
import android.test.AndroidTestCase; import android.test.AndroidTestCase;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeUnit;
public class ConcurrencyTest extends AndroidTestCase { public class ConcurrencyTest extends AndroidTestCase {
private class MySync { private class MySync {
int expectedWifiState; int expectedWifiState;
@@ -94,10 +102,7 @@ public class ConcurrencyTest extends AndroidTestCase {
} }
mContext.unregisterReceiver(mReceiver); mContext.unregisterReceiver(mReceiver);
if (!mWifiManager.isWifiEnabled()) { enableWifi();
assertTrue(mWifiManager.setWifiEnabled(true));
Thread.sleep(DURATION);
}
super.tearDown(); super.tearDown();
} }
@@ -114,6 +119,33 @@ public class ConcurrencyTest extends AndroidTestCase {
} }
} }
/*
* Enables Wifi and block until connection is established.
*/
private void enableWifi() throws InterruptedException {
if (!mWifiManager.isWifiEnabled()) {
assertTrue(mWifiManager.setWifiEnabled(true));
}
ConnectivityManager cm =
(ConnectivityManager) getContext().getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkRequest request =
new NetworkRequest.Builder().addTransportType(NetworkCapabilities.TRANSPORT_WIFI)
.addCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET)
.build();
final CountDownLatch latch = new CountDownLatch(1);
NetworkCallback networkCallback = new NetworkCallback() {
@Override
public void onAvailable(Network network) {
latch.countDown();
}
};
cm.registerNetworkCallback(request, networkCallback);
latch.await(DURATION, TimeUnit.MILLISECONDS);
cm.unregisterNetworkCallback(networkCallback);
}
public void testConcurrency() { public void testConcurrency() {
// Cannot support p2p alone // Cannot support p2p alone
if (!WifiFeature.isWifiSupported(getContext())) { if (!WifiFeature.isWifiSupported(getContext())) {