diff options
Diffstat (limited to 'plugins/grazie/src/test/kotlin/com/intellij/grazie/text/TextExtractionTest.java')
-rw-r--r-- | plugins/grazie/src/test/kotlin/com/intellij/grazie/text/TextExtractionTest.java | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/plugins/grazie/src/test/kotlin/com/intellij/grazie/text/TextExtractionTest.java b/plugins/grazie/src/test/kotlin/com/intellij/grazie/text/TextExtractionTest.java index 242e48583228..f0facee7550b 100644 --- a/plugins/grazie/src/test/kotlin/com/intellij/grazie/text/TextExtractionTest.java +++ b/plugins/grazie/src/test/kotlin/com/intellij/grazie/text/TextExtractionTest.java @@ -213,7 +213,25 @@ public class TextExtractionTest extends BasePlatformTestCase { myFixture.type(' '); PsiDocumentManager.getInstance(getProject()).commitAllDocuments(); // drop file caches }) - .usesAllCPUCores() + .assertTiming(); + } + + public void testLargeXmlWithUnclosedDoctypePerformance() { + String text = "<!DOCTYPE rules [\n<!ENTITY some \"x\">\n<rules> " + + IntStreamEx.range(0, 10_000).mapToObj(i -> "<tag> content" + i + "</tag>\n").joining() + + " </rules>"; + PsiFile file = myFixture.configureByText("a.xml", text); + + PlatformTestUtil + .startPerformanceTest("text extraction", 1_500, () -> { + for (PsiElement element : SyntaxTraverser.psiTraverser(file)) { + TextExtractor.findTextsAt(element, TextContent.TextDomain.ALL); + } + }) + .setup(() -> { + myFixture.type(' '); + PsiDocumentManager.getInstance(getProject()).commitAllDocuments(); // drop file caches + }) .assertTiming(); } |