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:
@@ -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))
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+22
-1
@@ -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));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user