File extension filtering cleaned up in tests
This commit is contained in:
@@ -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));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user