JS backend: _commonFiles/ for common kotlin files in testData/ and every test dir

This commit is contained in:
Alexey Tsvetkov
2014-07-11 19:35:53 +04:00
committed by Zalim Bashorov
parent 9b433e31a2
commit dd3dbe5b10
35 changed files with 127 additions and 245 deletions
@@ -19,6 +19,8 @@ package org.jetbrains.k2js.test;
import com.google.common.collect.Lists;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.util.io.FileUtil;
import com.intellij.util.Function;
import com.intellij.util.containers.ContainerUtil;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.jet.JetTestUtils;
import org.jetbrains.jet.cli.jvm.compiler.JetCoreEnvironment;
@@ -32,6 +34,7 @@ import org.jetbrains.k2js.test.rhino.RhinoResultChecker;
import org.jetbrains.k2js.test.utils.TranslationUtils;
import java.io.File;
import java.io.FilenameFilter;
import java.util.Collections;
import java.util.List;
import java.util.Map;
@@ -48,6 +51,7 @@ public abstract class BasicTest extends KotlinTestWithEnvironment {
private static final String CASES = "cases/";
private static final String OUT = "out/";
private static final String EXPECTED = "expected/";
private static final String COMMON_FILES_DIR = "_commonFiles/";
public static final String TEST_PACKAGE = "foo";
public static final String TEST_FUNCTION = "box";
@@ -169,10 +173,12 @@ public abstract class BasicTest extends KotlinTestWithEnvironment {
@NotNull
protected List<String> additionalKotlinFiles() {
return Lists.newArrayList();
List<String> additionalFiles = Lists.newArrayList();
additionalFiles.addAll(kotlinFilesInDirectory(pathToTestFilesRoot() + COMMON_FILES_DIR));
additionalFiles.addAll(kotlinFilesInDirectory(pathToTestFiles() + COMMON_FILES_DIR));
return additionalFiles;
}
protected static String casesDirectoryName() {
return CASES;
}
@@ -227,13 +233,35 @@ public abstract class BasicTest extends KotlinTestWithEnvironment {
return getInputPath() + filename;
}
@NotNull
protected String cases(@NotNull String filename) {
return getInputFilePath(filename);
}
@NotNull
protected String expected(@NotNull String testName) {
return getExpectedPath() + testName + ".out";
}
@NotNull
private static List<String> kotlinFilesInDirectory(@NotNull String directory) {
File dir = new File(directory);
if (!dir.isDirectory()) {
return ContainerUtil.emptyList();
}
File[] kotlinFiles = dir.listFiles(new FilenameFilter() {
@Override
public boolean accept(@NotNull File dir, @NotNull String name) {
return name.endsWith(".kt");
}
});
if (kotlinFiles == null) {
return ContainerUtil.emptyList();
}
return ContainerUtil.map2List(kotlinFiles, new Function<File, String>() {
@Override
public String fun(File kotlinFile) {
return kotlinFile.getAbsolutePath();
}
});
}
}