am bd06f02d: Cleaning up some more flakiness in DownloadManager tests.
* commit 'bd06f02d02e07ca15e420ee9e50e35253646ba64': Cleaning up some more flakiness in DownloadManager tests.
This commit is contained in:
@@ -83,6 +83,7 @@ public class DownloadManagerBaseTest extends InstrumentationTestCase {
|
|||||||
|
|
||||||
protected static final int WAIT_FOR_DOWNLOAD_POLL_TIME = 1 * 1000; // 1 second
|
protected static final int WAIT_FOR_DOWNLOAD_POLL_TIME = 1 * 1000; // 1 second
|
||||||
protected static final int MAX_WAIT_FOR_DOWNLOAD_TIME = 5 * 60 * 1000; // 5 minutes
|
protected static final int MAX_WAIT_FOR_DOWNLOAD_TIME = 5 * 60 * 1000; // 5 minutes
|
||||||
|
protected static final int MAX_WAIT_FOR_LARGE_DOWNLOAD_TIME = 15 * 60 * 1000; // 15 minutes
|
||||||
|
|
||||||
// Just a few popular file types used to return from a download
|
// Just a few popular file types used to return from a download
|
||||||
protected enum DownloadFileType {
|
protected enum DownloadFileType {
|
||||||
@@ -180,7 +181,7 @@ public class DownloadManagerBaseTest extends InstrumentationTestCase {
|
|||||||
* @return A Set<Long> with the ids of the completed downloads.
|
* @return A Set<Long> with the ids of the completed downloads.
|
||||||
*/
|
*/
|
||||||
public Set<Long> getDownloadIds() {
|
public Set<Long> getDownloadIds() {
|
||||||
synchronized(downloadIds) {
|
synchronized(this) {
|
||||||
Set<Long> returnIds = new HashSet<Long>(downloadIds);
|
Set<Long> returnIds = new HashSet<Long>(downloadIds);
|
||||||
return returnIds;
|
return returnIds;
|
||||||
}
|
}
|
||||||
@@ -224,6 +225,7 @@ public class DownloadManagerBaseTest extends InstrumentationTestCase {
|
|||||||
ConnectivityManager connManager = (ConnectivityManager)mContext.getSystemService(
|
ConnectivityManager connManager = (ConnectivityManager)mContext.getSystemService(
|
||||||
Context.CONNECTIVITY_SERVICE);
|
Context.CONNECTIVITY_SERVICE);
|
||||||
NetworkInfo info = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
|
NetworkInfo info = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
|
||||||
|
Log.i(LOG_TAG, "WiFi Connection state is currently: " + info.isConnected());
|
||||||
return info.isConnected();
|
return info.isConnected();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -511,6 +513,7 @@ public class DownloadManagerBaseTest extends InstrumentationTestCase {
|
|||||||
* @param enable true if it should be enabled, false if it should be disabled
|
* @param enable true if it should be enabled, false if it should be disabled
|
||||||
*/
|
*/
|
||||||
protected void setWiFiStateOn(boolean enable) throws Exception {
|
protected void setWiFiStateOn(boolean enable) throws Exception {
|
||||||
|
Log.i(LOG_TAG, "Setting WiFi State to: " + enable);
|
||||||
WifiManager manager = (WifiManager)mContext.getSystemService(Context.WIFI_SERVICE);
|
WifiManager manager = (WifiManager)mContext.getSystemService(Context.WIFI_SERVICE);
|
||||||
|
|
||||||
manager.setWifiEnabled(enable);
|
manager.setWifiEnabled(enable);
|
||||||
@@ -528,7 +531,7 @@ public class DownloadManagerBaseTest extends InstrumentationTestCase {
|
|||||||
|
|
||||||
while (receiver.getWiFiIsOn() != enable && !timedOut) {
|
while (receiver.getWiFiIsOn() != enable && !timedOut) {
|
||||||
try {
|
try {
|
||||||
receiver.wait(DEFAULT_MAX_WAIT_TIME);
|
receiver.wait(DEFAULT_WAIT_POLL_TIME);
|
||||||
|
|
||||||
if (SystemClock.elapsedRealtime() > timeoutTime) {
|
if (SystemClock.elapsedRealtime() > timeoutTime) {
|
||||||
timedOut = true;
|
timedOut = true;
|
||||||
|
|||||||
@@ -24,7 +24,6 @@ import android.app.DownloadManager.Request;
|
|||||||
import android.database.Cursor;
|
import android.database.Cursor;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import android.os.ParcelFileDescriptor;
|
import android.os.ParcelFileDescriptor;
|
||||||
import android.test.suitebuilder.annotation.LargeTest;
|
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
|
||||||
|
|
||||||
@@ -38,6 +37,7 @@ public class DownloadManagerStressTest extends DownloadManagerBaseTest {
|
|||||||
public void setUp() throws Exception {
|
public void setUp() throws Exception {
|
||||||
super.setUp();
|
super.setUp();
|
||||||
mServer.play(0);
|
mServer.play(0);
|
||||||
|
setWiFiStateOn(true);
|
||||||
removeAllCurrentDownloads();
|
removeAllCurrentDownloads();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -71,7 +71,8 @@ public class DownloadManagerStressTest extends DownloadManagerBaseTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// wait for the download to complete or timeout
|
// wait for the download to complete or timeout
|
||||||
waitForDownloadsOrTimeout(WAIT_FOR_DOWNLOAD_POLL_TIME, MAX_WAIT_FOR_DOWNLOAD_TIME);
|
waitForDownloadsOrTimeout(WAIT_FOR_DOWNLOAD_POLL_TIME,
|
||||||
|
MAX_WAIT_FOR_LARGE_DOWNLOAD_TIME);
|
||||||
cursor = mDownloadManager.query(new Query());
|
cursor = mDownloadManager.query(new Query());
|
||||||
assertEquals(NUM_FILES, cursor.getCount());
|
assertEquals(NUM_FILES, cursor.getCount());
|
||||||
Log.i(LOG_TAG, "Verified number of downloads in download manager is what we expect.");
|
Log.i(LOG_TAG, "Verified number of downloads in download manager is what we expect.");
|
||||||
@@ -130,10 +131,11 @@ public class DownloadManagerStressTest extends DownloadManagerBaseTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Tests trying to download a large file (~300M bytes) when there's not enough space in cache
|
* Tests trying to download a large file (~600M bytes) when there's not enough space in cache
|
||||||
*/
|
*/
|
||||||
public void testInsufficientSpace() throws Exception {
|
public void testInsufficientSpace() throws Exception {
|
||||||
long fileSize = 300000000L;
|
// @TODO: Rework this to fill up cache partition with a dynamically calculated size
|
||||||
|
long fileSize = 600000000L;
|
||||||
File largeFile = createFileOnSD(null, fileSize, DataType.TEXT, null);
|
File largeFile = createFileOnSD(null, fileSize, DataType.TEXT, null);
|
||||||
|
|
||||||
Cursor cursor = null;
|
Cursor cursor = null;
|
||||||
|
|||||||
Reference in New Issue
Block a user