From 42ae2c5f3cadfe998bb31f358a282237fef032fd Mon Sep 17 00:00:00 2001 From: Aleksandr Liublinskii Date: Fri, 11 Dec 2020 18:17:08 +0100 Subject: [PATCH] Use more safe Disposable based API to disable vfs check in tests IDEA-CR-69676 GitOrigin-RevId: e35af1d20bae428b05b6aefeec62d3bad98d94c3 --- .../vfs/impl/VirtualFilePointerManagerImpl.java | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/platform/platform-impl/src/com/intellij/openapi/vfs/impl/VirtualFilePointerManagerImpl.java b/platform/platform-impl/src/com/intellij/openapi/vfs/impl/VirtualFilePointerManagerImpl.java index 4eec49c81570..37eddada20cf 100644 --- a/platform/platform-impl/src/com/intellij/openapi/vfs/impl/VirtualFilePointerManagerImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/vfs/impl/VirtualFilePointerManagerImpl.java @@ -12,6 +12,7 @@ import com.intellij.openapi.fileTypes.FileTypeManager; import com.intellij.openapi.progress.ProgressManager; import com.intellij.openapi.util.Comparing; import com.intellij.openapi.util.Disposer; +import com.intellij.openapi.util.Key; import com.intellij.openapi.util.SystemInfo; import com.intellij.openapi.util.io.FileUtil; import com.intellij.openapi.util.io.FileUtilRt; @@ -31,6 +32,7 @@ import com.intellij.openapi.vfs.pointers.VirtualFilePointer; import com.intellij.openapi.vfs.pointers.VirtualFilePointerContainer; import com.intellij.openapi.vfs.pointers.VirtualFilePointerListener; import com.intellij.openapi.vfs.pointers.VirtualFilePointerManager; +import com.intellij.testFramework.TestModeFlags; import com.intellij.util.ConcurrencyUtil; import com.intellij.util.containers.CollectionFactory; import com.intellij.util.containers.ContainerUtil; @@ -49,15 +51,16 @@ import java.util.concurrent.ConcurrentMap; public final class VirtualFilePointerManagerImpl extends VirtualFilePointerManager implements Disposable, BulkFileListener { private static final Logger LOG = Logger.getInstance(VirtualFilePointerManagerImpl.class); private static final boolean IS_UNDER_UNIT_TEST = ApplicationManager.getApplication().isUnitTestMode(); - private static volatile boolean disableConsistencyCheckInTest = false; + private static final Key disableConsistencyCheckInTest = Key.create("DISABLE_VFS_CONSISTENCY_CHECK_IN_TEST"); static boolean shouldCheckConsistency() { - return IS_UNDER_UNIT_TEST && !ApplicationInfoImpl.isInStressTest() && !disableConsistencyCheckInTest; + return IS_UNDER_UNIT_TEST && !ApplicationInfoImpl.isInStressTest() + && !Boolean.TRUE.equals(TestModeFlags.get(disableConsistencyCheckInTest)); } @TestOnly - public static void setDisableConsistencyCheckInTest(boolean isDisabled) { - disableConsistencyCheckInTest = isDisabled; + public static void disableConsistencyChecksInTestsTemporarily(@NotNull Disposable testDisposable) { + TestModeFlags.set(disableConsistencyCheckInTest, true, testDisposable); } /*