diff --git a/java/execution/impl/src/com/intellij/execution/testDiscovery/ConfigureTestDiscoveryAction.java b/java/execution/impl/src/com/intellij/execution/testDiscovery/ConfigureTestDiscoveryAction.java deleted file mode 100644 index 8c56571138cf..000000000000 --- a/java/execution/impl/src/com/intellij/execution/testDiscovery/ConfigureTestDiscoveryAction.java +++ /dev/null @@ -1,31 +0,0 @@ -// Copyright 2000-2018 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.intellij.execution.testDiscovery; - -import com.intellij.openapi.actionSystem.AnAction; -import com.intellij.openapi.actionSystem.AnActionEvent; -import com.intellij.openapi.fileChooser.FileChooser; -import com.intellij.openapi.fileChooser.FileChooserDescriptor; -import com.intellij.openapi.fileChooser.FileChooserDescriptorFactory; -import com.intellij.openapi.util.registry.Registry; -import com.intellij.openapi.vfs.VirtualFile; - -import java.nio.file.Paths; - -public class ConfigureTestDiscoveryAction extends AnAction { - @Override - public void update(AnActionEvent e) { - e.getPresentation().setEnabledAndVisible(Registry.is(TestDiscoveryExtension.TEST_DISCOVERY_REGISTRY_KEY) && e.getProject() != null); - } - - @Override - public void actionPerformed(AnActionEvent e) { - final FileChooserDescriptor folderDescriptor = FileChooserDescriptorFactory.createSingleFolderDescriptor(); - folderDescriptor.setTitle("Choose External Discovery Index Directory"); - folderDescriptor.setDescription("Local directory with indices retrieved from CI \n" + - "to be replaced within TeamCity IDEA plugin"); - final VirtualFile virtualFile = FileChooser.chooseFile(folderDescriptor, e.getProject(), null); - if (virtualFile != null) { - TestDiscoveryIndex.getInstance(e.getProject()).setRemoteTestRunDataPath(Paths.get(virtualFile.getPath())); - } - } -} diff --git a/java/execution/impl/src/com/intellij/execution/testDiscovery/TestDiscoveryIndex.java b/java/execution/impl/src/com/intellij/execution/testDiscovery/TestDiscoveryIndex.java index 0dba60ebde79..f4388f81af33 100644 --- a/java/execution/impl/src/com/intellij/execution/testDiscovery/TestDiscoveryIndex.java +++ b/java/execution/impl/src/com/intellij/execution/testDiscovery/TestDiscoveryIndex.java @@ -6,11 +6,9 @@ import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.project.Project; import com.intellij.openapi.startup.StartupManager; -import com.intellij.openapi.util.Ref; import com.intellij.util.ThrowableConvertor; import com.intellij.util.containers.MultiMap; import com.intellij.util.io.PathKt; -import gnu.trove.THashSet; import gnu.trove.TIntArrayList; import gnu.trove.TIntObjectHashMap; import org.jetbrains.annotations.NotNull; @@ -28,7 +26,6 @@ public class TestDiscoveryIndex implements Disposable { static final Logger LOG = Logger.getInstance(TestDiscoveryIndex.class); private final TestDataController myLocalTestRunDataController; - private final TestDataController myRemoteTestRunDataController; public TestDiscoveryIndex(Project project) { this(project, TestDiscoveryExtension.baseTestDiscoveryPathForProject(project)); @@ -36,7 +33,6 @@ public class TestDiscoveryIndex implements Disposable { public TestDiscoveryIndex(final Project project, @NotNull Path basePath) { myLocalTestRunDataController = new TestDataController(basePath, false); - myRemoteTestRunDataController = new TestDataController(null, true); if (Files.exists(basePath)) { StartupManager.getInstance(project).registerPostStartupActivity(() -> ApplicationManager.getApplication().executeOnPooledThread(() -> { @@ -46,17 +42,10 @@ public class TestDiscoveryIndex implements Disposable { } public boolean hasTestTrace(@NotNull String testClassName, @NotNull String testMethodName, byte frameworkId) throws IOException { - String testName = testClassName + "-" + testMethodName; Boolean result = myLocalTestRunDataController.withTestDataHolder(localHolder -> { TestInfoHolder.TestId testId = localHolder.createTestId(testClassName, testMethodName, frameworkId); final int testNameId = localHolder.myTestEnumerator.tryEnumerate(testId); - if (testNameId == 0) { - return myRemoteTestRunDataController.withTestDataHolder(remoteHolder -> { - final int testNameId1 = remoteHolder.myTestEnumerator.tryEnumerate(testId); - return testNameId1 != 0 && remoteHolder.myTestNameToUsedClassesAndMethodMap.get(testNameId1) != null; - }) != null; - } - return localHolder.myTestNameToUsedClassesAndMethodMap.get(testNameId) != null; + return testNameId != 0 && localHolder.myTestNameToUsedClassesAndMethodMap.get(testNameId) != null; }); return result == Boolean.TRUE; } @@ -74,17 +63,8 @@ public class TestDiscoveryIndex implements Disposable { }); } - public void setRemoteTestRunDataPath(@NotNull Path path) { - if (!TestInfoHolder.isValidPath(path)) { - path = null; - } - myRemoteTestRunDataController.init(path); - // todo: should we remove our local run data ? - } - @NotNull public MultiMap getTestsByMethodName(@NotNull String classFQName, @NotNull String methodName, byte frameworkId) throws IOException { - //TODO support framework prefix again return myLocalTestRunDataController.withTestDataHolder(new ThrowableConvertor, IOException>() { @Override public MultiMap convert(TestInfoHolder localHolder) throws IOException { @@ -102,46 +82,12 @@ public class TestDiscoveryIndex implements Disposable { } private Collection getTestIdsByMethod(TestInfoHolder localHolder) throws IOException { - TIntArrayList remoteList = myRemoteTestRunDataController.withTestDataHolder( - remoteHolder -> remoteHolder.myMethodQNameToTestNames.get( - TestInfoHolder.createKey( - remoteHolder.myClassEnumerator.enumerate(classFQName), - remoteHolder.myMethodEnumerator.enumerate(methodName) - ) - ) - ); - final TIntArrayList localList = localHolder.myMethodQNameToTestNames.get( TestInfoHolder.createKey( localHolder.myClassEnumerator.enumerate(classFQName), localHolder.myMethodEnumerator.enumerate(methodName) ) ); - - if (remoteList == null) { - return testIdsToTestNames(localList, localHolder); - } - - Collection testsFromRemote = - myRemoteTestRunDataController.withTestDataHolder( - remoteHolder -> testIdsToTestNames(remoteList, remoteHolder) - ); - - if (localList == null) return testsFromRemote; - THashSet setOfStrings = new THashSet<>(testsFromRemote); - - for (int testNameId : localList.toNativeArray()) { - if (testNameId < 0) { - setOfStrings.remove(localHolder.myTestEnumerator.valueOf(-testNameId)); - continue; - } - setOfStrings.add(localHolder.myTestEnumerator.valueOf(testNameId)); - } - - return setOfStrings; - } - - private Collection testIdsToTestNames(TIntArrayList localList, TestInfoHolder localHolder) throws IOException { if (localList == null) return Collections.emptyList(); final ArrayList result = new ArrayList<>(localList.size()); @@ -160,26 +106,16 @@ public class TestDiscoveryIndex implements Disposable { return myLocalTestRunDataController.withTestDataHolder(new ThrowableConvertor, IOException>() { @Override public Collection convert(TestInfoHolder localHolder) throws IOException { - List modules = getTestModules(localHolder); - List modulesFromRemote = myRemoteTestRunDataController.withTestDataHolder( - this::getTestModules); - THashSet modulesSet = new THashSet<>(modules); - if (modulesFromRemote != null) modulesSet.addAll(modulesFromRemote); - return modulesSet; - } - - private List getTestModules(TestInfoHolder holder) throws IOException { - // todo merging with remote - final TIntArrayList list = holder.myTestNameToNearestModule.get( + final TIntArrayList list = localHolder.myTestNameToNearestModule.get( TestInfoHolder.createKey( - holder.myClassEnumerator.enumerate(classFQName), - holder.myMethodEnumerator.enumerate(methodName) + localHolder.myClassEnumerator.enumerate(classFQName), + localHolder.myMethodEnumerator.enumerate(methodName) ) ); if (list == null) return Collections.emptyList(); final ArrayList result = new ArrayList<>(list.size()); for (int moduleNameId : list.toNativeArray()) { - final TestInfoHolder.ModuleId moduleNameWithPrefix = holder.myModuleEnumerator.valueOf(moduleNameId); + final TestInfoHolder.ModuleId moduleNameWithPrefix = localHolder.myModuleEnumerator.valueOf(moduleNameId); if (moduleNameWithPrefix != null && moduleNameWithPrefix.getFrameworkId() == frameworkId) { result.add(moduleNameWithPrefix.getModuleName()); } @@ -261,7 +197,6 @@ public class TestDiscoveryIndex implements Disposable { @Override public void dispose() { myLocalTestRunDataController.dispose(); - myRemoteTestRunDataController.dispose(); } public void updateFromData(@NotNull String testClassName, @@ -281,34 +216,6 @@ public class TestDiscoveryIndex implements Disposable { } } TIntObjectHashMap previousClassData = localHolder.myTestNameToUsedClassesAndMethodMap.get(testNameId); - if (previousClassData == null) { - previousClassData = myRemoteTestRunDataController.withTestDataHolder( - remoteDataHolder -> { - TIntObjectHashMap remoteClassData = remoteDataHolder.myTestNameToUsedClassesAndMethodMap.get(testNameId); - if (remoteClassData == null) return null; - TIntObjectHashMap result1 = new TIntObjectHashMap<>(remoteClassData.size()); - Ref exceptionRef = new Ref<>(); - boolean processingResult = remoteClassData.forEachEntry((remoteClassKey, remoteClassMethodIds) -> { - try { - int localClassKey = - localHolder.myClassEnumeratorCache.enumerate(remoteDataHolder.myClassEnumeratorCache.valueOf(remoteClassKey)); - TIntArrayList localClassIds = new TIntArrayList(remoteClassMethodIds.size()); - for (int methodId : remoteClassMethodIds.toNativeArray()) { - localClassIds - .add(localHolder.myMethodEnumeratorCache.enumerate(remoteDataHolder.myMethodEnumeratorCache.valueOf(methodId))); - } - result1.put(localClassKey, localClassIds); - return true; - } catch (IOException ex) { - exceptionRef.set(ex); - return false; - } - }); - if (!processingResult) throw exceptionRef.get(); - return result1; - }); - } - localHolder.doUpdateFromDiff(testNameId, result, previousClassData, moduleName != null ? localHolder.myModuleEnumerator.enumerate(new TestInfoHolder.ModuleId(moduleName, frameworkId)) : null); return null; }); diff --git a/resources/src/META-INF/IdeaPlugin.xml b/resources/src/META-INF/IdeaPlugin.xml index 28f5cc648921..1b2c0f16f6c6 100644 --- a/resources/src/META-INF/IdeaPlugin.xml +++ b/resources/src/META-INF/IdeaPlugin.xml @@ -395,9 +395,6 @@ - - -