summaryrefslogtreecommitdiff
path: root/android-test-framework
diff options
context:
space:
mode:
authorYuriy Solodkyy <solodkyy@google.com>2022-06-01 11:38:10 +0100
committerYuriy Solodkyy <solodkyy@google.com>2022-06-01 13:16:55 +0000
commit4846c73c96d94acf1a85f26d4ceb6a6a168fa345 (patch)
tree12d75dd73f7ab698354790c325e58839ebdd083b /android-test-framework
parent9b243f800fad007950666f9f64a5f29a40de46cb (diff)
downloadidea-4846c73c96d94acf1a85f26d4ceb6a6a168fa345.tar.gz
Process events when sync ends in tests
Events scheduled by sync often as a result of refreshing the file system may keep references to various objects and trigger leak hunter errors. Bug: 233899186 Test: n/a Change-Id: I3f97c8e3a6620b6d9a7f85d63d9a4938690a4a49
Diffstat (limited to 'android-test-framework')
-rw-r--r--android-test-framework/testSrc/com/android/tools/idea/testing/AndroidGradleTests.java8
1 files changed, 8 insertions, 0 deletions
diff --git a/android-test-framework/testSrc/com/android/tools/idea/testing/AndroidGradleTests.java b/android-test-framework/testSrc/com/android/tools/idea/testing/AndroidGradleTests.java
index 417ddc11eff..7400130f116 100644
--- a/android-test-framework/testSrc/com/android/tools/idea/testing/AndroidGradleTests.java
+++ b/android-test-framework/testSrc/com/android/tools/idea/testing/AndroidGradleTests.java
@@ -30,6 +30,7 @@ import static com.android.tools.idea.testing.FileSubject.file;
import static com.google.common.truth.Truth.assertAbout;
import static com.google.common.truth.Truth.assertThat;
import static com.intellij.ide.impl.NewProjectUtil.applyJdkToProject;
+import static com.intellij.openapi.application.ActionsKt.invokeAndWaitIfNeeded;
import static com.intellij.openapi.application.ActionsKt.runWriteAction;
import static com.intellij.openapi.command.WriteCommandAction.runWriteCommandAction;
import static com.intellij.openapi.projectRoots.JavaSdkVersion.JDK_1_8;
@@ -63,6 +64,8 @@ import com.google.common.base.Strings;
import com.google.common.collect.Iterables;
import com.google.common.collect.Lists;
import com.intellij.openapi.Disposable;
+import com.intellij.openapi.application.ApplicationManager;
+import com.intellij.openapi.application.ModalityState;
import com.intellij.openapi.application.WriteAction;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.externalSystem.service.project.manage.SourceFolderManager;
@@ -94,6 +97,7 @@ import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
import junit.framework.TestCase;
+import kotlin.Unit;
import org.jetbrains.android.AndroidTestBase;
import org.jetbrains.android.facet.AndroidFacet;
import org.jetbrains.annotations.NotNull;
@@ -634,6 +638,10 @@ public class AndroidGradleTests {
TestGradleSyncListener syncListener = new TestGradleSyncListener();
GradleSyncInvoker.getInstance().requestProjectSync(project, request, syncListener);
syncListener.await();
+ invokeAndWaitIfNeeded(null, () -> {
+ PlatformTestUtil.dispatchAllEventsInIdeEventQueue();
+ return Unit.INSTANCE;
+ });
return syncListener;
}