File extension filtering cleaned up in tests

This commit is contained in:
Andrey Breslav
2013-01-30 11:51:47 +04:00
parent 58f37f38f4
commit cd56b2f401
@@ -17,10 +17,10 @@
package org.jetbrains.jet; package org.jetbrains.jet;
import com.intellij.openapi.application.PathManager; import com.intellij.openapi.application.PathManager;
import com.intellij.openapi.util.io.FileUtil;
import junit.framework.Test; import junit.framework.Test;
import junit.framework.TestSuite; import junit.framework.TestSuite;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.jet.lang.parsing.JetParser;
import org.jetbrains.jet.lang.parsing.JetParserDefinition; import org.jetbrains.jet.lang.parsing.JetParserDefinition;
import java.io.File; import java.io.File;
@@ -31,12 +31,21 @@ import java.util.Collections;
import java.util.List; import java.util.List;
public abstract class JetTestCaseBuilder { public abstract class JetTestCaseBuilder {
public static FilenameFilter emptyFilter = new FilenameFilter() {
@Override public static final FilenameFilter KOTLIN_FILTER = filterByExtension("kt", "jet", JetParserDefinition.KTSCRIPT_FILE_SUFFIX);
public boolean accept(File file, String name) {
return true; @NotNull
} public static FilenameFilter filterByExtension(@NotNull final String... extensions) {
}; return new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
for (String extension : extensions) {
if (name.endsWith("." + extension)) return true;
}
return false;
}
};
}
public static String getTestDataPathBase() { public static String getTestDataPathBase() {
return getHomeDirectory() + "/compiler/testData"; return getHomeDirectory() + "/compiler/testData";
@@ -45,16 +54,15 @@ public abstract class JetTestCaseBuilder {
public static String getHomeDirectory() { public static String getHomeDirectory() {
return new File(PathManager.getResourceRoot(JetTestCaseBuilder.class, "/org/jetbrains/jet/JetTestCaseBuilder.class")).getParentFile().getParentFile().getParent(); return new File(PathManager.getResourceRoot(JetTestCaseBuilder.class, "/org/jetbrains/jet/JetTestCaseBuilder.class")).getParentFile().getParentFile().getParent();
} }
public interface NamedTestFactory { public interface NamedTestFactory {
@NotNull Test createTest(@NotNull String dataPath, @NotNull String name, @NotNull File file); @NotNull Test createTest(@NotNull String dataPath, @NotNull String name, @NotNull File file);
} }
@NotNull @NotNull
public static TestSuite suiteForDirectory(String baseDataDir, @NotNull final String dataPath, boolean recursive, @NotNull NamedTestFactory factory) { public static TestSuite suiteForDirectory(String baseDataDir, @NotNull final String dataPath, boolean recursive, @NotNull NamedTestFactory factory) {
return suiteForDirectory(baseDataDir, dataPath, recursive, kotlinFilter, factory); return suiteForDirectory(baseDataDir, dataPath, recursive, KOTLIN_FILTER, factory);
} }
@NotNull @NotNull
public static TestSuite suiteForDirectory(String baseDataDir, @NotNull final String dataPath, boolean recursive, public static TestSuite suiteForDirectory(String baseDataDir, @NotNull final String dataPath, boolean recursive,
@NotNull final FilenameFilter filter, @NotNull NamedTestFactory factory) { @NotNull final FilenameFilter filter, @NotNull NamedTestFactory factory) {
@@ -63,13 +71,6 @@ public abstract class JetTestCaseBuilder {
return suite; return suite;
} }
public static FilenameFilter kotlinFilter = new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
return name.endsWith(".kt") || name.endsWith(".jet") || name.endsWith("." + JetParserDefinition.KTSCRIPT_FILE_SUFFIX);
}
};
@NotNull @NotNull
public static FilenameFilter and(@NotNull final FilenameFilter a, @NotNull final FilenameFilter b) { public static FilenameFilter and(@NotNull final FilenameFilter a, @NotNull final FilenameFilter b) {
return new FilenameFilter() { return new FilenameFilter() {
@@ -81,8 +82,6 @@ public abstract class JetTestCaseBuilder {
} }
public static void appendTestsInDirectory(String baseDataDir, String dataPath, boolean recursive, @NotNull FilenameFilter filter, NamedTestFactory factory, TestSuite suite) { public static void appendTestsInDirectory(String baseDataDir, String dataPath, boolean recursive, @NotNull FilenameFilter filter, NamedTestFactory factory, TestSuite suite) {
final String extensionJet = ".jet";
final String extensionKt = ".kt";
File dir = new File(baseDataDir + dataPath); File dir = new File(baseDataDir + dataPath);
FileFilter dirFilter = new FileFilter() { FileFilter dirFilter = new FileFilter() {
@Override @Override
@@ -103,10 +102,7 @@ public abstract class JetTestCaseBuilder {
Collections.sort(files); Collections.sort(files);
for (File file : files) { for (File file : files) {
String fileName = file.getName(); String fileName = file.getName();
String testName = String testName = FileUtil.getNameWithoutExtension(file);
fileName.endsWith(extensionJet) ? fileName.substring(0, fileName.length() - extensionJet.length()) :
fileName.endsWith(extensionKt) ? fileName.substring(0, fileName.length() - extensionKt.length()) :
fileName;
suite.addTest(factory.createTest(dataPath, testName, file)); suite.addTest(factory.createTest(dataPath, testName, file));
} }
} }