Extract 'test-generator' module out of 'generators'
Also avoid using intellij API where kotlin-stdlib can be used instead
This commit is contained in:
@@ -32,6 +32,7 @@ dependencies {
|
|||||||
compile(projectTests(":kotlin-annotation-processing"))
|
compile(projectTests(":kotlin-annotation-processing"))
|
||||||
compile(projectTests(":plugins:uast-kotlin"))
|
compile(projectTests(":plugins:uast-kotlin"))
|
||||||
compile(projectTests(":js:js.tests"))
|
compile(projectTests(":js:js.tests"))
|
||||||
|
compile(projectTests(":generators:test-generator"))
|
||||||
compile(ideaSdkDeps("jps-build-test", subdir = "jps/test"))
|
compile(ideaSdkDeps("jps-build-test", subdir = "jps/test"))
|
||||||
testCompile(project(":idea:idea-test-framework")) { isTransitive = false }
|
testCompile(project(":idea:idea-test-framework")) { isTransitive = false }
|
||||||
testCompile(project(":compiler:incremental-compilation-impl"))
|
testCompile(project(":compiler:incremental-compilation-impl"))
|
||||||
|
|||||||
@@ -16,7 +16,6 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.generators.tests
|
package org.jetbrains.kotlin.generators.tests
|
||||||
|
|
||||||
import junit.framework.TestCase
|
|
||||||
import org.intellij.lang.annotations.Language
|
import org.intellij.lang.annotations.Language
|
||||||
import org.jetbrains.kotlin.AbstractDataFlowValueRenderingTest
|
import org.jetbrains.kotlin.AbstractDataFlowValueRenderingTest
|
||||||
import org.jetbrains.kotlin.addImport.AbstractAddImportTest
|
import org.jetbrains.kotlin.addImport.AbstractAddImportTest
|
||||||
@@ -53,7 +52,8 @@ import org.jetbrains.kotlin.findUsages.AbstractFindUsagesTest
|
|||||||
import org.jetbrains.kotlin.findUsages.AbstractKotlinFindUsagesWithLibraryTest
|
import org.jetbrains.kotlin.findUsages.AbstractKotlinFindUsagesWithLibraryTest
|
||||||
import org.jetbrains.kotlin.formatter.AbstractFormatterTest
|
import org.jetbrains.kotlin.formatter.AbstractFormatterTest
|
||||||
import org.jetbrains.kotlin.formatter.AbstractTypingIndentationTestBase
|
import org.jetbrains.kotlin.formatter.AbstractTypingIndentationTestBase
|
||||||
import org.jetbrains.kotlin.generators.tests.generator.*
|
import org.jetbrains.kotlin.generators.tests.generator.TestGroup
|
||||||
|
import org.jetbrains.kotlin.generators.tests.generator.testGroup
|
||||||
import org.jetbrains.kotlin.idea.AbstractExpressionSelectionTest
|
import org.jetbrains.kotlin.idea.AbstractExpressionSelectionTest
|
||||||
import org.jetbrains.kotlin.idea.AbstractKotlinTypeAliasByExpansionShortNameIndexTest
|
import org.jetbrains.kotlin.idea.AbstractKotlinTypeAliasByExpansionShortNameIndexTest
|
||||||
import org.jetbrains.kotlin.idea.AbstractSmartSelectionTest
|
import org.jetbrains.kotlin.idea.AbstractSmartSelectionTest
|
||||||
@@ -191,15 +191,11 @@ import org.jetbrains.kotlin.serialization.AbstractLocalClassProtoTest
|
|||||||
import org.jetbrains.kotlin.shortenRefs.AbstractShortenRefsTest
|
import org.jetbrains.kotlin.shortenRefs.AbstractShortenRefsTest
|
||||||
import org.jetbrains.kotlin.test.TargetBackend
|
import org.jetbrains.kotlin.test.TargetBackend
|
||||||
import org.jetbrains.kotlin.types.AbstractTypeBindingTest
|
import org.jetbrains.kotlin.types.AbstractTypeBindingTest
|
||||||
import java.io.File
|
|
||||||
import java.lang.IllegalArgumentException
|
|
||||||
import java.util.*
|
|
||||||
import java.util.regex.Pattern
|
|
||||||
|
|
||||||
@Language("RegExp") private val KT_OR_KTS = """^(.+)\.(kt|kts)$"""
|
@Language("RegExp") private const val KT_OR_KTS = """^(.+)\.(kt|kts)$"""
|
||||||
@Language("RegExp") private val KT_OR_KTS_WITHOUT_DOTS_IN_NAME = """^([^.]+)\.(kt|kts)$"""
|
@Language("RegExp") private const val KT_OR_KTS_WITHOUT_DOTS_IN_NAME = """^([^.]+)\.(kt|kts)$"""
|
||||||
|
|
||||||
@Language("RegExp") private val KT_WITHOUT_DOTS_IN_NAME = """^([^.]+)\.kt$"""
|
@Language("RegExp") private const val KT_WITHOUT_DOTS_IN_NAME = """^([^.]+)\.kt$"""
|
||||||
|
|
||||||
fun main(args: Array<String>) {
|
fun main(args: Array<String>) {
|
||||||
System.setProperty("java.awt.headless", "true")
|
System.setProperty("java.awt.headless", "true")
|
||||||
@@ -1528,71 +1524,3 @@ fun main(args: Array<String>) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class TestGroup(private val testsRoot: String, val testDataRoot: String) {
|
|
||||||
inline fun <reified T: TestCase> testClass(
|
|
||||||
suiteTestClassName: String = getDefaultSuiteTestClassName(T::class.java.simpleName),
|
|
||||||
noinline init: TestClass.() -> Unit
|
|
||||||
) {
|
|
||||||
testClass(T::class.java.name, suiteTestClassName, init)
|
|
||||||
}
|
|
||||||
|
|
||||||
fun testClass(
|
|
||||||
baseTestClassName: String,
|
|
||||||
suiteTestClassName: String = getDefaultSuiteTestClassName(baseTestClassName.substringAfterLast('.')),
|
|
||||||
init: TestClass.() -> Unit
|
|
||||||
) {
|
|
||||||
TestGenerator(
|
|
||||||
testsRoot,
|
|
||||||
suiteTestClassName,
|
|
||||||
baseTestClassName,
|
|
||||||
TestClass().apply(init).testModels
|
|
||||||
).generateAndSave()
|
|
||||||
}
|
|
||||||
|
|
||||||
inner class TestClass {
|
|
||||||
val testModels = ArrayList<TestClassModel>()
|
|
||||||
|
|
||||||
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",
|
|
||||||
singleClass: Boolean = false,
|
|
||||||
testClassName: String? = null,
|
|
||||||
targetBackend: TargetBackend = TargetBackend.ANY,
|
|
||||||
excludeDirs: List<String> = listOf(),
|
|
||||||
filenameStartsLowerCase: Boolean? = null,
|
|
||||||
skipIgnored: Boolean = false
|
|
||||||
) {
|
|
||||||
val rootFile = File(testDataRoot + "/" + relativeRootPath)
|
|
||||||
val compiledPattern = Pattern.compile(pattern)
|
|
||||||
val className = testClassName ?: TestGeneratorUtil.fileNameToJavaIdentifier(rootFile)
|
|
||||||
testModels.add(
|
|
||||||
if (singleClass) {
|
|
||||||
if (excludeDirs.isNotEmpty()) error("excludeDirs is unsupported for SingleClassTestModel yet")
|
|
||||||
SingleClassTestModel(rootFile, compiledPattern, filenameStartsLowerCase, testMethod, className, targetBackend,
|
|
||||||
skipIgnored)
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
SimpleTestClassModel(rootFile, recursive, excludeParentDirs,
|
|
||||||
compiledPattern, filenameStartsLowerCase, testMethod, className,
|
|
||||||
targetBackend, excludeDirs, skipIgnored)
|
|
||||||
}
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
fun testGroup(testsRoot: String, testDataRoot: String, init: TestGroup.() -> Unit) {
|
|
||||||
TestGroup(testsRoot, testDataRoot).init()
|
|
||||||
}
|
|
||||||
|
|
||||||
fun getDefaultSuiteTestClassName(baseTestClassName: String): String {
|
|
||||||
if (!baseTestClassName.startsWith("Abstract")) {
|
|
||||||
throw IllegalArgumentException("Doesn't start with \"Abstract\": $baseTestClassName")
|
|
||||||
}
|
|
||||||
return baseTestClassName.substringAfter("Abstract") + "Generated"
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -0,0 +1,17 @@
|
|||||||
|
|
||||||
|
apply { plugin("kotlin") }
|
||||||
|
|
||||||
|
dependencies {
|
||||||
|
testCompile(project(":core:util.runtime"))
|
||||||
|
testCompile(projectTests(":compiler:tests-common"))
|
||||||
|
testCompile(projectDist(":kotlin-stdlib"))
|
||||||
|
testCompile(commonDep("junit:junit"))
|
||||||
|
testCompile(ideaSdkDeps("util"))
|
||||||
|
}
|
||||||
|
|
||||||
|
sourceSets {
|
||||||
|
"main" { }
|
||||||
|
"test" { projectDefault() }
|
||||||
|
}
|
||||||
|
|
||||||
|
testsJar {}
|
||||||
+2
-3
@@ -16,7 +16,6 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.generators.tests.generator;
|
package org.jetbrains.kotlin.generators.tests.generator;
|
||||||
|
|
||||||
import com.google.common.collect.Lists;
|
|
||||||
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;
|
||||||
@@ -87,7 +86,7 @@ public class SimpleTestClassModel implements TestClassModel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (innerTestClasses == null) {
|
if (innerTestClasses == null) {
|
||||||
List<TestClassModel> children = Lists.newArrayList();
|
List<TestClassModel> children = new ArrayList<>();
|
||||||
File[] files = rootFile.listFiles();
|
File[] files = rootFile.listFiles();
|
||||||
if (files != null) {
|
if (files != null) {
|
||||||
for (File file : files) {
|
for (File file : files) {
|
||||||
@@ -149,7 +148,7 @@ public class SimpleTestClassModel implements TestClassModel {
|
|||||||
));
|
));
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
List<MethodModel> result = Lists.newArrayList();
|
List<MethodModel> result = new ArrayList<>();
|
||||||
|
|
||||||
result.add(new TestAllFilesPresentMethodModel());
|
result.add(new TestAllFilesPresentMethodModel());
|
||||||
|
|
||||||
+3
-3
@@ -17,7 +17,7 @@
|
|||||||
package org.jetbrains.kotlin.generators.tests.generator;
|
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 kotlin.text.StringsKt;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
import org.jetbrains.kotlin.test.InTextDirectivesUtils;
|
import org.jetbrains.kotlin.test.InTextDirectivesUtils;
|
||||||
@@ -126,12 +126,12 @@ public class SimpleTestMethodModel implements TestMethodModel {
|
|||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
String relativePath = FileUtil.getRelativePath(rootDir, file.getParentFile());
|
String relativePath = FileUtil.getRelativePath(rootDir, file.getParentFile());
|
||||||
unescapedName = relativePath + "-" + StringUtil.capitalize(extractedName);
|
unescapedName = relativePath + "-" + StringsKt.capitalize(extractedName);
|
||||||
}
|
}
|
||||||
|
|
||||||
boolean ignored = isIgnoredTargetWithoutCheck(targetBackend, file) ||
|
boolean ignored = isIgnoredTargetWithoutCheck(targetBackend, file) ||
|
||||||
skipIgnored && isIgnoredTarget(targetBackend, file);
|
skipIgnored && isIgnoredTarget(targetBackend, file);
|
||||||
return (ignored ? "ignore" : "test") + StringUtil.capitalize(TestGeneratorUtil.escapeForJavaIdentifier(unescapedName));
|
return (ignored ? "ignore" : "test") + StringsKt.capitalize(TestGeneratorUtil.escapeForJavaIdentifier(unescapedName));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
+4
-6
@@ -16,10 +16,9 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.generators.tests.generator;
|
package org.jetbrains.kotlin.generators.tests.generator;
|
||||||
|
|
||||||
import com.google.common.collect.Lists;
|
|
||||||
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 com.intellij.util.containers.ContainerUtil;
|
import kotlin.collections.CollectionsKt;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
import org.jetbrains.kotlin.test.KotlinTestUtils;
|
import org.jetbrains.kotlin.test.KotlinTestUtils;
|
||||||
@@ -27,6 +26,7 @@ import org.jetbrains.kotlin.test.TargetBackend;
|
|||||||
import org.jetbrains.kotlin.utils.Printer;
|
import org.jetbrains.kotlin.utils.Printer;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -78,7 +78,7 @@ public class SingleClassTestModel implements TestClassModel {
|
|||||||
@Override
|
@Override
|
||||||
public Collection<MethodModel> getMethods() {
|
public Collection<MethodModel> getMethods() {
|
||||||
if (methods == null) {
|
if (methods == null) {
|
||||||
List<TestMethodModel> result = Lists.newArrayList();
|
List<TestMethodModel> result = new ArrayList<>();
|
||||||
|
|
||||||
result.add(new TestAllFilesPresentMethodModel());
|
result.add(new TestAllFilesPresentMethodModel());
|
||||||
|
|
||||||
@@ -90,9 +90,7 @@ public class SingleClassTestModel implements TestClassModel {
|
|||||||
return true;
|
return true;
|
||||||
});
|
});
|
||||||
|
|
||||||
ContainerUtil.sort(result, (o1, o2) -> StringUtil.compare(o1.getName(), o2.getName(), true));
|
methods = CollectionsKt.sortedWith(result, (o1, o2) -> o1.getName().compareToIgnoreCase(o2.getName()));
|
||||||
|
|
||||||
methods = Lists.newArrayList(result);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return methods;
|
return methods;
|
||||||
+92
@@ -0,0 +1,92 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2010-2017 JetBrains s.r.o.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.jetbrains.kotlin.generators.tests.generator
|
||||||
|
|
||||||
|
import junit.framework.TestCase
|
||||||
|
import org.jetbrains.kotlin.test.TargetBackend
|
||||||
|
import java.io.File
|
||||||
|
import java.lang.IllegalArgumentException
|
||||||
|
import java.util.ArrayList
|
||||||
|
import java.util.regex.Pattern
|
||||||
|
|
||||||
|
class TestGroup(private val testsRoot: String, val testDataRoot: String) {
|
||||||
|
inline fun <reified T: TestCase> testClass(
|
||||||
|
suiteTestClassName: String = getDefaultSuiteTestClassName(T::class.java.simpleName),
|
||||||
|
noinline init: TestClass.() -> Unit
|
||||||
|
) {
|
||||||
|
testClass(T::class.java.name, suiteTestClassName, init)
|
||||||
|
}
|
||||||
|
|
||||||
|
fun testClass(
|
||||||
|
baseTestClassName: String,
|
||||||
|
suiteTestClassName: String = getDefaultSuiteTestClassName(baseTestClassName.substringAfterLast('.')),
|
||||||
|
init: TestClass.() -> Unit
|
||||||
|
) {
|
||||||
|
TestGenerator(
|
||||||
|
testsRoot,
|
||||||
|
suiteTestClassName,
|
||||||
|
baseTestClassName,
|
||||||
|
TestClass().apply(init).testModels
|
||||||
|
).generateAndSave()
|
||||||
|
}
|
||||||
|
|
||||||
|
inner class TestClass {
|
||||||
|
val testModels = ArrayList<TestClassModel>()
|
||||||
|
|
||||||
|
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",
|
||||||
|
singleClass: Boolean = false,
|
||||||
|
testClassName: String? = null,
|
||||||
|
targetBackend: TargetBackend = TargetBackend.ANY,
|
||||||
|
excludeDirs: List<String> = listOf(),
|
||||||
|
filenameStartsLowerCase: Boolean? = null,
|
||||||
|
skipIgnored: Boolean = false
|
||||||
|
) {
|
||||||
|
val rootFile = File(testDataRoot + "/" + relativeRootPath)
|
||||||
|
val compiledPattern = Pattern.compile(pattern)
|
||||||
|
val className = testClassName ?: TestGeneratorUtil.fileNameToJavaIdentifier(rootFile)
|
||||||
|
testModels.add(
|
||||||
|
if (singleClass) {
|
||||||
|
if (excludeDirs.isNotEmpty()) error("excludeDirs is unsupported for SingleClassTestModel yet")
|
||||||
|
SingleClassTestModel(rootFile, compiledPattern, filenameStartsLowerCase, testMethod, className, targetBackend,
|
||||||
|
skipIgnored)
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
SimpleTestClassModel(rootFile, recursive, excludeParentDirs,
|
||||||
|
compiledPattern, filenameStartsLowerCase, testMethod, className,
|
||||||
|
targetBackend, excludeDirs, skipIgnored)
|
||||||
|
}
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fun testGroup(testsRoot: String, testDataRoot: String, init: TestGroup.() -> Unit) {
|
||||||
|
TestGroup(testsRoot, testDataRoot).init()
|
||||||
|
}
|
||||||
|
|
||||||
|
fun getDefaultSuiteTestClassName(baseTestClassName: String): String {
|
||||||
|
if (!baseTestClassName.startsWith("Abstract")) {
|
||||||
|
throw IllegalArgumentException("Doesn't start with \"Abstract\": $baseTestClassName")
|
||||||
|
}
|
||||||
|
return baseTestClassName.substringAfter("Abstract") + "Generated"
|
||||||
|
}
|
||||||
+3
-2
@@ -16,7 +16,8 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.generators.tests.generator;
|
package org.jetbrains.kotlin.generators.tests.generator;
|
||||||
|
|
||||||
import com.intellij.openapi.util.io.FileUtil;
|
import kotlin.io.FilesKt;
|
||||||
|
import kotlin.text.Charsets;
|
||||||
import kotlin.text.StringsKt;
|
import kotlin.text.StringsKt;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
@@ -68,7 +69,7 @@ public class TestGenerator {
|
|||||||
StringBuilder out = new StringBuilder();
|
StringBuilder out = new StringBuilder();
|
||||||
Printer p = new Printer(out);
|
Printer p = new Printer(out);
|
||||||
|
|
||||||
p.println(FileUtil.loadFile(new File("license/LICENSE.txt")));
|
p.println(FilesKt.readText(new File("license/LICENSE.txt"), Charsets.UTF_8));
|
||||||
p.println("package ", suiteClassPackage, ";");
|
p.println("package ", suiteClassPackage, ";");
|
||||||
p.println();
|
p.println();
|
||||||
p.println("import com.intellij.testFramework.TestDataPath;");
|
p.println("import com.intellij.testFramework.TestDataPath;");
|
||||||
+2
-2
@@ -16,7 +16,7 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.generators.tests.generator;
|
package org.jetbrains.kotlin.generators.tests.generator;
|
||||||
|
|
||||||
import com.intellij.openapi.util.text.StringUtil;
|
import kotlin.text.StringsKt;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
@@ -41,6 +41,6 @@ public class TestGeneratorUtil {
|
|||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
public static String fileNameToJavaIdentifier(@NotNull File file) {
|
public static String fileNameToJavaIdentifier(@NotNull File file) {
|
||||||
return StringUtil.capitalize(escapeForJavaIdentifier(file.getName()));
|
return StringsKt.capitalize(escapeForJavaIdentifier(file.getName()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
+4
-3
@@ -17,8 +17,9 @@
|
|||||||
package org.jetbrains.kotlin.generators.util;
|
package org.jetbrains.kotlin.generators.util;
|
||||||
|
|
||||||
import com.intellij.openapi.util.SystemInfo;
|
import com.intellij.openapi.util.SystemInfo;
|
||||||
import com.intellij.openapi.util.io.FileUtil;
|
|
||||||
import com.intellij.openapi.util.text.StringUtil;
|
import com.intellij.openapi.util.text.StringUtil;
|
||||||
|
import kotlin.io.FilesKt;
|
||||||
|
import kotlin.text.Charsets;
|
||||||
import org.jetbrains.kotlin.test.KotlinTestUtils;
|
import org.jetbrains.kotlin.test.KotlinTestUtils;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
@@ -56,7 +57,7 @@ public class GeneratorsFileUtil {
|
|||||||
|
|
||||||
File tempFile = useTempFile ? new File(KotlinTestUtils.tmpDir(file.getName()), file.getName() + ".tmp") : file;
|
File tempFile = useTempFile ? new File(KotlinTestUtils.tmpDir(file.getName()), file.getName() + ".tmp") : file;
|
||||||
|
|
||||||
FileUtil.writeToFile(tempFile, newText);
|
FilesKt.writeText(tempFile, newText, Charsets.UTF_8);
|
||||||
System.out.println("File written: " + tempFile.getAbsolutePath());
|
System.out.println("File written: " + tempFile.getAbsolutePath());
|
||||||
if (useTempFile) {
|
if (useTempFile) {
|
||||||
Files.move(tempFile.toPath(), file.toPath(), REPLACE_EXISTING);
|
Files.move(tempFile.toPath(), file.toPath(), REPLACE_EXISTING);
|
||||||
@@ -68,7 +69,7 @@ public class GeneratorsFileUtil {
|
|||||||
private static boolean checkFileIgnoringLineSeparators(File file, String content) {
|
private static boolean checkFileIgnoringLineSeparators(File file, String content) {
|
||||||
String currentContent;
|
String currentContent;
|
||||||
try {
|
try {
|
||||||
currentContent = FileUtil.loadFile(file, true);
|
currentContent = FilesKt.readText(file, Charsets.UTF_8);
|
||||||
}
|
}
|
||||||
catch (Throwable ignored) {
|
catch (Throwable ignored) {
|
||||||
return false;
|
return false;
|
||||||
@@ -2769,7 +2769,8 @@
|
|||||||
"testImplementation",
|
"testImplementation",
|
||||||
"testRuntime",
|
"testRuntime",
|
||||||
"testRuntimeClasspath",
|
"testRuntimeClasspath",
|
||||||
"testRuntimeOnly"
|
"testRuntimeOnly",
|
||||||
|
"tests-jar"
|
||||||
],
|
],
|
||||||
"extensions": {
|
"extensions": {
|
||||||
"ext": "org.gradle.api.plugins.ExtraPropertiesExtension",
|
"ext": "org.gradle.api.plugins.ExtraPropertiesExtension",
|
||||||
@@ -2804,7 +2805,8 @@
|
|||||||
"testImplementation",
|
"testImplementation",
|
||||||
"testRuntime",
|
"testRuntime",
|
||||||
"testRuntimeClasspath",
|
"testRuntimeClasspath",
|
||||||
"testRuntimeOnly"
|
"testRuntimeOnly",
|
||||||
|
"tests-jar"
|
||||||
],
|
],
|
||||||
"extensions": {
|
"extensions": {
|
||||||
"ext": "org.gradle.api.plugins.ExtraPropertiesExtension",
|
"ext": "org.gradle.api.plugins.ExtraPropertiesExtension",
|
||||||
@@ -3052,6 +3054,41 @@
|
|||||||
"reporting": "org.gradle.api.reporting.ReportingExtension"
|
"reporting": "org.gradle.api.reporting.ReportingExtension"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
":generators:test-generator": {
|
||||||
|
"conventions": {
|
||||||
|
"base": "org.gradle.api.plugins.BasePluginConvention",
|
||||||
|
"java": "org.gradle.api.plugins.JavaPluginConvention"
|
||||||
|
},
|
||||||
|
"configurations": [
|
||||||
|
"apiElements",
|
||||||
|
"archives",
|
||||||
|
"compile",
|
||||||
|
"compileClasspath",
|
||||||
|
"compileOnly",
|
||||||
|
"default",
|
||||||
|
"implementation",
|
||||||
|
"kapt",
|
||||||
|
"kaptTest",
|
||||||
|
"runtime",
|
||||||
|
"runtimeClasspath",
|
||||||
|
"runtimeElements",
|
||||||
|
"runtimeOnly",
|
||||||
|
"testCompile",
|
||||||
|
"testCompileClasspath",
|
||||||
|
"testCompileOnly",
|
||||||
|
"testImplementation",
|
||||||
|
"testRuntime",
|
||||||
|
"testRuntimeClasspath",
|
||||||
|
"testRuntimeOnly"
|
||||||
|
],
|
||||||
|
"extensions": {
|
||||||
|
"ext": "org.gradle.api.plugins.ExtraPropertiesExtension",
|
||||||
|
"kotlin": "org.jetbrains.kotlin.gradle.dsl.KotlinJvmProjectExtension",
|
||||||
|
"kapt": "org.jetbrains.kotlin.gradle.plugin.KaptExtension",
|
||||||
|
"defaultArtifacts": "org.gradle.api.internal.plugins.DefaultArtifactPublicationSet",
|
||||||
|
"reporting": "org.gradle.api.reporting.ReportingExtension"
|
||||||
|
}
|
||||||
|
},
|
||||||
":idea:formatter": {
|
":idea:formatter": {
|
||||||
"conventions": {
|
"conventions": {
|
||||||
"base": "org.gradle.api.plugins.BasePluginConvention",
|
"base": "org.gradle.api.plugins.BasePluginConvention",
|
||||||
|
|||||||
@@ -117,6 +117,7 @@ include ":kotlin-build-common",
|
|||||||
":kotlin-ant",
|
":kotlin-ant",
|
||||||
":compiler:tests-java8",
|
":compiler:tests-java8",
|
||||||
":generators",
|
":generators",
|
||||||
|
":generators:test-generator",
|
||||||
":tools:binary-compatibility-validator",
|
":tools:binary-compatibility-validator",
|
||||||
":tools:kotlin-stdlib-js-merger",
|
":tools:kotlin-stdlib-js-merger",
|
||||||
":tools:kotlin-stdlib-gen",
|
":tools:kotlin-stdlib-gen",
|
||||||
|
|||||||
Reference in New Issue
Block a user