Checking file name case for some of the auto-generated tests
This commit is contained in:
@@ -122,7 +122,7 @@ import org.jetbrains.kotlin.serialization.AbstractLocalClassProtoTest
|
||||
import org.jetbrains.kotlin.shortenRefs.AbstractShortenRefsTest
|
||||
import org.jetbrains.kotlin.types.AbstractJetTypeBindingTest
|
||||
import java.io.File
|
||||
import java.util.ArrayList
|
||||
import java.util.*
|
||||
import java.util.regex.Pattern
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
@@ -369,7 +369,7 @@ fun main(args: Array<String>) {
|
||||
}
|
||||
|
||||
testClass(javaClass<AbstractQuickFixTest>()) {
|
||||
model("quickfix", pattern = "^([\\w\\-_]+)\\.kt$")
|
||||
model("quickfix", pattern = "^([\\w\\-_]+)\\.kt$", filenameStartsLowerCase = true)
|
||||
}
|
||||
|
||||
testClass(javaClass<AbstractGotoSuperTest>()) {
|
||||
@@ -387,7 +387,7 @@ fun main(args: Array<String>) {
|
||||
|
||||
testClass(javaClass<AbstractNavigateToLibrarySourceTest>()) {
|
||||
model("decompiler/navigation/usercode")
|
||||
model("decompiler/navigation/usercode", testClassName="UsercodeWithJSModule", testMethod = "doWithJSModuleTest")
|
||||
model("decompiler/navigation/usercode", testClassName ="UsercodeWithJSModule", testMethod = "doWithJSModuleTest")
|
||||
}
|
||||
|
||||
testClass(javaClass<AbstractKotlinGotoImplementationTest>()) {
|
||||
@@ -524,7 +524,7 @@ fun main(args: Array<String>) {
|
||||
}
|
||||
|
||||
testClass(javaClass<AbstractMultiFileIntentionTest>()) {
|
||||
model("multiFileIntentions", extension = "test", singleClass = true)
|
||||
model("multiFileIntentions", extension = "test", singleClass = true, filenameStartsLowerCase = true)
|
||||
}
|
||||
|
||||
testClass(javaClass<AbstractJetMultiFileInspectionTest>()) {
|
||||
@@ -873,7 +873,7 @@ fun main(args: Array<String>) {
|
||||
}
|
||||
|
||||
testClass(javaClass<AbstractMultiModuleTest>()) {
|
||||
model("multiModule/cases", extension = null, recursive=false)
|
||||
model("multiModule/cases", extension = null, recursive =false)
|
||||
}
|
||||
|
||||
testClass(javaClass<AbstractInlineJsTest>()) {
|
||||
@@ -889,7 +889,7 @@ fun main(args: Array<String>) {
|
||||
}
|
||||
|
||||
testClass(javaClass<AbstractInlineMultiModuleTest>()) {
|
||||
model("inlineMultiModule/cases", extension = null, recursive=false)
|
||||
model("inlineMultiModule/cases", extension = null, recursive =false)
|
||||
}
|
||||
|
||||
testClass(javaClass<AbstractLabelTest>()) {
|
||||
@@ -971,7 +971,8 @@ private class TestGroup(val testsRoot: String, val testDataRoot: String) {
|
||||
singleClass: Boolean = false,
|
||||
testClassName: String? = null,
|
||||
targetBackend: TargetBackend = TargetBackend.ANY,
|
||||
excludeDirs: List<String> = listOf()
|
||||
excludeDirs: List<String> = listOf(),
|
||||
filenameStartsLowerCase: Boolean? = null
|
||||
) {
|
||||
val rootFile = File(testDataRoot + "/" + relativeRootPath)
|
||||
val compiledPattern = Pattern.compile(pattern)
|
||||
@@ -979,12 +980,11 @@ private class TestGroup(val testsRoot: String, val testDataRoot: String) {
|
||||
testModels.add(
|
||||
if (singleClass) {
|
||||
if (excludeDirs.isNotEmpty()) error("excludeDirs is unsupported for SingleClassTestModel yet")
|
||||
SingleClassTestModel(rootFile, compiledPattern, testMethod, className, targetBackend)
|
||||
SingleClassTestModel(rootFile, compiledPattern, filenameStartsLowerCase, testMethod, className, targetBackend)
|
||||
}
|
||||
else {
|
||||
SimpleTestClassModel(
|
||||
rootFile, recursive, excludeParentDirs, compiledPattern, testMethod, className, targetBackend, excludeDirs
|
||||
)
|
||||
SimpleTestClassModel(rootFile, recursive, excludeParentDirs,
|
||||
compiledPattern, filenameStartsLowerCase, testMethod, className, targetBackend, excludeDirs)
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
+11
-4
@@ -44,6 +44,8 @@ public class SimpleTestClassModel implements TestClassModel {
|
||||
private final boolean excludeParentDirs;
|
||||
@NotNull
|
||||
private final Pattern filenamePattern;
|
||||
@Nullable
|
||||
private final Boolean checkFilenameStartsLowerCase;
|
||||
@NotNull
|
||||
private final String doTestMethodName;
|
||||
@NotNull
|
||||
@@ -62,6 +64,7 @@ public class SimpleTestClassModel implements TestClassModel {
|
||||
boolean recursive,
|
||||
boolean excludeParentDirs,
|
||||
@NotNull Pattern filenamePattern,
|
||||
@Nullable Boolean checkFilenameStartsLowerCase,
|
||||
@NotNull String doTestMethodName,
|
||||
@NotNull String testClassName,
|
||||
@NotNull TargetBackend targetBackend,
|
||||
@@ -74,6 +77,7 @@ public class SimpleTestClassModel implements TestClassModel {
|
||||
this.doTestMethodName = doTestMethodName;
|
||||
this.testClassName = testClassName;
|
||||
this.targetBackend = targetBackend;
|
||||
this.checkFilenameStartsLowerCase = checkFilenameStartsLowerCase;
|
||||
this.excludeDirs = excludeDirs.isEmpty() ? Collections.<String>emptySet() : new LinkedHashSet<String>(excludeDirs);
|
||||
}
|
||||
|
||||
@@ -91,8 +95,10 @@ public class SimpleTestClassModel implements TestClassModel {
|
||||
for (File file : files) {
|
||||
if (file.isDirectory() && dirHasFilesInside(file) && !excludeDirs.contains(file.getName())) {
|
||||
String innerTestClassName = TestGeneratorUtil.fileNameToJavaIdentifier(file);
|
||||
children.add(new SimpleTestClassModel(file, true, excludeParentDirs, filenamePattern, doTestMethodName,
|
||||
innerTestClassName, targetBackend, excludesStripOneDirectory(file.getName())));
|
||||
children.add(new SimpleTestClassModel(
|
||||
file, true, excludeParentDirs, filenamePattern, checkFilenameStartsLowerCase,
|
||||
doTestMethodName, innerTestClassName, targetBackend, excludesStripOneDirectory(file.getName()))
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -144,7 +150,8 @@ public class SimpleTestClassModel implements TestClassModel {
|
||||
public Collection<TestMethodModel> getTestMethods() {
|
||||
if (testMethods == null) {
|
||||
if (!rootFile.isDirectory()) {
|
||||
testMethods = Collections.<TestMethodModel>singletonList(new SimpleTestMethodModel(rootFile, rootFile, doTestMethodName, filenamePattern,
|
||||
testMethods = Collections.<TestMethodModel>singletonList(new SimpleTestMethodModel(rootFile, rootFile, doTestMethodName,
|
||||
filenamePattern, checkFilenameStartsLowerCase,
|
||||
targetBackend));
|
||||
}
|
||||
else {
|
||||
@@ -161,7 +168,7 @@ public class SimpleTestClassModel implements TestClassModel {
|
||||
continue;
|
||||
}
|
||||
|
||||
result.add(new SimpleTestMethodModel(rootFile, file, doTestMethodName, filenamePattern, targetBackend));
|
||||
result.add(new SimpleTestMethodModel(rootFile, file, doTestMethodName, filenamePattern, checkFilenameStartsLowerCase, targetBackend));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+12
@@ -19,6 +19,7 @@ package org.jetbrains.kotlin.generators.tests.generator;
|
||||
import com.intellij.openapi.util.io.FileUtil;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.kotlin.test.InTextDirectivesUtils;
|
||||
import org.jetbrains.kotlin.test.JetTestUtils;
|
||||
import org.jetbrains.kotlin.utils.Printer;
|
||||
@@ -50,6 +51,7 @@ public class SimpleTestMethodModel implements TestMethodModel {
|
||||
@NotNull File file,
|
||||
@NotNull String doTestMethodName,
|
||||
@NotNull Pattern filenamePattern,
|
||||
@Nullable Boolean checkFilenameStartsLowerCase,
|
||||
@NotNull TargetBackend targetBackend
|
||||
) {
|
||||
this.rootDir = rootDir;
|
||||
@@ -57,6 +59,16 @@ public class SimpleTestMethodModel implements TestMethodModel {
|
||||
this.doTestMethodName = doTestMethodName;
|
||||
this.filenamePattern = filenamePattern;
|
||||
this.targetBackend = targetBackend;
|
||||
|
||||
if (checkFilenameStartsLowerCase != null) {
|
||||
char c = file.getName().charAt(0);
|
||||
if (checkFilenameStartsLowerCase) {
|
||||
assert Character.isLowerCase(c) : "Invalid file name '" + file + "', file name should start with lower-case letter";
|
||||
}
|
||||
else {
|
||||
assert Character.isUpperCase(c) : "Invalid file name '" + file + "', file name should start with upper-case letter";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+6
-1
@@ -40,6 +40,8 @@ public class SingleClassTestModel implements TestClassModel {
|
||||
private final File rootFile;
|
||||
@NotNull
|
||||
private final Pattern filenamePattern;
|
||||
@Nullable
|
||||
private final Boolean checkFilenameStartsLowerCase;
|
||||
@NotNull
|
||||
private final String doTestMethodName;
|
||||
@NotNull
|
||||
@@ -52,12 +54,14 @@ public class SingleClassTestModel implements TestClassModel {
|
||||
public SingleClassTestModel(
|
||||
@NotNull File rootFile,
|
||||
@NotNull Pattern filenamePattern,
|
||||
@Nullable Boolean checkFilenameStartsLowerCase,
|
||||
@NotNull String doTestMethodName,
|
||||
@NotNull String testClassName,
|
||||
@NotNull TargetBackend targetBackend
|
||||
) {
|
||||
this.rootFile = rootFile;
|
||||
this.filenamePattern = filenamePattern;
|
||||
this.checkFilenameStartsLowerCase = checkFilenameStartsLowerCase;
|
||||
this.doTestMethodName = doTestMethodName;
|
||||
this.testClassName = testClassName;
|
||||
this.targetBackend = targetBackend;
|
||||
@@ -103,7 +107,8 @@ public class SingleClassTestModel implements TestClassModel {
|
||||
|
||||
@NotNull
|
||||
protected Collection<TestMethodModel> getTestMethodsFromFile(File file) {
|
||||
return Collections.<TestMethodModel>singletonList(new SimpleTestMethodModel(rootFile, file, doTestMethodName, filenamePattern,
|
||||
return Collections.<TestMethodModel>singletonList(new SimpleTestMethodModel(rootFile, file, doTestMethodName,
|
||||
filenamePattern, checkFilenameStartsLowerCase,
|
||||
targetBackend));
|
||||
}
|
||||
|
||||
|
||||
@@ -18,6 +18,7 @@ package org.jetbrains.kotlin.generators.tests.generator;
|
||||
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.io.File;
|
||||
|
||||
@@ -43,4 +44,7 @@ public class TestGeneratorUtil {
|
||||
public static String fileNameToJavaIdentifier(@NotNull File file) {
|
||||
return StringUtil.capitalize(escapeForJavaIdentifier(file.getName()));
|
||||
}
|
||||
|
||||
public static void checkCase(@NotNull File file, @Nullable Boolean shouldStartLowerCase) {
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user