Use more safe Disposable based API to disable vfs check in tests

IDEA-CR-69676

GitOrigin-RevId: e35af1d20bae428b05b6aefeec62d3bad98d94c3
This commit is contained in:
Aleksandr Liublinskii
2020-12-14 09:34:20 +00:00
committed by intellij-monorepo-bot
parent eecda53cd9
commit 42ae2c5f3c
@@ -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<Boolean> 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);
}
/*