Support test directives in inline tests
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
// FILE: 1.kt
|
// FILE: 1.kt
|
||||||
|
// WITH_RUNTIME
|
||||||
package test
|
package test
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
// FILE: 1.kt
|
// FILE: 1.kt
|
||||||
|
// WITH_RUNTIME
|
||||||
package test
|
package test
|
||||||
|
|
||||||
fun <T> T.noInline(p: (T) -> Unit) {
|
fun <T> T.noInline(p: (T) -> Unit) {
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
// FILE: 1.kt
|
// FILE: 1.kt
|
||||||
|
// WITH_RUNTIME
|
||||||
package test
|
package test
|
||||||
|
|
||||||
class Z {
|
class Z {
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
// FILE: 1.kt
|
// FILE: 1.kt
|
||||||
|
// WITH_RUNTIME
|
||||||
package test
|
package test
|
||||||
|
|
||||||
var res = 1
|
var res = 1
|
||||||
|
|||||||
+1
-1
@@ -1,5 +1,5 @@
|
|||||||
// FILE: 1.kt
|
// FILE: 1.kt
|
||||||
|
// WITH_RUNTIME
|
||||||
package test
|
package test
|
||||||
|
|
||||||
var res = 1
|
var res = 1
|
||||||
|
|||||||
+1
-1
@@ -1,5 +1,5 @@
|
|||||||
// FILE: 1.kt
|
// FILE: 1.kt
|
||||||
|
// WITH_RUNTIME
|
||||||
package test
|
package test
|
||||||
|
|
||||||
var res = 1
|
var res = 1
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
// FILE: 1.kt
|
// FILE: 1.kt
|
||||||
|
// WITH_RUNTIME
|
||||||
package builders
|
package builders
|
||||||
|
|
||||||
import java.util.ArrayList
|
import java.util.ArrayList
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
// FILE: 1.kt
|
// FILE: 1.kt
|
||||||
|
// WITH_RUNTIME
|
||||||
package builders
|
package builders
|
||||||
|
|
||||||
import java.util.ArrayList
|
import java.util.ArrayList
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
// FILE: 1.kt
|
// FILE: 1.kt
|
||||||
|
// WITH_RUNTIME
|
||||||
package test
|
package test
|
||||||
|
|
||||||
public class Input(val s1: String, val s2: String) {
|
public class Input(val s1: String, val s2: String) {
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
// FILE: 1.kt
|
// FILE: 1.kt
|
||||||
|
// WITH_RUNTIME
|
||||||
package test
|
package test
|
||||||
|
|
||||||
public class Input(val s1: String, val s2: String) {
|
public class Input(val s1: String, val s2: String) {
|
||||||
|
|||||||
+1
-1
@@ -1,5 +1,5 @@
|
|||||||
// FILE: 1.kt
|
// FILE: 1.kt
|
||||||
|
// WITH_RUNTIME
|
||||||
package test
|
package test
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
// FILE: 1.kt
|
// FILE: 1.kt
|
||||||
|
// WITH_RUNTIME
|
||||||
package test
|
package test
|
||||||
|
|
||||||
object ContentTypeByExtension {
|
object ContentTypeByExtension {
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
// FILE: 1.kt
|
// FILE: 1.kt
|
||||||
|
// WITH_RUNTIME
|
||||||
package test
|
package test
|
||||||
|
|
||||||
inline public fun String.run(p1: String? = null): String {
|
inline public fun String.run(p1: String? = null): String {
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
// FILE: 1.kt
|
// FILE: 1.kt
|
||||||
|
// WITH_REFLECT
|
||||||
package test
|
package test
|
||||||
|
|
||||||
inline fun <R> call(s: () -> R) = s()
|
inline fun <R> call(s: () -> R) = s()
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
// FILE: 1.kt
|
// FILE: 1.kt
|
||||||
|
// WITH_REFLECT
|
||||||
package test
|
package test
|
||||||
|
|
||||||
inline fun <R> call(s: () -> R) = s()
|
inline fun <R> call(s: () -> R) = s()
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
// FILE: 1.kt
|
// FILE: 1.kt
|
||||||
|
// WITH_REFLECT
|
||||||
package test
|
package test
|
||||||
|
|
||||||
inline fun <R> call(crossinline s: () -> R) = { s() }()
|
inline fun <R> call(crossinline s: () -> R) = { s() }()
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
// FILE: 1.kt
|
// FILE: 1.kt
|
||||||
|
// WITH_REFLECT
|
||||||
package test
|
package test
|
||||||
|
|
||||||
interface Z {
|
interface Z {
|
||||||
|
|||||||
+1
-1
@@ -1,5 +1,5 @@
|
|||||||
// FILE: 1.kt
|
// FILE: 1.kt
|
||||||
|
// WITH_REFLECT
|
||||||
package test
|
package test
|
||||||
|
|
||||||
interface Z {
|
interface Z {
|
||||||
|
|||||||
Vendored
+1
-1
@@ -1,5 +1,5 @@
|
|||||||
// FILE: 1.kt
|
// FILE: 1.kt
|
||||||
|
// WITH_REFLECT
|
||||||
package test
|
package test
|
||||||
|
|
||||||
interface Z<T> {
|
interface Z<T> {
|
||||||
|
|||||||
Vendored
+1
-1
@@ -1,5 +1,5 @@
|
|||||||
// FILE: 1.kt
|
// FILE: 1.kt
|
||||||
|
// WITH_REFLECT
|
||||||
package test
|
package test
|
||||||
|
|
||||||
interface Z {
|
interface Z {
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
// FILE: 1.kt
|
// FILE: 1.kt
|
||||||
|
// WITH_RUNTIME
|
||||||
inline fun Inline.calcExt(s: (Int) -> Int, p: Int) : Int {
|
inline fun Inline.calcExt(s: (Int) -> Int, p: Int) : Int {
|
||||||
return s(p)
|
return s(p)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
// FILE: 1.kt
|
// FILE: 1.kt
|
||||||
|
// WITH_RUNTIME
|
||||||
package test
|
package test
|
||||||
|
|
||||||
inline fun foo1() = run {
|
inline fun foo1() = run {
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
// FILE: 1.kt
|
// FILE: 1.kt
|
||||||
|
// WITH_RUNTIME
|
||||||
package test
|
package test
|
||||||
|
|
||||||
inline fun test(s: () -> Unit) {
|
inline fun test(s: () -> Unit) {
|
||||||
|
|||||||
+1
-1
@@ -1,5 +1,5 @@
|
|||||||
// FILE: 1.kt
|
// FILE: 1.kt
|
||||||
|
// WITH_RUNTIME
|
||||||
package test
|
package test
|
||||||
|
|
||||||
inline fun <R> mfun(f: () -> R) {
|
inline fun <R> mfun(f: () -> R) {
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
// FILE: 1.kt
|
// FILE: 1.kt
|
||||||
|
// WITH_RUNTIME
|
||||||
package test
|
package test
|
||||||
|
|
||||||
public class Data(val value: Int)
|
public class Data(val value: Int)
|
||||||
|
|||||||
+1
-1
@@ -1,5 +1,5 @@
|
|||||||
// FILE: 1.kt
|
// FILE: 1.kt
|
||||||
|
// WITH_RUNTIME
|
||||||
@file:[JvmName("MultifileClass") JvmMultifileClass]
|
@file:[JvmName("MultifileClass") JvmMultifileClass]
|
||||||
package a
|
package a
|
||||||
|
|
||||||
|
|||||||
Vendored
+1
-1
@@ -1,5 +1,5 @@
|
|||||||
// FILE: 1.kt
|
// FILE: 1.kt
|
||||||
|
// WITH_RUNTIME
|
||||||
package test
|
package test
|
||||||
|
|
||||||
public class Holder(var value: String = "") {
|
public class Holder(var value: String = "") {
|
||||||
|
|||||||
+1
-1
@@ -1,5 +1,5 @@
|
|||||||
// FILE: 1.kt
|
// FILE: 1.kt
|
||||||
|
// WITH_RUNTIME
|
||||||
package test
|
package test
|
||||||
|
|
||||||
public class Holder(var value: String = "") {
|
public class Holder(var value: String = "") {
|
||||||
|
|||||||
Vendored
+1
-1
@@ -1,5 +1,5 @@
|
|||||||
// FILE: 1.kt
|
// FILE: 1.kt
|
||||||
|
// WITH_RUNTIME
|
||||||
package test
|
package test
|
||||||
|
|
||||||
public interface MCloseable {
|
public interface MCloseable {
|
||||||
|
|||||||
+1
-1
@@ -1,5 +1,5 @@
|
|||||||
// FILE: 1.kt
|
// FILE: 1.kt
|
||||||
|
// WITH_RUNTIME
|
||||||
@file:kotlin.jvm.JvmMultifileClass
|
@file:kotlin.jvm.JvmMultifileClass
|
||||||
@file:kotlin.jvm.JvmName("TestKt")
|
@file:kotlin.jvm.JvmName("TestKt")
|
||||||
package test
|
package test
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
// FILE: 1.kt
|
// FILE: 1.kt
|
||||||
|
// WITH_RUNTIME
|
||||||
package test
|
package test
|
||||||
|
|
||||||
inline fun <reified R> foo() = bar<R>() {"OK"}
|
inline fun <reified R> foo() = bar<R>() {"OK"}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
// FILE: 1.kt
|
// FILE: 1.kt
|
||||||
|
// WITH_REFLECT
|
||||||
package test
|
package test
|
||||||
|
|
||||||
inline fun <reified R, T> bar(crossinline tasksFactory: () -> T) = {
|
inline fun <reified R, T> bar(crossinline tasksFactory: () -> T) = {
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
// FILE: 1.kt
|
// FILE: 1.kt
|
||||||
|
// WITH_RUNTIME
|
||||||
package test
|
package test
|
||||||
|
|
||||||
class A
|
class A
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
// FILE: 1.kt
|
// FILE: 1.kt
|
||||||
|
// WITH_RUNTIME
|
||||||
package test
|
package test
|
||||||
|
|
||||||
inline fun <reified T, reified R>T.castTo(): R = this as R
|
inline fun <reified T, reified R>T.castTo(): R = this as R
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
// FILE: 1.kt
|
// FILE: 1.kt
|
||||||
|
// WITH_RUNTIME
|
||||||
package test
|
package test
|
||||||
|
|
||||||
class A
|
class A
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
// FILE: 1.kt
|
// FILE: 1.kt
|
||||||
|
// WITH_RUNTIME
|
||||||
package test
|
package test
|
||||||
|
|
||||||
class A
|
class A
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
// FILE: 1.kt
|
// FILE: 1.kt
|
||||||
|
// WITH_RUNTIME
|
||||||
package test
|
package test
|
||||||
|
|
||||||
class A
|
class A
|
||||||
|
|||||||
+1
-1
@@ -1,5 +1,5 @@
|
|||||||
// FILE: 1.kt
|
// FILE: 1.kt
|
||||||
|
// WITH_REFLECT
|
||||||
package test
|
package test
|
||||||
|
|
||||||
open class TypeRef<T> {
|
open class TypeRef<T> {
|
||||||
|
|||||||
+1
-1
@@ -1,5 +1,5 @@
|
|||||||
// FILE: 1.kt
|
// FILE: 1.kt
|
||||||
|
// WITH_REFLECT
|
||||||
package test
|
package test
|
||||||
|
|
||||||
interface Call<T> {
|
interface Call<T> {
|
||||||
|
|||||||
+1
-1
@@ -1,5 +1,5 @@
|
|||||||
// FILE: 1.kt
|
// FILE: 1.kt
|
||||||
|
// WITH_REFLECT
|
||||||
package test
|
package test
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -1,5 +1,5 @@
|
|||||||
// FILE: 1.kt
|
// FILE: 1.kt
|
||||||
|
// WITH_REFLECT
|
||||||
package test
|
package test
|
||||||
|
|
||||||
public inline fun <reified T : Any> inlineMeIfYouCan(): String? =
|
public inline fun <reified T : Any> inlineMeIfYouCan(): String? =
|
||||||
|
|||||||
+1
-1
@@ -1,5 +1,5 @@
|
|||||||
// FILE: 1.kt
|
// FILE: 1.kt
|
||||||
|
// WITH_REFLECT
|
||||||
package test
|
package test
|
||||||
|
|
||||||
import java.util.*
|
import java.util.*
|
||||||
|
|||||||
+1
-1
@@ -1,5 +1,5 @@
|
|||||||
// FILE: 1.kt
|
// FILE: 1.kt
|
||||||
|
// WITH_REFLECT
|
||||||
package test
|
package test
|
||||||
|
|
||||||
public abstract class A<T>
|
public abstract class A<T>
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
// FILE: 1.kt
|
// FILE: 1.kt
|
||||||
|
// WITH_REFLECT
|
||||||
package test
|
package test
|
||||||
|
|
||||||
interface F<T> {
|
interface F<T> {
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
// FILE: 1.kt
|
// FILE: 1.kt
|
||||||
|
// WITH_REFLECT
|
||||||
package test
|
package test
|
||||||
|
|
||||||
interface F<T> {
|
interface F<T> {
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
// FILE: 1.kt
|
// FILE: 1.kt
|
||||||
|
// WITH_REFLECT
|
||||||
package test
|
package test
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
// FILE: 1.kt
|
// FILE: 1.kt
|
||||||
|
// WITH_REFLECT
|
||||||
package test
|
package test
|
||||||
|
|
||||||
class B<T>
|
class B<T>
|
||||||
|
|||||||
+1
-1
@@ -1,5 +1,5 @@
|
|||||||
// FILE: 1.kt
|
// FILE: 1.kt
|
||||||
|
// WITH_REFLECT
|
||||||
package test
|
package test
|
||||||
|
|
||||||
class B<T>
|
class B<T>
|
||||||
|
|||||||
+1
-1
@@ -1,5 +1,5 @@
|
|||||||
// FILE: 1.kt
|
// FILE: 1.kt
|
||||||
|
// WITH_REFLECT
|
||||||
package test
|
package test
|
||||||
|
|
||||||
interface F<T> {
|
interface F<T> {
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
// FILE: 1.kt
|
// FILE: 1.kt
|
||||||
|
// WITH_REFLECT
|
||||||
package test
|
package test
|
||||||
|
|
||||||
open class Test {
|
open class Test {
|
||||||
|
|||||||
+1
-1
@@ -1,5 +1,5 @@
|
|||||||
// FILE: 1.kt
|
// FILE: 1.kt
|
||||||
|
// WITH_REFLECT
|
||||||
package test
|
package test
|
||||||
|
|
||||||
import java.util.*
|
import java.util.*
|
||||||
|
|||||||
+1
-1
@@ -1,5 +1,5 @@
|
|||||||
// FILE: 1.kt
|
// FILE: 1.kt
|
||||||
|
// WITH_REFLECT
|
||||||
package test
|
package test
|
||||||
|
|
||||||
interface MComparator<T> {
|
interface MComparator<T> {
|
||||||
|
|||||||
+1
-1
@@ -1,5 +1,5 @@
|
|||||||
// FILE: 1.kt
|
// FILE: 1.kt
|
||||||
|
// WITH_RUNTIME
|
||||||
inline fun Inline.calcExt(s: (Int) -> Int, p: Int) : Int {
|
inline fun Inline.calcExt(s: (Int) -> Int, p: Int) : Int {
|
||||||
return s(p)
|
return s(p)
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -1,5 +1,5 @@
|
|||||||
// FILE: 1.kt
|
// FILE: 1.kt
|
||||||
|
// WITH_RUNTIME
|
||||||
package test
|
package test
|
||||||
|
|
||||||
inline fun doSmth(vararg a: String) : String {
|
inline fun doSmth(vararg a: String) : String {
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
// FILE: 1.kt
|
// FILE: 1.kt
|
||||||
|
// WITH_RUNTIME
|
||||||
package test
|
package test
|
||||||
inline fun stub() {
|
inline fun stub() {
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
// FILE: 1.kt
|
// FILE: 1.kt
|
||||||
|
// WITH_REFLECT
|
||||||
package test
|
package test
|
||||||
|
|
||||||
inline fun <reified T : Any> className() = T::class.java.simpleName
|
inline fun <reified T : Any> className() = T::class.java.simpleName
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
// FILE: 1.kt
|
// FILE: 1.kt
|
||||||
|
// WITH_RUNTIME
|
||||||
|
|
||||||
class My(val value: Int)
|
class My(val value: Int)
|
||||||
|
|
||||||
|
|||||||
@@ -55,12 +55,10 @@ public abstract class AbstractBlackBoxCodegenTest extends CodegenTestCase {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void doMultiFileTest(@NotNull File wholeFile, @NotNull List<TestFile> files, @Nullable File javaFilesDir) throws Exception {
|
protected void doMultiFileTest(@NotNull File wholeFile, @NotNull List<TestFile> files, @Nullable File javaFilesDir) throws Exception {
|
||||||
TestJdkKind jdkKind = TestJdkKind.MOCK_JDK;
|
TestJdkKind jdkKind = getJdkKind(files);
|
||||||
|
|
||||||
List<String> javacOptions = new ArrayList<String>(0);
|
List<String> javacOptions = new ArrayList<String>(0);
|
||||||
for (TestFile file : files) {
|
for (TestFile file : files) {
|
||||||
if (InTextDirectivesUtils.isDirectiveDefined(file.content, "FULL_JDK")) {
|
|
||||||
jdkKind = TestJdkKind.FULL_JDK;
|
|
||||||
}
|
|
||||||
if (InTextDirectivesUtils.isDirectiveDefined(file.content, "WITH_RUNTIME")) {
|
if (InTextDirectivesUtils.isDirectiveDefined(file.content, "WITH_RUNTIME")) {
|
||||||
addRuntime = true;
|
addRuntime = true;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,15 +16,11 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.codegen
|
package org.jetbrains.kotlin.codegen
|
||||||
|
|
||||||
import org.jetbrains.kotlin.test.ConfigurationKind
|
|
||||||
import java.io.File
|
import java.io.File
|
||||||
|
|
||||||
abstract class AbstractBlackBoxInlineCodegenTest : AbstractBlackBoxCodegenTest() {
|
abstract class AbstractBlackBoxInlineCodegenTest : AbstractBlackBoxCodegenTest() {
|
||||||
override fun doMultiFileTest(file: File, files: List<TestFile>, javaFilesDir: File?) {
|
override fun doMultiFileTest(wholeFile: File, files: List<TestFile>, javaFilesDir: File?) {
|
||||||
createEnvironmentWithMockJdkAndIdeaAnnotations(ConfigurationKind.ALL, files)
|
super.doMultiFileTest(wholeFile, files, javaFilesDir)
|
||||||
loadMultiFiles(files)
|
|
||||||
blackBox()
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
InlineTestUtil.checkNoCallsToInline(initializedClassLoader.allGeneratedFiles.filterClassFiles(), myFiles.psiFiles)
|
InlineTestUtil.checkNoCallsToInline(initializedClassLoader.allGeneratedFiles.filterClassFiles(), myFiles.psiFiles)
|
||||||
SMAPTestUtil.checkSMAP(files, generateClassesInFile().getClassFiles())
|
SMAPTestUtil.checkSMAP(files, generateClassesInFile().getClassFiles())
|
||||||
|
|||||||
+6
-6
@@ -69,10 +69,10 @@ public abstract class AbstractCompileKotlinAgainstKotlinTest extends CodegenTest
|
|||||||
assert files.size() == 2 : "There should be exactly two files in this test";
|
assert files.size() == 2 : "There should be exactly two files in this test";
|
||||||
TestFile fileA = files.get(0);
|
TestFile fileA = files.get(0);
|
||||||
TestFile fileB = files.get(1);
|
TestFile fileB = files.get(1);
|
||||||
ClassFileFactory factoryA = compileA(fileA.name, fileA.content);
|
ClassFileFactory factoryA = compileA(fileA.name, fileA.content, files);
|
||||||
ClassFileFactory factoryB = null;
|
ClassFileFactory factoryB = null;
|
||||||
try {
|
try {
|
||||||
factoryB = compileB(fileB.name, fileB.content);
|
factoryB = compileB(fileB.name, fileB.content, files);
|
||||||
invokeBox(PackagePartClassUtils.getFilePartShortName(new File(fileB.name).getName()));
|
invokeBox(PackagePartClassUtils.getFilePartShortName(new File(fileB.name).getName()));
|
||||||
}
|
}
|
||||||
catch (Throwable e) {
|
catch (Throwable e) {
|
||||||
@@ -101,16 +101,16 @@ public abstract class AbstractCompileKotlinAgainstKotlinTest extends CodegenTest
|
|||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
protected ClassFileFactory compileA(@NotNull String fileName, @NotNull String content) throws IOException {
|
protected ClassFileFactory compileA(@NotNull String fileName, @NotNull String content, List<TestFile> files) throws IOException {
|
||||||
KotlinCoreEnvironment environment =
|
KotlinCoreEnvironment environment =
|
||||||
KotlinTestUtils.createEnvironmentWithMockJdkAndIdeaAnnotations(getTestRootDisposable(), ConfigurationKind.ALL);
|
KotlinTestUtils.createEnvironmentWithJdkAndNullabilityAnnotationsFromIdea(getTestRootDisposable(), ConfigurationKind.ALL, getJdkKind(files));
|
||||||
return compileKotlin(fileName, content, aDir, environment, getTestRootDisposable());
|
return compileKotlin(fileName, content, aDir, environment, getTestRootDisposable());
|
||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
protected ClassFileFactory compileB(@NotNull String fileName, @NotNull String content) throws IOException {
|
protected ClassFileFactory compileB(@NotNull String fileName, @NotNull String content, List<TestFile> files) throws IOException {
|
||||||
CompilerConfiguration configurationWithADirInClasspath = KotlinTestUtils
|
CompilerConfiguration configurationWithADirInClasspath = KotlinTestUtils
|
||||||
.compilerConfigurationForTests(ConfigurationKind.ALL, TestJdkKind.MOCK_JDK, KotlinTestUtils.getAnnotationsJar(), aDir);
|
.compilerConfigurationForTests(ConfigurationKind.ALL, getJdkKind(files), KotlinTestUtils.getAnnotationsJar(), aDir);
|
||||||
|
|
||||||
KotlinCoreEnvironment environment =
|
KotlinCoreEnvironment environment =
|
||||||
KotlinCoreEnvironment.createForTests(getTestRootDisposable(), configurationWithADirInClasspath, EnvironmentConfigFiles.JVM_CONFIG_FILES);
|
KotlinCoreEnvironment.createForTests(getTestRootDisposable(), configurationWithADirInClasspath, EnvironmentConfigFiles.JVM_CONFIG_FILES);
|
||||||
|
|||||||
@@ -91,6 +91,16 @@ public abstract class CodegenTestCase extends UsefulTestCase {
|
|||||||
createEnvironmentWithMockJdkAndIdeaAnnotations(configurationKind, Collections.<TestFile>emptyList(), javaSourceRoots);
|
createEnvironmentWithMockJdkAndIdeaAnnotations(configurationKind, Collections.<TestFile>emptyList(), javaSourceRoots);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
protected static TestJdkKind getJdkKind(@NotNull List<TestFile> files) {
|
||||||
|
for (TestFile file : files) {
|
||||||
|
if (InTextDirectivesUtils.isDirectiveDefined(file.content, "FULL_JDK")) {
|
||||||
|
return TestJdkKind.FULL_JDK;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return TestJdkKind.MOCK_JDK;
|
||||||
|
}
|
||||||
|
|
||||||
protected final void createEnvironmentWithMockJdkAndIdeaAnnotations(
|
protected final void createEnvironmentWithMockJdkAndIdeaAnnotations(
|
||||||
@NotNull ConfigurationKind configurationKind,
|
@NotNull ConfigurationKind configurationKind,
|
||||||
@NotNull List<TestFile> testFilesWithConfigurationDirectives,
|
@NotNull List<TestFile> testFilesWithConfigurationDirectives,
|
||||||
|
|||||||
Reference in New Issue
Block a user