JVM_IR: Add test for compiling against cross-platform Klib

This commit is contained in:
Georgy Bronnikov
2019-11-26 17:53:00 +03:00
parent f1b5198b86
commit 8f4b4007fe
16 changed files with 235 additions and 7 deletions
@@ -15,7 +15,6 @@ import org.jetbrains.kotlin.codegen.ir.AbstractFirBlackBoxCodegenTest;
import org.jetbrains.kotlin.fileClasses.JvmFileClassUtil;
import org.jetbrains.kotlin.psi.KtFile;
import org.jetbrains.kotlin.test.InTextDirectivesUtils;
import org.jetbrains.kotlin.test.TargetBackend;
import org.jetbrains.kotlin.utils.ExceptionUtilsKt;
import java.io.File;
@@ -33,9 +32,7 @@ public abstract class AbstractBlackBoxCodegenTest extends CodegenTestCase {
@NotNull List<TestFile> files,
boolean unexpectedBehaviour
) throws Exception {
boolean isIgnored = InTextDirectivesUtils.isIgnoredTarget(getBackend(), wholeFile) ||
(this instanceof AbstractFirBlackBoxCodegenTest &&
InTextDirectivesUtils.isDirectiveDefined(FileUtil.loadFile(wholeFile), "IGNORE_BACKEND_FIR: JVM_IR"));
boolean isIgnored = isIgnoredTarget(wholeFile);
compile(files, !isIgnored, false);
@@ -142,4 +139,15 @@ public abstract class AbstractBlackBoxCodegenTest extends CodegenTestCase {
? null
: JvmFileClassUtil.getFileClassInfoNoResolve(file).getFacadeClassFqName().asString();
}
protected boolean isIgnoredTarget(@NotNull File wholeFile) {
try {
return InTextDirectivesUtils.isIgnoredTarget(getBackend(), wholeFile) ||
(this instanceof AbstractFirBlackBoxCodegenTest &&
InTextDirectivesUtils.isDirectiveDefined(FileUtil.loadFile(wholeFile), "IGNORE_BACKEND_FIR: JVM_IR"));
}
catch (Exception e) {
throw ExceptionUtilsKt.rethrow(e);
}
}
}