Moved current incremental compiler test data into subdirectory.

Tweaked test generator to avoid creating test methods for parent directory of tests.
This commit is contained in:
Evgeny Gerashchenko
2014-07-08 18:22:50 +04:00
parent 829c25bcf9
commit 479711e812
166 changed files with 224 additions and 181 deletions
@@ -597,7 +597,7 @@ fun main(args: Array<String>) {
testGroup("jps-plugin/test", "jps-plugin/testData") {
testClass(javaClass<AbstractIncrementalJpsTest>()) {
model("incremental", extension = null, recursive = false)
model("incremental", extension = null, excludeParentDirs = true)
}
}
}
@@ -628,6 +628,7 @@ private class TestGroup(val testsRoot: String, val testDataRoot: String) {
fun model(
relativeRootPath: String,
recursive: Boolean = true,
excludeParentDirs: Boolean = false,
extension: String? = "kt", // null string means dir (name without dot)
pattern: String = if (extension == null) """^([^\.]+)$""" else "^(.+)\\.$extension\$",
testMethod: String = "doTest",
@@ -640,7 +641,7 @@ private class TestGroup(val testsRoot: String, val testDataRoot: String) {
testModels.add(if (singleClass)
SingleClassTestModel(rootFile, compiledPattern, testMethod, className)
else
SimpleTestClassModel(rootFile, recursive, compiledPattern, testMethod, className))
SimpleTestClassModel(rootFile, recursive, excludeParentDirs, compiledPattern, testMethod, className))
}
}
@@ -40,6 +40,7 @@ public class SimpleTestClassModel implements TestClassModel {
};
private final File rootFile;
private final boolean recursive;
private final boolean excludeParentDirs;
private final Pattern filenamePattern;
private final String doTestMethodName;
private final String testClassName;
@@ -50,12 +51,14 @@ public class SimpleTestClassModel implements TestClassModel {
public SimpleTestClassModel(
@NotNull File rootFile,
boolean recursive,
boolean excludeParentDirs,
@NotNull Pattern filenamePattern,
@NotNull String doTestMethodName,
@NotNull String testClassName
) {
this.rootFile = rootFile;
this.recursive = recursive;
this.excludeParentDirs = excludeParentDirs;
this.filenamePattern = filenamePattern;
this.doTestMethodName = doTestMethodName;
this.testClassName = testClassName;
@@ -76,7 +79,7 @@ public class SimpleTestClassModel implements TestClassModel {
if (file.isDirectory()) {
if (dirHasFilesInside(file)) {
String innerTestClassName = TestGeneratorUtil.fileNameToJavaIdentifier(file);
children.add(new SimpleTestClassModel(file, true, filenamePattern, doTestMethodName, innerTestClassName));
children.add(new SimpleTestClassModel(file, true, excludeParentDirs, filenamePattern, doTestMethodName, innerTestClassName));
}
}
}
@@ -96,6 +99,19 @@ public class SimpleTestClassModel implements TestClassModel {
});
}
private static boolean dirHasSubDirs(@NotNull File dir) {
File[] listFiles = dir.listFiles();
if (listFiles == null) {
return false;
}
for (File file : listFiles) {
if (file.isDirectory()) {
return true;
}
}
return false;
}
@NotNull
@Override
public Collection<TestMethodModel> getTestMethods() {
@@ -112,6 +128,11 @@ public class SimpleTestClassModel implements TestClassModel {
if (listFiles != null) {
for (File file : listFiles) {
if (filenamePattern.matcher(file.getName()).matches()) {
if (file.isDirectory() && excludeParentDirs && dirHasSubDirs(file)) {
continue;
}
result.add(new SimpleTestMethodModel(rootFile, file, doTestMethodName, filenamePattern));
}
}