Fix FileCopyUiTest failure because of Virtual SD Card not ejected am: d11b7e9b8d
Change-Id: Ie9e4b3a53862e843f68e3c2e4bdaf7e009837b10
diff --git a/tests/functional/com/android/documentsui/FileCopyUiTest.java b/tests/functional/com/android/documentsui/FileCopyUiTest.java
index 79c109d..d052721 100644
--- a/tests/functional/com/android/documentsui/FileCopyUiTest.java
+++ b/tests/functional/com/android/documentsui/FileCopyUiTest.java
@@ -30,6 +30,7 @@
import android.os.RemoteException;
import android.os.SystemClock;
import android.provider.Settings;
+import android.support.test.uiautomator.UiObjectNotFoundException;
import android.text.TextUtils;
import android.util.Log;
@@ -172,27 +173,38 @@
public void tearDown() throws Exception {
// Delete created files
deleteDocuments(mDeviceLabel);
- deleteDocuments(mSdCardLabel);
+ try {
+ deleteDocuments(mSdCardLabel);
+ } catch (UiObjectNotFoundException e) {
+ Log.d(TAG, "SD Card ejected unexpectedly. ", e);
+ mSdCardRoot = null;
+ mSdCardLabel = null;
+ }
for (RootAndFolderPair rootAndFolder : mFoldersToCleanup) {
deleteDocuments(rootAndFolder.root, rootAndFolder.folder);
}
// Eject virtual SD card
- if (mIsVirtualSdCard) {
+ if (mIsVirtualSdCard && mSdCardRoot != null) {
device.executeShellCommand("sm set-virtual-disk false");
- while (mSdCardRoot != null) {
+ int attempts = 0;
+ while (mSdCardRoot != null && attempts++ < 15) {
List<RootInfo> rootList = mStorageDocsHelper.getRootList();
+ boolean sdCardRootHidden = true;
for (RootInfo info : rootList) {
if (info.isSd()) {
+ sdCardRootHidden = false;
SystemClock.sleep(1000);
break;
}
-
+ }
+ if (sdCardRootHidden) {
mSdCardRoot = null;
mSdCardLabel = null;
}
}
+ assertNull("Cannot eject virtual SD Card", mSdCardRoot);
}
device.executeShellCommand("settings put global stay_on_while_plugged_in "