From d54c79a31e7d13d899772e198348f37ae38e9a64 Mon Sep 17 00:00:00 2001 From: svtk Date: Tue, 25 Oct 2011 14:42:04 +0400 Subject: [PATCH] Quick fix tests launch improved --- .../org/jetbrains/jet/JetTestCaseBase.java | 39 +++++++- .../quickfix/AbstractModifierFixTest.java | 23 ----- .../AddPrimaryConstructorFixTest.java | 24 ----- .../ChangeVariableMutabilityFixTest.java | 23 ----- .../plugin/quickfix/ClassImportFixTest.java | 32 ------- .../plugin/quickfix/ExpressionsFixTest.java | 24 ----- .../jet/plugin/quickfix/JetQuickFixTest.java | 96 +++++++++++++++++++ .../jet/plugin/quickfix/ModifiersFixTest.java | 26 ----- .../quickfix/OverrideModifierFixTest.java | 25 ----- .../plugin/quickfix/TypeAdditionFixTests.java | 31 ------ 10 files changed, 131 insertions(+), 212 deletions(-) delete mode 100644 idea/tests/org/jetbrains/jet/plugin/quickfix/AbstractModifierFixTest.java delete mode 100644 idea/tests/org/jetbrains/jet/plugin/quickfix/AddPrimaryConstructorFixTest.java delete mode 100644 idea/tests/org/jetbrains/jet/plugin/quickfix/ChangeVariableMutabilityFixTest.java delete mode 100644 idea/tests/org/jetbrains/jet/plugin/quickfix/ClassImportFixTest.java delete mode 100644 idea/tests/org/jetbrains/jet/plugin/quickfix/ExpressionsFixTest.java create mode 100644 idea/tests/org/jetbrains/jet/plugin/quickfix/JetQuickFixTest.java delete mode 100644 idea/tests/org/jetbrains/jet/plugin/quickfix/ModifiersFixTest.java delete mode 100644 idea/tests/org/jetbrains/jet/plugin/quickfix/OverrideModifierFixTest.java delete mode 100644 idea/tests/org/jetbrains/jet/plugin/quickfix/TypeAdditionFixTests.java diff --git a/compiler/tests/org/jetbrains/jet/JetTestCaseBase.java b/compiler/tests/org/jetbrains/jet/JetTestCaseBase.java index 88dd75b955a..e53d7077cdd 100644 --- a/compiler/tests/org/jetbrains/jet/JetTestCaseBase.java +++ b/compiler/tests/org/jetbrains/jet/JetTestCaseBase.java @@ -20,6 +20,7 @@ import java.util.List; */ public abstract class JetTestCaseBase extends LightDaemonAnalyzerTestCase { + private static FilenameFilter emptyFilter; private boolean checkInfos = false; private String dataPath; protected final String name; @@ -75,20 +76,49 @@ public abstract class JetTestCaseBase extends LightDaemonAnalyzerTestCase { return dataPath; } + protected void setUp() throws Exception { + super.setUp(); + emptyFilter = new FilenameFilter() { + @Override + public boolean accept(File file, String name) { + return true; + } + }; + } + public interface NamedTestFactory { @NotNull Test createTest(@NotNull String dataPath, @NotNull String name); } @NotNull public static TestSuite suiteForDirectory(String baseDataDir, @NotNull final String dataPath, boolean recursive, @NotNull NamedTestFactory factory) { + return suiteForDirectory(baseDataDir, dataPath, recursive, emptyFilter, factory); + } + + @NotNull + public static TestSuite suiteForDirectory(String baseDataDir, @NotNull final String dataPath, boolean recursive, final FilenameFilter filter, @NotNull NamedTestFactory factory) { TestSuite suite = new TestSuite(dataPath); - final String extension = ".jet"; - FilenameFilter extensionFilter = new FilenameFilter() { + final String extensionJet = ".jet"; + final String extensionKt = ".kt"; + final FilenameFilter extensionFilter = new FilenameFilter() { @Override public boolean accept(File dir, String name) { - return name.endsWith(extension); + return name.endsWith(extensionJet) || name.endsWith(extensionKt); } }; + FilenameFilter resultFilter; + if (filter != emptyFilter) { + resultFilter = new FilenameFilter() { + @Override + public boolean accept(File file, String s) { + if (extensionFilter.accept(file, s) && filter.accept(file, s)) return true; + return false; + } + }; + } + else { + resultFilter = extensionFilter; + } File dir = new File(baseDataDir + dataPath); FileFilter dirFilter = new FileFilter() { @Override @@ -105,11 +135,12 @@ public abstract class JetTestCaseBase extends LightDaemonAnalyzerTestCase { suite.addTest(suiteForDirectory(baseDataDir, dataPath + "/" + subdir.getName(), recursive, factory)); } } - List files = Arrays.asList(dir.listFiles(extensionFilter)); + List files = Arrays.asList(dir.listFiles(resultFilter)); Collections.sort(files); for (File file : files) { String fileName = file.getName(); assert fileName != null; + String extension = fileName.endsWith(extensionJet) ? extensionJet : extensionKt; suite.addTest(factory.createTest(dataPath, fileName.substring(0, fileName.length() - extension.length()))); } return suite; diff --git a/idea/tests/org/jetbrains/jet/plugin/quickfix/AbstractModifierFixTest.java b/idea/tests/org/jetbrains/jet/plugin/quickfix/AbstractModifierFixTest.java deleted file mode 100644 index 91542507b41..00000000000 --- a/idea/tests/org/jetbrains/jet/plugin/quickfix/AbstractModifierFixTest.java +++ /dev/null @@ -1,23 +0,0 @@ -package org.jetbrains.jet.plugin.quickfix; - -import com.intellij.codeInsight.daemon.quickFix.LightQuickFixTestCase; - -/** - * @author svtk - */ -public class AbstractModifierFixTest extends LightQuickFixTestCase { - - public void test() throws Exception { - doAllTests(); - } - - @Override - protected String getBasePath() { - return "/quickfix/abstract"; - } - - @Override - protected String getTestDataPath() { - return PluginTestCaseBase.getTestDataPathBase(); - } -} diff --git a/idea/tests/org/jetbrains/jet/plugin/quickfix/AddPrimaryConstructorFixTest.java b/idea/tests/org/jetbrains/jet/plugin/quickfix/AddPrimaryConstructorFixTest.java deleted file mode 100644 index 633f5f8b09d..00000000000 --- a/idea/tests/org/jetbrains/jet/plugin/quickfix/AddPrimaryConstructorFixTest.java +++ /dev/null @@ -1,24 +0,0 @@ -package org.jetbrains.jet.plugin.quickfix; - -import com.intellij.codeInsight.daemon.quickFix.LightQuickFixTestCase; -import org.jetbrains.jet.JetTestCaseBase; - -/** - * @author svtk - */ -public class AddPrimaryConstructorFixTest extends LightQuickFixTestCase { - - public void test() throws Exception { - doAllTests(); - } - - @Override - protected String getBasePath() { - return "/quickfix/addPrimaryConstructor"; - } - - @Override - protected String getTestDataPath() { - return PluginTestCaseBase.getTestDataPathBase(); - } -} diff --git a/idea/tests/org/jetbrains/jet/plugin/quickfix/ChangeVariableMutabilityFixTest.java b/idea/tests/org/jetbrains/jet/plugin/quickfix/ChangeVariableMutabilityFixTest.java deleted file mode 100644 index 78f7e287f9f..00000000000 --- a/idea/tests/org/jetbrains/jet/plugin/quickfix/ChangeVariableMutabilityFixTest.java +++ /dev/null @@ -1,23 +0,0 @@ -package org.jetbrains.jet.plugin.quickfix; - -import com.intellij.codeInsight.daemon.quickFix.LightQuickFixTestCase; - -/** - * @author svtk - */ -public class ChangeVariableMutabilityFixTest extends LightQuickFixTestCase { - - public void test() throws Exception { - doAllTests(); - } - - @Override - protected String getBasePath() { - return "/quickfix/changeVariableMutability"; - } - - @Override - protected String getTestDataPath() { - return PluginTestCaseBase.getTestDataPathBase(); - } -} diff --git a/idea/tests/org/jetbrains/jet/plugin/quickfix/ClassImportFixTest.java b/idea/tests/org/jetbrains/jet/plugin/quickfix/ClassImportFixTest.java deleted file mode 100644 index d765f6aad5c..00000000000 --- a/idea/tests/org/jetbrains/jet/plugin/quickfix/ClassImportFixTest.java +++ /dev/null @@ -1,32 +0,0 @@ -package org.jetbrains.jet.plugin.quickfix; - -import com.intellij.codeInsight.daemon.quickFix.LightQuickFixTestCase; -import com.intellij.openapi.projectRoots.Sdk; -import org.jetbrains.jet.JetTestCaseBase; - -/** - * @author svtk - */ -public class ClassImportFixTest extends LightQuickFixTestCase { - - public void test() throws Exception { - doAllTests(); - } - - @Override - protected String getBasePath() { - return "/quickfix/classImport"; - } - - @Override - protected String getTestDataPath() { - return PluginTestCaseBase.getTestDataPathBase(); - } - - @Override - protected Sdk getProjectJDK() { - return JetTestCaseBase.jdkFromIdeaHome(); - } - -} - diff --git a/idea/tests/org/jetbrains/jet/plugin/quickfix/ExpressionsFixTest.java b/idea/tests/org/jetbrains/jet/plugin/quickfix/ExpressionsFixTest.java deleted file mode 100644 index ad60d7b72e5..00000000000 --- a/idea/tests/org/jetbrains/jet/plugin/quickfix/ExpressionsFixTest.java +++ /dev/null @@ -1,24 +0,0 @@ -package org.jetbrains.jet.plugin.quickfix; - -import com.intellij.codeInsight.daemon.quickFix.LightQuickFixTestCase; -import org.jetbrains.jet.JetTestCaseBase; - -/** - * @author svtk - */ -public class ExpressionsFixTest extends LightQuickFixTestCase { - - public void test() throws Exception { - doAllTests(); - } - - @Override - protected String getBasePath() { - return "/quickfix/expressions"; - } - - @Override - protected String getTestDataPath() { - return PluginTestCaseBase.getTestDataPathBase(); - } -} diff --git a/idea/tests/org/jetbrains/jet/plugin/quickfix/JetQuickFixTest.java b/idea/tests/org/jetbrains/jet/plugin/quickfix/JetQuickFixTest.java new file mode 100644 index 00000000000..85b900949db --- /dev/null +++ b/idea/tests/org/jetbrains/jet/plugin/quickfix/JetQuickFixTest.java @@ -0,0 +1,96 @@ +package org.jetbrains.jet.plugin.quickfix; + +import com.google.common.collect.Lists; +import com.intellij.codeInsight.daemon.quickFix.LightQuickFixTestCase; +import com.intellij.openapi.projectRoots.Sdk; +import junit.framework.Test; +import junit.framework.TestSuite; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.jet.JetTestCaseBase; + +import java.io.File; +import java.io.FilenameFilter; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.List; + +/** + * @author svtk + */ +public class JetQuickFixTest extends LightQuickFixTestCase { + private final String dataPath; + private final String name; + private static FilenameFilter quickFixTestsFilter; + + public JetQuickFixTest(String dataPath, String name) { + this.dataPath = dataPath; + this.name = name; + } + + private static void setFilter() { + final ArrayList appropriateDirs = Lists.newArrayList("classImport", "expressions"); + quickFixTestsFilter = new FilenameFilter() { + @Override + public boolean accept(File file, String s) { + if (appropriateDirs.contains(s)) return true; + return false; + } + }; + } + + public static Test suite() { + //setFilter(); //to launch only part of tests + TestSuite suite = new TestSuite(); + FilenameFilter fileNameFilter = new FilenameFilter() { + @Override + public boolean accept(File file, String s) { + if (s.startsWith("before")) return true; + return false; + } + }; + JetTestCaseBase.NamedTestFactory namedTestFactory = new JetTestCaseBase.NamedTestFactory() { + @NotNull + @Override + public Test createTest(@NotNull String dataPath, @NotNull String name) { + return new JetQuickFixTest(dataPath, name); + } + }; + File dir = new File(getTestDataPathBase()); + List subDirs = Arrays.asList(quickFixTestsFilter != null ? dir.list(quickFixTestsFilter) : dir.list()); + Collections.sort(subDirs); + for (String subDirName : subDirs) { + suite.addTest(JetTestCaseBase.suiteForDirectory(getTestDataPathBase(), subDirName, false, fileNameFilter, namedTestFactory)); + + } + return suite; + } + + public static String getTestDataPathBase() { + return JetTestCaseBase.getHomeDirectory() + "/idea/testData/quickfix/"; + } + + public String getName() { + return "test" + name.replaceFirst(name.substring(0, 1), name.substring(0, 1).toUpperCase()); + } + + @Override + protected void runTest() throws Throwable { + doSingleTest(name.substring("before".length()) + ".kt"); + } + + @Override + protected String getBasePath() { + return "/quickfix/" + dataPath; + } + + @Override + protected String getTestDataPath() { + return PluginTestCaseBase.getTestDataPathBase(); + } + + @Override + protected Sdk getProjectJDK() { + return JetTestCaseBase.jdkFromIdeaHome(); + } +} diff --git a/idea/tests/org/jetbrains/jet/plugin/quickfix/ModifiersFixTest.java b/idea/tests/org/jetbrains/jet/plugin/quickfix/ModifiersFixTest.java deleted file mode 100644 index 32ce67866dd..00000000000 --- a/idea/tests/org/jetbrains/jet/plugin/quickfix/ModifiersFixTest.java +++ /dev/null @@ -1,26 +0,0 @@ -package org.jetbrains.jet.plugin.quickfix; - -import com.intellij.codeInsight.daemon.quickFix.LightQuickFixTestCase; -import org.jetbrains.jet.JetTestCaseBase; - -/** - * @author svtk - */ -public class ModifiersFixTest extends LightQuickFixTestCase { - - public void test() throws Exception { - doAllTests(); - } - - @Override - protected String getBasePath() { - return "/quickfix/modifiers"; - } - - @Override - protected String getTestDataPath() { - return PluginTestCaseBase.getTestDataPathBase(); - } -} - - diff --git a/idea/tests/org/jetbrains/jet/plugin/quickfix/OverrideModifierFixTest.java b/idea/tests/org/jetbrains/jet/plugin/quickfix/OverrideModifierFixTest.java deleted file mode 100644 index 6969bcce9b8..00000000000 --- a/idea/tests/org/jetbrains/jet/plugin/quickfix/OverrideModifierFixTest.java +++ /dev/null @@ -1,25 +0,0 @@ -package org.jetbrains.jet.plugin.quickfix; - -import com.intellij.codeInsight.daemon.quickFix.LightQuickFixTestCase; -import org.jetbrains.jet.JetTestCaseBase; - -/** - * @author svtk - */ -public class OverrideModifierFixTest extends LightQuickFixTestCase { - - public void test() throws Exception { - doAllTests(); - } - - @Override - protected String getBasePath() { - return "/quickfix/override"; - } - - @Override - protected String getTestDataPath() { - return PluginTestCaseBase.getTestDataPathBase(); - } -} - diff --git a/idea/tests/org/jetbrains/jet/plugin/quickfix/TypeAdditionFixTests.java b/idea/tests/org/jetbrains/jet/plugin/quickfix/TypeAdditionFixTests.java deleted file mode 100644 index c870f1e6088..00000000000 --- a/idea/tests/org/jetbrains/jet/plugin/quickfix/TypeAdditionFixTests.java +++ /dev/null @@ -1,31 +0,0 @@ -package org.jetbrains.jet.plugin.quickfix; - -import com.intellij.codeInsight.daemon.quickFix.LightQuickFixTestCase; -import com.intellij.openapi.projectRoots.Sdk; -import org.jetbrains.jet.JetTestCaseBase; - -/** - * @author svtk - */ -public class TypeAdditionFixTests extends LightQuickFixTestCase { - - public void test() throws Exception { - doAllTests(); - } - - @Override - protected String getBasePath() { - return "/quickfix/typeAddition"; - } - - @Override - protected String getTestDataPath() { - return PluginTestCaseBase.getTestDataPathBase(); - } - - @Override - protected Sdk getProjectJDK() { - return JetTestCaseBase.jdkFromIdeaHome(); - } -} -