Fix minor bug and deflaky for DnsResolverTest

1. Add the missing countdown() in the test callback
2. Add ensureWifiConnected() to prevent no available network problem.
3. Increase the timeout for awaiting private DNS setting because
   current one might not be enough.

Bug: 168027339
Test atest

Change-Id: I91190d8644ff7a7dfaf4fa3f2d43c17f67dfac11
This commit is contained in:
Luke Huang
2020-11-04 16:00:33 +08:00
parent ebff93159e
commit fcabfc688d
2 changed files with 8 additions and 1 deletions

View File

@@ -28,6 +28,7 @@ import android.annotation.NonNull;
import android.annotation.Nullable;
import android.content.Context;
import android.content.ContentResolver;
import android.content.pm.PackageManager;
import android.net.ConnectivityManager;
import android.net.ConnectivityManager.NetworkCallback;
import android.net.DnsResolver;
@@ -91,6 +92,7 @@ public class DnsResolverTest extends AndroidTestCase {
private ContentResolver mCR;
private ConnectivityManager mCM;
private PackageManager mPackageManager;
private CtsNetUtils mCtsNetUtils;
private Executor mExecutor;
private Executor mExecutorInline;
@@ -109,6 +111,7 @@ public class DnsResolverTest extends AndroidTestCase {
mCR = getContext().getContentResolver();
mCtsNetUtils = new CtsNetUtils(getContext());
mCtsNetUtils.storePrivateDnsSetting();
mPackageManager = mContext.getPackageManager();
}
@Override
@@ -128,6 +131,9 @@ public class DnsResolverTest extends AndroidTestCase {
}
private Network[] getTestableNetworks() {
if (mPackageManager.hasSystemFeature(PackageManager.FEATURE_WIFI)) {
mCtsNetUtils.ensureWifiConnected();
}
final ArrayList<Network> testableNetworks = new ArrayList<Network>();
for (Network network : mCM.getAllNetworks()) {
final NetworkCapabilities nc = mCM.getNetworkCapabilities(network);
@@ -555,6 +561,7 @@ public class DnsResolverTest extends AndroidTestCase {
@Override
public void onError(@NonNull DnsResolver.DnsException error) {
mErrorMsg = mMsg + error.getMessage();
mLatch.countDown();
}
}

View File

@@ -84,7 +84,7 @@ public final class CtsNetUtils {
private static final int SOCKET_TIMEOUT_MS = 2000;
private static final int PRIVATE_DNS_PROBE_MS = 1_000;
private static final int PRIVATE_DNS_SETTING_TIMEOUT_MS = 6_000;
private static final int PRIVATE_DNS_SETTING_TIMEOUT_MS = 10_000;
private static final int CONNECTIVITY_CHANGE_TIMEOUT_SECS = 30;
public static final int HTTP_PORT = 80;
public static final String TEST_HOST = "connectivitycheck.gstatic.com";