mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
isolate statistical effects in tests
This commit is contained in:
+8
@@ -10,6 +10,8 @@ import com.intellij.codeInsight.lookup.LookupElement;
|
||||
import com.intellij.codeInsight.lookup.LookupManager;
|
||||
import com.intellij.codeInsight.lookup.impl.LookupImpl;
|
||||
import com.intellij.ide.ui.UISettings;
|
||||
import com.intellij.psi.statistics.StatisticsManager;
|
||||
import com.intellij.psi.statistics.impl.StatisticsManagerImpl;
|
||||
import com.intellij.testFramework.TestDataPath;
|
||||
import org.jetbrains.annotations.NonNls;
|
||||
|
||||
@@ -25,6 +27,12 @@ public abstract class CompletionSortingTestCase extends LightFixtureCompletionTe
|
||||
myType = type;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void setUp() throws Exception {
|
||||
super.setUp();
|
||||
((StatisticsManagerImpl)StatisticsManager.getInstance()).enableStatistics(getTestRootDisposable());
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void tearDown() throws Exception {
|
||||
LookupManager.getInstance(getProject()).hideActiveLookup();
|
||||
|
||||
@@ -10,8 +10,6 @@ import com.intellij.openapi.roots.LanguageLevelProjectExtension;
|
||||
import com.intellij.pom.java.LanguageLevel;
|
||||
import com.intellij.psi.codeStyle.CodeStyleSettingsManager;
|
||||
import com.intellij.psi.codeStyle.CommonCodeStyleSettings;
|
||||
import com.intellij.psi.statistics.StatisticsManager;
|
||||
import com.intellij.psi.statistics.impl.StatisticsManagerImpl;
|
||||
import com.intellij.testFramework.LightCodeInsightTestCase;
|
||||
import com.intellij.testFramework.TestDataPath;
|
||||
|
||||
@@ -26,12 +24,6 @@ import com.intellij.testFramework.TestDataPath;
|
||||
public class CompletionStyleTest extends LightCodeInsightTestCase{
|
||||
private static final String BASE_PATH = "/codeInsight/completion/style";
|
||||
|
||||
@Override
|
||||
protected void setUp() throws Exception {
|
||||
super.setUp();
|
||||
((StatisticsManagerImpl)StatisticsManager.getInstance()).clearStatistics();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected LanguageLevel getLanguageLevel() {
|
||||
return LanguageLevel.JDK_1_6;
|
||||
|
||||
-8
@@ -5,8 +5,6 @@ import com.intellij.codeInsight.lookup.LookupElement;
|
||||
import com.intellij.codeInsight.lookup.LookupManager;
|
||||
import com.intellij.codeInsight.lookup.impl.LookupImpl;
|
||||
import com.intellij.openapi.command.WriteCommandAction;
|
||||
import com.intellij.psi.statistics.StatisticsManager;
|
||||
import com.intellij.psi.statistics.impl.StatisticsManagerImpl;
|
||||
import com.intellij.testFramework.LightProjectDescriptor;
|
||||
import com.intellij.testFramework.fixtures.LightCodeInsightFixtureTestCase;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
@@ -17,12 +15,6 @@ import org.jetbrains.annotations.NotNull;
|
||||
public abstract class LightFixtureCompletionTestCase extends LightCodeInsightFixtureTestCase {
|
||||
protected LookupElement[] myItems;
|
||||
|
||||
@Override
|
||||
protected void setUp() throws Exception {
|
||||
super.setUp();
|
||||
((StatisticsManagerImpl)StatisticsManager.getInstance()).clearStatistics();
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
protected LightProjectDescriptor getProjectDescriptor() {
|
||||
|
||||
@@ -19,8 +19,6 @@ import com.intellij.codeInsight.daemon.DaemonAnalyzerTestCase;
|
||||
import com.intellij.codeInsight.lookup.LookupElement;
|
||||
import com.intellij.codeInsight.lookup.LookupManager;
|
||||
import com.intellij.codeInsight.lookup.impl.LookupImpl;
|
||||
import com.intellij.psi.statistics.StatisticsManager;
|
||||
import com.intellij.psi.statistics.impl.StatisticsManagerImpl;
|
||||
import com.intellij.testFramework.PlatformTestCase;
|
||||
import com.intellij.util.Function;
|
||||
import com.intellij.util.containers.ContainerUtil;
|
||||
@@ -38,12 +36,6 @@ public abstract class CompletionTestCase extends DaemonAnalyzerTestCase {
|
||||
protected LookupElement[] myItems;
|
||||
private CompletionType myType = CompletionType.BASIC;
|
||||
|
||||
@Override
|
||||
protected void setUp() throws Exception {
|
||||
super.setUp();
|
||||
((StatisticsManagerImpl)StatisticsManager.getInstance()).clearStatistics();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void tearDown() throws Exception {
|
||||
try {
|
||||
|
||||
-8
@@ -19,8 +19,6 @@ import com.intellij.codeInsight.lookup.LookupElement;
|
||||
import com.intellij.codeInsight.lookup.LookupManager;
|
||||
import com.intellij.codeInsight.lookup.impl.LookupImpl;
|
||||
import com.intellij.testFramework.LightCodeInsightTestCase;
|
||||
import com.intellij.psi.statistics.impl.StatisticsManagerImpl;
|
||||
import com.intellij.psi.statistics.StatisticsManager;
|
||||
import com.intellij.util.containers.HashSet;
|
||||
import org.jetbrains.annotations.NonNls;
|
||||
|
||||
@@ -37,12 +35,6 @@ public abstract class LightCompletionTestCase extends LightCodeInsightTestCase {
|
||||
protected LookupElement[] myItems;
|
||||
private CompletionType myType = CompletionType.BASIC;
|
||||
|
||||
@Override
|
||||
protected void setUp() throws Exception {
|
||||
super.setUp();
|
||||
((StatisticsManagerImpl)StatisticsManager.getInstance()).clearStatistics();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void tearDown() throws Exception {
|
||||
LookupManager.getInstance(getProject()).hideActiveLookup();
|
||||
|
||||
+18
-4
@@ -17,9 +17,11 @@ package com.intellij.psi.statistics.impl;
|
||||
|
||||
import com.intellij.CommonBundle;
|
||||
import com.intellij.ide.IdeBundle;
|
||||
import com.intellij.openapi.Disposable;
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.application.PathManager;
|
||||
import com.intellij.openapi.ui.Messages;
|
||||
import com.intellij.openapi.util.Disposer;
|
||||
import com.intellij.psi.statistics.StatisticsInfo;
|
||||
import com.intellij.psi.statistics.StatisticsManager;
|
||||
import com.intellij.reference.SoftReference;
|
||||
@@ -43,6 +45,7 @@ public class StatisticsManagerImpl extends StatisticsManager {
|
||||
|
||||
private final SoftReference[] myUnits = new SoftReference[UNIT_COUNT];
|
||||
private final HashSet<StatisticsUnit> myModifiedUnits = new HashSet<StatisticsUnit>();
|
||||
private boolean myTestingStatistics;
|
||||
|
||||
public int getUseCount(@NotNull final StatisticsInfo info) {
|
||||
if (info == StatisticsInfo.EMPTY) return 0;
|
||||
@@ -57,6 +60,9 @@ public class StatisticsManagerImpl extends StatisticsManager {
|
||||
|
||||
public void incUseCount(@NotNull final StatisticsInfo info) {
|
||||
if (info == StatisticsInfo.EMPTY) return;
|
||||
if (ApplicationManager.getApplication().isUnitTestMode() && !myTestingStatistics) {
|
||||
return;
|
||||
}
|
||||
|
||||
final String key1 = info.getContext();
|
||||
int unitNumber = getUnitNumber(key1);
|
||||
@@ -177,9 +183,17 @@ public class StatisticsManagerImpl extends StatisticsManager {
|
||||
}
|
||||
|
||||
@TestOnly
|
||||
public void clearStatistics() {
|
||||
synchronized (LOCK) {
|
||||
Arrays.fill(myUnits, null);
|
||||
}
|
||||
public void enableStatistics(@NotNull Disposable parentDisposable) {
|
||||
myTestingStatistics = true;
|
||||
Disposer.register(parentDisposable, new Disposable() {
|
||||
@Override
|
||||
public void dispose() {
|
||||
synchronized (LOCK) {
|
||||
Arrays.fill(myUnits, null);
|
||||
}
|
||||
myTestingStatistics = false;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
@@ -19,22 +19,16 @@ public class StatisticsManagerTest extends LightPlatformTestCase {
|
||||
@Override
|
||||
protected void setUp() throws Exception {
|
||||
super.setUp();
|
||||
((StatisticsManagerImpl)StatisticsManager.getInstance()).clearStatistics();
|
||||
((StatisticsManagerImpl)StatisticsManager.getInstance()).enableStatistics(getTestRootDisposable());
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void tearDown() throws Exception {
|
||||
((StatisticsManagerImpl)StatisticsManager.getInstance()).clearStatistics();
|
||||
super.tearDown();
|
||||
}
|
||||
|
||||
private void incUseCount(String value, int times) {
|
||||
private static void incUseCount(String value, int times) {
|
||||
for (int i = 0; i < times; i++) {
|
||||
StatisticsManager.getInstance().incUseCount(new StatisticsInfo(TEST_CONTEXT, value));
|
||||
}
|
||||
}
|
||||
|
||||
private int getUseCount(String value) {
|
||||
private static int getUseCount(String value) {
|
||||
return StatisticsManager.getInstance().getUseCount(new StatisticsInfo(TEST_CONTEXT, value));
|
||||
}
|
||||
|
||||
|
||||
-2
@@ -1050,8 +1050,6 @@ public class CodeInsightTestFixtureImpl extends BaseFixture implements CodeInsig
|
||||
|
||||
@Override
|
||||
public void tearDown() throws Exception {
|
||||
((StatisticsManagerImpl)StatisticsManager.getInstance()).clearStatistics();
|
||||
|
||||
FileEditorManager editorManager = FileEditorManager.getInstance(getProject());
|
||||
VirtualFile[] openFiles = editorManager.getOpenFiles();
|
||||
for (VirtualFile openFile : openFiles) {
|
||||
|
||||
Reference in New Issue
Block a user