Spellchecker: splitter performance tests

This commit is contained in:
Olga Strizhenko
2018-03-27 14:02:42 +03:00
parent afeed89a59
commit bdea138235
@@ -20,8 +20,11 @@ import com.intellij.codeHighlighting.TextEditorHighlightingPass;
import com.intellij.codeInsight.daemon.DaemonCodeAnalyzer;
import com.intellij.codeInsight.daemon.impl.HighlightInfo;
import com.intellij.codeInsight.daemon.impl.TextEditorHighlightingPassRegistrarEx;
import com.intellij.openapi.progress.ProcessCanceledException;
import com.intellij.openapi.util.TextRange;
import com.intellij.openapi.util.text.StringUtil;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.spellchecker.inspections.*;
import com.intellij.testFramework.PlatformTestUtil;
import com.intellij.testFramework.fixtures.impl.CodeInsightTestFixtureImpl;
import com.intellij.util.ArrayUtil;
@@ -87,6 +90,51 @@ public class SpellcheckerPerformanceTest extends SpellcheckerInspectionTestCase
}).assertTiming();
}
public void testVeryLongEmail(){
final String text = "\\LONG_EMAIL: " + StringUtil.repeat("ivan.ivanov", 1000000) + "@mail.com\n";
doSplitterPerformanceTest(text, CommentSplitter.getInstance());
}
public void testVeryLongURL(){
final String text = "\\LONG_URL: http://" + StringUtil.repeat("ivan.ivanov", 1000000) + ".com\n";
doSplitterPerformanceTest(text, CommentSplitter.getInstance());
}
public void testVeryLongHTML(){
final String text = "\\ LONG_HTML <!--<li>something go here</li>" + StringUtil.repeat("<li>next content</li>", 1000000) + "foooo barrrr <p> text -->";
doSplitterPerformanceTest(text, CommentSplitter.getInstance());
}
public void testVeryLongIdentifier(){
final String text = StringUtil.repeat("identifier1", 1000000);
doSplitterPerformanceTest(text, IdentifierSplitter.getInstance());
}
public void testVeryLongSpecialCharacters(){
final String text = "word" + StringUtil.repeat("\n\t\r\t\n", 1000000);
doSplitterPerformanceTest(text, TextSplitter.getInstance());
}
public void testVeryLongProperty(){
final String text = StringUtil.repeat("properties.test.properties", 1000000);
doSplitterPerformanceTest(text, PropertiesSplitter.getInstance());
}
public void testVeryLongList(){
final String text = StringUtil.repeat("properties,test,properties", 1000000);
doSplitterPerformanceTest(text, PlainTextSplitter.getInstance());
}
private static void doSplitterPerformanceTest(String text, Splitter splitter) {
PlatformTestUtil.startPerformanceTest("long word for spelling", 2000, () -> {
try{
splitter.split(text, TextRange.allOf(text), (textRange) -> {});
}catch(ProcessCanceledException pce){
System.out.println("pce is thrown");
}
}).attempts(1).assertTiming();
}
@NotNull
private List<HighlightInfo> runLocalInspections() {
myFixture.enableInspections(getInspectionTools());