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