summaryrefslogtreecommitdiff
path: root/plugins/grazie/src/test/kotlin/com/intellij/grazie/text/TextExtractionTest.java
diff options
context:
space:
mode:
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.java20
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();
}