From c6d31a553c88c56a2cd8ce234928fde894094f0c Mon Sep 17 00:00:00 2001 From: "Maxim.Kolmakov" Date: Fri, 13 Sep 2024 15:05:49 +0200 Subject: [PATCH] Remove @HardwareAgentRequired annotation All Perf Unit tests are run on the hardware agents to ensure stability of the metrics. So the annotation is not needed anymore and it doesn't work on JUnit5 tests so the same test is run twice and since test execution time depends on the bucketing, metrics are jumping. GitOrigin-RevId: fc83a368447d09d6ad1b269c88fe4f6c79067a91 --- ...DaemonRespondToChangesPerformanceTest.java | 2 -- .../jsonSchema/JsonSchemaPerformanceTest.java | 2 -- .../openapi/vfs/VfsUtilPerformanceTest.java | 2 -- .../ui/IconsLoadTimePerformanceTest.java | 2 -- .../util/io/PersistentMapPerformanceTest.java | 2 -- .../core/src/com/intellij/TestCaseLoader.java | 4 --- .../intellij/idea/HardwareAgentRequired.java | 14 --------- ...rdwareAgentRequiredExecutionCondition.java | 30 ------------------- .../ant/AntHighlightingPerformanceTest.java | 2 -- .../properties/PropertiesPerformanceTest.java | 2 -- .../intellij/util/xml/DomPerformanceTest.java | 2 -- 11 files changed, 64 deletions(-) delete mode 100644 platform/testFramework/core/src/com/intellij/idea/HardwareAgentRequired.java delete mode 100644 platform/testFramework/core/src/com/intellij/idea/extensions/HardwareAgentRequiredExecutionCondition.java diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/daemon/impl/DaemonRespondToChangesPerformanceTest.java b/java/java-tests/testSrc/com/intellij/codeInsight/daemon/impl/DaemonRespondToChangesPerformanceTest.java index 053b0f611f89..fde8f974f79e 100644 --- a/java/java-tests/testSrc/com/intellij/codeInsight/daemon/impl/DaemonRespondToChangesPerformanceTest.java +++ b/java/java-tests/testSrc/com/intellij/codeInsight/daemon/impl/DaemonRespondToChangesPerformanceTest.java @@ -7,7 +7,6 @@ import com.intellij.codeInsight.daemon.DaemonCodeAnalyzer; import com.intellij.diagnostic.PerformanceWatcher; import com.intellij.diagnostic.ThreadDumper; import com.intellij.ide.highlighter.JavaFileType; -import com.intellij.idea.HardwareAgentRequired; import com.intellij.lang.LanguageAnnotators; import com.intellij.lang.annotation.AnnotationHolder; import com.intellij.lang.annotation.HighlightSeverity; @@ -51,7 +50,6 @@ import java.util.concurrent.atomic.AtomicReference; /** * tests the daemon performance during highlighting interruptions/typing */ -@HardwareAgentRequired public class DaemonRespondToChangesPerformanceTest extends DaemonAnalyzerTestCase { private static final boolean DEBUG = false; diff --git a/json/tests/test/com/jetbrains/jsonSchema/JsonSchemaPerformanceTest.java b/json/tests/test/com/jetbrains/jsonSchema/JsonSchemaPerformanceTest.java index abf9fb539ad5..bd70788dca90 100644 --- a/json/tests/test/com/jetbrains/jsonSchema/JsonSchemaPerformanceTest.java +++ b/json/tests/test/com/jetbrains/jsonSchema/JsonSchemaPerformanceTest.java @@ -1,7 +1,6 @@ // Copyright 2000-2017 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. package com.jetbrains.jsonSchema; -import com.intellij.idea.HardwareAgentRequired; import com.intellij.json.JsonFileType; import com.intellij.json.psi.JsonFile; import com.intellij.json.psi.JsonObject; @@ -26,7 +25,6 @@ import java.util.Collections; import static com.jetbrains.jsonSchema.JsonSchemaHighlightingTestBase.registerJsonSchema; -@HardwareAgentRequired public class JsonSchemaPerformanceTest extends JsonSchemaHeavyAbstractTest { public static final String BASE_PATH = "/tests/testData/jsonSchema/performance/"; diff --git a/platform/platform-tests/testSrc/com/intellij/openapi/vfs/VfsUtilPerformanceTest.java b/platform/platform-tests/testSrc/com/intellij/openapi/vfs/VfsUtilPerformanceTest.java index 1a87732c0046..783e7873b4ee 100644 --- a/platform/platform-tests/testSrc/com/intellij/openapi/vfs/VfsUtilPerformanceTest.java +++ b/platform/platform-tests/testSrc/com/intellij/openapi/vfs/VfsUtilPerformanceTest.java @@ -3,7 +3,6 @@ package com.intellij.openapi.vfs; import com.intellij.concurrency.JobLauncher; import com.intellij.concurrency.JobSchedulerImpl; -import com.intellij.idea.HardwareAgentRequired; import com.intellij.openapi.application.ex.ApplicationManagerEx; import com.intellij.openapi.command.WriteCommandAction; import com.intellij.openapi.diagnostic.FrequentEventDetector; @@ -51,7 +50,6 @@ import static org.junit.Assert.*; @RunFirst @SkipSlowTestLocally -@HardwareAgentRequired public class VfsUtilPerformanceTest extends BareTestFixtureTestCase { @Rule public TempDirectory tempDir = new TempDirectory(); diff --git a/platform/platform-tests/testSrc/com/intellij/ui/IconsLoadTimePerformanceTest.java b/platform/platform-tests/testSrc/com/intellij/ui/IconsLoadTimePerformanceTest.java index 6d878314118c..9588382164e0 100644 --- a/platform/platform-tests/testSrc/com/intellij/ui/IconsLoadTimePerformanceTest.java +++ b/platform/platform-tests/testSrc/com/intellij/ui/IconsLoadTimePerformanceTest.java @@ -1,7 +1,6 @@ // Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. package com.intellij.ui; -import com.intellij.idea.HardwareAgentRequired; import com.intellij.internal.IconsLoadTime; import com.intellij.internal.IconsLoadTime.StatData; import com.intellij.openapi.diagnostic.Logger; @@ -30,7 +29,6 @@ import static org.junit.Assume.assumeTrue; * * @author tav */ -@HardwareAgentRequired public class IconsLoadTimePerformanceTest { private static final Logger LOG = Logger.getInstance(IconsLoadTimePerformanceTest.class); private static final int SVG_ICON_AVERAGE_LOAD_TIME_EXPECTED_NO_CACHE = 100; // ms diff --git a/platform/platform-tests/testSrc/com/intellij/util/io/PersistentMapPerformanceTest.java b/platform/platform-tests/testSrc/com/intellij/util/io/PersistentMapPerformanceTest.java index c09d4cfb63ee..6b25c72f6bdb 100644 --- a/platform/platform-tests/testSrc/com/intellij/util/io/PersistentMapPerformanceTest.java +++ b/platform/platform-tests/testSrc/com/intellij/util/io/PersistentMapPerformanceTest.java @@ -1,7 +1,6 @@ // Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. package com.intellij.util.io; -import com.intellij.idea.HardwareAgentRequired; import com.intellij.openapi.util.io.FileUtil; import com.intellij.openapi.util.text.StringUtil; import com.intellij.tools.ide.metrics.benchmark.Benchmark; @@ -22,7 +21,6 @@ import java.util.concurrent.atomic.AtomicInteger; * @author Eugene Zhuravlev */ @SkipSlowTestLocally -@HardwareAgentRequired public class PersistentMapPerformanceTest extends PersistentMapTestBase { interface MapConstructor { PersistentHashMap createMap(File file) throws IOException; diff --git a/platform/testFramework/core/src/com/intellij/TestCaseLoader.java b/platform/testFramework/core/src/com/intellij/TestCaseLoader.java index 5a12c0c5a0cf..8a7ab8ec66ff 100644 --- a/platform/testFramework/core/src/com/intellij/TestCaseLoader.java +++ b/platform/testFramework/core/src/com/intellij/TestCaseLoader.java @@ -2,7 +2,6 @@ package com.intellij; import com.intellij.idea.ExcludeFromTestDiscovery; -import com.intellij.idea.HardwareAgentRequired; import com.intellij.idea.IJIgnore; import com.intellij.idea.IgnoreJUnit3; import com.intellij.nastradamus.NastradamusClient; @@ -371,9 +370,6 @@ public class TestCaseLoader { if (checkForExclusion) { if (shouldExcludeTestClass(moduleName, testCaseClass)) return false; - - boolean isHardwareAgentRequired = getAnnotationInHierarchy(testCaseClass, HardwareAgentRequired.class) != null; - if (isHardwareAgentRequired != HARDWARE_AGENT_REQUIRED) return false; } if (TestCase.class.isAssignableFrom(testCaseClass) || TestSuite.class.isAssignableFrom(testCaseClass)) { diff --git a/platform/testFramework/core/src/com/intellij/idea/HardwareAgentRequired.java b/platform/testFramework/core/src/com/intellij/idea/HardwareAgentRequired.java deleted file mode 100644 index a8c7e5891145..000000000000 --- a/platform/testFramework/core/src/com/intellij/idea/HardwareAgentRequired.java +++ /dev/null @@ -1,14 +0,0 @@ -// Copyright 2000-2021 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. -package com.intellij.idea; - -import com.intellij.idea.extensions.HardwareAgentRequiredExecutionCondition; -import org.junit.jupiter.api.extension.ExtendWith; - -import java.lang.annotation.*; - -@Retention(RetentionPolicy.RUNTIME) -@Target(ElementType.TYPE) -@Inherited -@ExtendWith(HardwareAgentRequiredExecutionCondition.class) -public @interface HardwareAgentRequired { -} \ No newline at end of file diff --git a/platform/testFramework/core/src/com/intellij/idea/extensions/HardwareAgentRequiredExecutionCondition.java b/platform/testFramework/core/src/com/intellij/idea/extensions/HardwareAgentRequiredExecutionCondition.java deleted file mode 100644 index f203bad5eda7..000000000000 --- a/platform/testFramework/core/src/com/intellij/idea/extensions/HardwareAgentRequiredExecutionCondition.java +++ /dev/null @@ -1,30 +0,0 @@ -// Copyright 2000-2021 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. -package com.intellij.idea.extensions; - -import com.intellij.TestCaseLoader; -import com.intellij.idea.HardwareAgentRequired; -import org.junit.jupiter.api.extension.ConditionEvaluationResult; -import org.junit.jupiter.api.extension.ExecutionCondition; -import org.junit.jupiter.api.extension.ExtensionContext; -import org.junit.platform.commons.support.AnnotationSupport; - -public class HardwareAgentRequiredExecutionCondition implements ExecutionCondition { - - private static final boolean RUN_WITH_HARDWARE_REQUIREMENT = Boolean.getBoolean(TestCaseLoader.HARDWARE_AGENT_REQUIRED_FLAG); - private static final boolean IS_LOCAL_RUN = System.getenv("TEAMCITY_VERSION") == null; - - private static final ConditionEvaluationResult ENABLED_LOCALLY = ConditionEvaluationResult.enabled("Enabled locally"); - private static final ConditionEvaluationResult MET_HARDWARE_REQUIREMENT = ConditionEvaluationResult.enabled("Hardware requirement met"); - private static final ConditionEvaluationResult UNMET_HARDWARE_REQUIREMENT = ConditionEvaluationResult.disabled("Unmet hardware requirement"); - - @Override - public ConditionEvaluationResult evaluateExecutionCondition(ExtensionContext context) { - if (IS_LOCAL_RUN) { - return ENABLED_LOCALLY; - } - boolean hasAnnotation = AnnotationSupport.findAnnotation(context.getTestClass(), HardwareAgentRequired.class).isPresent(); - return hasAnnotation == RUN_WITH_HARDWARE_REQUIREMENT - ? MET_HARDWARE_REQUIREMENT - : UNMET_HARDWARE_REQUIREMENT; - } -} diff --git a/plugins/ant/tests/src/com/intellij/lang/ant/AntHighlightingPerformanceTest.java b/plugins/ant/tests/src/com/intellij/lang/ant/AntHighlightingPerformanceTest.java index 24d329504df6..a5cea19e60cc 100644 --- a/plugins/ant/tests/src/com/intellij/lang/ant/AntHighlightingPerformanceTest.java +++ b/plugins/ant/tests/src/com/intellij/lang/ant/AntHighlightingPerformanceTest.java @@ -3,7 +3,6 @@ package com.intellij.lang.ant; import com.intellij.codeInsight.daemon.DaemonAnalyzerTestCase; import com.intellij.codeInsight.daemon.impl.HighlightInfo; -import com.intellij.idea.HardwareAgentRequired; import com.intellij.openapi.application.PluginPathManager; import com.intellij.testFramework.ExpectedHighlightingData; import com.intellij.tools.ide.metrics.benchmark.Benchmark; @@ -12,7 +11,6 @@ import org.jetbrains.annotations.NotNull; import java.io.IOException; import java.util.Collection; -@HardwareAgentRequired public class AntHighlightingPerformanceTest extends DaemonAnalyzerTestCase { @NotNull @Override diff --git a/plugins/java-i18n/testSrc/com/intellij/lang/properties/PropertiesPerformanceTest.java b/plugins/java-i18n/testSrc/com/intellij/lang/properties/PropertiesPerformanceTest.java index e6c67af3231a..1d11eafac6f7 100644 --- a/plugins/java-i18n/testSrc/com/intellij/lang/properties/PropertiesPerformanceTest.java +++ b/plugins/java-i18n/testSrc/com/intellij/lang/properties/PropertiesPerformanceTest.java @@ -2,7 +2,6 @@ package com.intellij.lang.properties; import com.intellij.codeInsight.JavaCodeInsightTestCase; -import com.intellij.idea.HardwareAgentRequired; import com.intellij.openapi.application.PluginPathManager; import com.intellij.openapi.module.Module; import com.intellij.openapi.roots.ModuleRootManager; @@ -19,7 +18,6 @@ import java.io.File; import java.io.FileWriter; import java.io.IOException; -@HardwareAgentRequired public class PropertiesPerformanceTest extends JavaCodeInsightTestCase { @Override protected void setUp() throws Exception { diff --git a/xml/dom-tests/tests/com/intellij/util/xml/DomPerformanceTest.java b/xml/dom-tests/tests/com/intellij/util/xml/DomPerformanceTest.java index bf71c5847c54..3cf11c804f3e 100644 --- a/xml/dom-tests/tests/com/intellij/util/xml/DomPerformanceTest.java +++ b/xml/dom-tests/tests/com/intellij/util/xml/DomPerformanceTest.java @@ -15,7 +15,6 @@ */ package com.intellij.util.xml; -import com.intellij.idea.HardwareAgentRequired; import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.command.WriteCommandAction; import com.intellij.openapi.module.Module; @@ -32,7 +31,6 @@ import org.jetbrains.annotations.NotNull; import java.io.IOException; import java.util.List; -@HardwareAgentRequired public class DomPerformanceTest extends DomHardCoreTestCase { public void testVisitorPerformance() { Ref ref = new Ref<>();