From 2f191d3c43a6c3ec43574c0e71fd076b2adc9de9 Mon Sep 17 00:00:00 2001 From: Dmitry Jemerov Date: Thu, 3 Nov 2011 21:15:32 +0100 Subject: [PATCH] avoid nesting of testsuites (hopefully it will help TeamCity report tests correctly) --- .../org/jetbrains/jet/JetTestCaseBuilder.java | 10 +++++++--- .../jet/checkers/JetPsiCheckerTest.java | 16 ++++++---------- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/compiler/tests/org/jetbrains/jet/JetTestCaseBuilder.java b/compiler/tests/org/jetbrains/jet/JetTestCaseBuilder.java index 0698cdbac4b..0fcc6c82e8c 100644 --- a/compiler/tests/org/jetbrains/jet/JetTestCaseBuilder.java +++ b/compiler/tests/org/jetbrains/jet/JetTestCaseBuilder.java @@ -16,7 +16,7 @@ import java.util.List; * @author abreslav */ public abstract class JetTestCaseBuilder { - private static FilenameFilter emptyFilter = new FilenameFilter() { + public static FilenameFilter emptyFilter = new FilenameFilter() { @Override public boolean accept(File file, String name) { return true; @@ -43,6 +43,11 @@ public abstract class JetTestCaseBuilder { @NotNull public static TestSuite suiteForDirectory(String baseDataDir, @NotNull final String dataPath, boolean recursive, final FilenameFilter filter, @NotNull NamedTestFactory factory) { TestSuite suite = new TestSuite(dataPath); + appendTestsInDirectory(baseDataDir, dataPath, recursive, filter, factory, suite); + return suite; + } + + public static void appendTestsInDirectory(String baseDataDir, String dataPath, boolean recursive, final FilenameFilter filter, NamedTestFactory factory, TestSuite suite) { final String extensionJet = ".jet"; final String extensionKt = ".kt"; final FilenameFilter extensionFilter = new FilenameFilter() { @@ -76,7 +81,7 @@ public abstract class JetTestCaseBuilder { List subdirs = Arrays.asList(files); Collections.sort(subdirs); for (File subdir : subdirs) { - suite.addTest(suiteForDirectory(baseDataDir, dataPath + "/" + subdir.getName(), recursive, filter, factory)); + appendTestsInDirectory(baseDataDir, dataPath + "/" + subdir.getName(), recursive, filter, factory, suite); } } List files = Arrays.asList(dir.listFiles(resultFilter)); @@ -87,6 +92,5 @@ public abstract class JetTestCaseBuilder { 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/checkers/JetPsiCheckerTest.java b/idea/tests/org/jetbrains/jet/checkers/JetPsiCheckerTest.java index ca1f7bb8e14..c99444a9fb9 100644 --- a/idea/tests/org/jetbrains/jet/checkers/JetPsiCheckerTest.java +++ b/idea/tests/org/jetbrains/jet/checkers/JetPsiCheckerTest.java @@ -55,31 +55,27 @@ public class JetPsiCheckerTest extends LightDaemonAnalyzerTestCase { public static Test suite() { TestSuite suite = new TestSuite(); - final TestSuite checkerSuite = JetTestCaseBuilder.suiteForDirectory(PluginTestCaseBase.getTestDataPathBase(), "/checker/", false, new JetTestCaseBuilder.NamedTestFactory() { + JetTestCaseBuilder.appendTestsInDirectory(PluginTestCaseBase.getTestDataPathBase(), "/checker/", false, JetTestCaseBuilder.emptyFilter, new JetTestCaseBuilder.NamedTestFactory() { @NotNull @Override public Test createTest(@NotNull String dataPath, @NotNull String name) { return new JetPsiCheckerTest(dataPath, name); } - }); - if (checkerSuite.countTestCases() == 0) { - throw new RuntimeException("didn't find any testcases under /checker/"); - } - suite.addTest(checkerSuite); - suite.addTest(JetTestCaseBuilder.suiteForDirectory(PluginTestCaseBase.getTestDataPathBase(), "/checker/regression/", false, new JetTestCaseBuilder.NamedTestFactory() { + }, suite); + JetTestCaseBuilder.appendTestsInDirectory(PluginTestCaseBase.getTestDataPathBase(), "/checker/regression/", false, JetTestCaseBuilder.emptyFilter, new JetTestCaseBuilder.NamedTestFactory() { @NotNull @Override public Test createTest(@NotNull String dataPath, @NotNull String name) { return new JetPsiCheckerTest(dataPath, name); } - })); - suite.addTest(JetTestCaseBuilder.suiteForDirectory(PluginTestCaseBase.getTestDataPathBase(), "/checker/infos/", false, new JetTestCaseBuilder.NamedTestFactory() { + }, suite); + JetTestCaseBuilder.appendTestsInDirectory(PluginTestCaseBase.getTestDataPathBase(), "/checker/infos/", false, JetTestCaseBuilder.emptyFilter, new JetTestCaseBuilder.NamedTestFactory() { @NotNull @Override public Test createTest(@NotNull String dataPath, @NotNull String name) { return new JetPsiCheckerTest(dataPath, name).setCheckInfos(true); } - })); + }, suite); return suite; } }