mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
Spellchecker: splitter performance tests
This commit is contained in:
+48
@@ -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());
|
||||
|
||||
Reference in New Issue
Block a user