IC mangling: Ignore FIR tests

This commit is contained in:
Ilmir Usmanov
2020-11-11 08:11:21 +01:00
parent 23184bae05
commit f7164404c9
57 changed files with 94 additions and 6 deletions
@@ -3,6 +3,7 @@
// !LANGUAGE: +InlineClasses
// WITH_RUNTIME
// KJS_WITH_FULL_RUNTIME
// IGNORE_BACKEND_FIR: JVM_IR
class C<T>(val x: T, vararg ys: UInt) {
val y0 = ys[0]
@@ -1,6 +1,7 @@
// IGNORE_BACKEND: JVM
// WITH_RUNTIME
// KJS_WITH_FULL_RUNTIME
// IGNORE_BACKEND_FIR: JVM_IR
fun box(): String {
// These should all be empty progressions
@@ -1,4 +1,5 @@
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
// IGNORE_BACKEND_FIR: JVM_IR
// DONT_TARGET_EXACT_BACKEND: WASM
// KJS_WITH_FULL_RUNTIME
// WITH_RUNTIME
@@ -1,4 +1,5 @@
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
// IGNORE_BACKEND_FIR: JVM_IR
// DONT_TARGET_EXACT_BACKEND: WASM
// KJS_WITH_FULL_RUNTIME
// WITH_RUNTIME
@@ -1,4 +1,5 @@
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
// IGNORE_BACKEND_FIR: JVM_IR
// DONT_TARGET_EXACT_BACKEND: WASM
// KJS_WITH_FULL_RUNTIME
// WITH_RUNTIME
@@ -1,4 +1,5 @@
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
// IGNORE_BACKEND_FIR: JVM_IR
// DONT_TARGET_EXACT_BACKEND: WASM
// KJS_WITH_FULL_RUNTIME
// WITH_RUNTIME
@@ -1,4 +1,5 @@
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
// IGNORE_BACKEND_FIR: JVM_IR
// DONT_TARGET_EXACT_BACKEND: WASM
// KJS_WITH_FULL_RUNTIME
// WITH_RUNTIME
@@ -1,4 +1,5 @@
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
// IGNORE_BACKEND_FIR: JVM_IR
// DONT_TARGET_EXACT_BACKEND: WASM
// KJS_WITH_FULL_RUNTIME
// WITH_RUNTIME
@@ -1,4 +1,5 @@
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
// IGNORE_BACKEND_FIR: JVM_IR
// DONT_TARGET_EXACT_BACKEND: WASM
// KJS_WITH_FULL_RUNTIME
// WITH_RUNTIME
@@ -1,4 +1,5 @@
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
// IGNORE_BACKEND_FIR: JVM_IR
// DONT_TARGET_EXACT_BACKEND: WASM
// KJS_WITH_FULL_RUNTIME
// WITH_RUNTIME
@@ -2,6 +2,7 @@
// KJS_WITH_FULL_RUNTIME
// Auto-generated by org.jetbrains.kotlin.generators.tests.GenerateRangesCodegenTestData. DO NOT EDIT!
// WITH_RUNTIME
// IGNORE_BACKEND_FIR: JVM_IR
val MinUI = UInt.MIN_VALUE
@@ -2,6 +2,7 @@
// KJS_WITH_FULL_RUNTIME
// Auto-generated by org.jetbrains.kotlin.generators.tests.GenerateRangesCodegenTestData. DO NOT EDIT!
// WITH_RUNTIME
// IGNORE_BACKEND_FIR: JVM_IR
val MaxUI = UInt.MAX_VALUE
@@ -2,6 +2,7 @@
// KJS_WITH_FULL_RUNTIME
// Auto-generated by org.jetbrains.kotlin.generators.tests.GenerateRangesCodegenTestData. DO NOT EDIT!
// WITH_RUNTIME
// IGNORE_BACKEND_FIR: JVM_IR
val MaxUI = UInt.MAX_VALUE
@@ -2,6 +2,7 @@
// KJS_WITH_FULL_RUNTIME
// Auto-generated by org.jetbrains.kotlin.generators.tests.GenerateRangesCodegenTestData. DO NOT EDIT!
// WITH_RUNTIME
// IGNORE_BACKEND_FIR: JVM_IR
val MinUI = UInt.MIN_VALUE
@@ -2,6 +2,7 @@
// KJS_WITH_FULL_RUNTIME
// Auto-generated by org.jetbrains.kotlin.generators.tests.GenerateRangesCodegenTestData. DO NOT EDIT!
// WITH_RUNTIME
// IGNORE_BACKEND_FIR: JVM_IR
val MaxUI = UInt.MAX_VALUE
@@ -2,6 +2,7 @@
// KJS_WITH_FULL_RUNTIME
// Auto-generated by org.jetbrains.kotlin.generators.tests.GenerateRangesCodegenTestData. DO NOT EDIT!
// WITH_RUNTIME
// IGNORE_BACKEND_FIR: JVM_IR
@@ -1,5 +1,6 @@
// WITH_RUNTIME
// KJS_WITH_FULL_RUNTIME
// IGNORE_BACKEND_FIR: JVM_IR
fun ub_ub(x: UByte, a: UByte, b: UByte) = x in a..b
fun ub_us(x: UByte, a: UShort, b: UShort) = x in a..b
@@ -1,5 +1,6 @@
// WITH_RUNTIME
// KJS_WITH_FULL_RUNTIME
// IGNORE_BACKEND_FIR: JVM_IR
fun ULong.foobar() =
when (this) {
@@ -2,6 +2,7 @@
// KJS_WITH_FULL_RUNTIME
// Auto-generated by org.jetbrains.kotlin.generators.tests.GenerateRangesCodegenTestData. DO NOT EDIT!
// WITH_RUNTIME
// IGNORE_BACKEND_FIR: JVM_IR
val MinUI = UInt.MIN_VALUE
@@ -2,6 +2,7 @@
// KJS_WITH_FULL_RUNTIME
// Auto-generated by org.jetbrains.kotlin.generators.tests.GenerateRangesCodegenTestData. DO NOT EDIT!
// WITH_RUNTIME
// IGNORE_BACKEND_FIR: JVM_IR
val MaxUI = UInt.MAX_VALUE
@@ -2,6 +2,7 @@
// KJS_WITH_FULL_RUNTIME
// Auto-generated by org.jetbrains.kotlin.generators.tests.GenerateRangesCodegenTestData. DO NOT EDIT!
// WITH_RUNTIME
// IGNORE_BACKEND_FIR: JVM_IR
val MaxUI = UInt.MAX_VALUE
@@ -2,6 +2,7 @@
// KJS_WITH_FULL_RUNTIME
// Auto-generated by org.jetbrains.kotlin.generators.tests.GenerateRangesCodegenTestData. DO NOT EDIT!
// WITH_RUNTIME
// IGNORE_BACKEND_FIR: JVM_IR
val MinUI = UInt.MIN_VALUE
@@ -2,6 +2,7 @@
// KJS_WITH_FULL_RUNTIME
// Auto-generated by org.jetbrains.kotlin.generators.tests.GenerateRangesCodegenTestData. DO NOT EDIT!
// WITH_RUNTIME
// IGNORE_BACKEND_FIR: JVM_IR
val MaxUI = UInt.MAX_VALUE
@@ -2,6 +2,7 @@
// KJS_WITH_FULL_RUNTIME
// Auto-generated by org.jetbrains.kotlin.generators.tests.GenerateRangesCodegenTestData. DO NOT EDIT!
// WITH_RUNTIME
// IGNORE_BACKEND_FIR: JVM_IR
@@ -3,6 +3,7 @@
// IGNORE_LIGHT_ANALYSIS
// WITH_RUNTIME
// KJS_WITH_FULL_RUNTIME
// IGNORE_BACKEND_FIR: JVM_IR
fun box(): String {
var result = 0u
@@ -3,6 +3,7 @@
// IGNORE_LIGHT_ANALYSIS
// WITH_RUNTIME
// KJS_WITH_FULL_RUNTIME
// IGNORE_BACKEND_FIR: JVM_IR
fun box(): String {
var result = 0u
@@ -3,6 +3,7 @@
// IGNORE_LIGHT_ANALYSIS
// WITH_RUNTIME
// KJS_WITH_FULL_RUNTIME
// IGNORE_BACKEND_FIR: JVM_IR
fun box(): String {
var result = 0u
@@ -1,5 +1,6 @@
// WITH_RUNTIME
// KJS_WITH_FULL_RUNTIME
// IGNORE_BACKEND_FIR: JVM_IR
fun testIn(x: ULong) =
x in UInt.MIN_VALUE..UInt.MAX_VALUE
@@ -1,6 +1,7 @@
// TARGET_BACKEND: JVM
// WITH_REFLECT
// WITH_COROUTINES
// IGNORE_BACKEND_FIR: JVM_IR
package test
@@ -1,5 +1,6 @@
// TARGET_BACKEND: JVM
// WITH_REFLECT
// IGNORE_BACKEND_FIR: JVM_IR
package test
@@ -1,5 +1,6 @@
// KJS_WITH_FULL_RUNTIME
// WITH_RUNTIME
// IGNORE_BACKEND_FIR: JVM_IR
fun box(): String {
val good = 42.toUInt()
@@ -2,6 +2,7 @@
// WASM_MUTE_REASON: STDLIB_COLLECTIONS
// KJS_WITH_FULL_RUNTIME
// WITH_RUNTIME
// IGNORE_BACKEND_FIR: JVM_IR
const val MaxUI = UInt.MAX_VALUE
const val MinUI = UInt.MIN_VALUE
@@ -2,6 +2,7 @@
// WASM_MUTE_REASON: STDLIB_COLLECTIONS
// KJS_WITH_FULL_RUNTIME
// WITH_RUNTIME
// IGNORE_BACKEND_FIR: JVM_IR
const val MaxUI = UInt.MAX_VALUE
const val MinUI = UInt.MIN_VALUE
@@ -2,6 +2,7 @@
// WASM_MUTE_REASON: STDLIB_COLLECTIONS
// KJS_WITH_FULL_RUNTIME
// WITH_RUNTIME
// IGNORE_BACKEND_FIR: JVM_IR
const val MaxUI = UInt.MAX_VALUE
const val MinUI = UInt.MIN_VALUE
@@ -2,6 +2,7 @@
// WASM_MUTE_REASON: STDLIB_COLLECTIONS
// KJS_WITH_FULL_RUNTIME
// WITH_RUNTIME
// IGNORE_BACKEND_FIR: JVM_IR
const val MaxUI = UInt.MAX_VALUE
const val MinUI = UInt.MIN_VALUE
@@ -1,5 +1,6 @@
// KJS_WITH_FULL_RUNTIME
// WITH_RUNTIME
// IGNORE_BACKEND_FIR: JVM_IR
val UB_MAX = UByte.MAX_VALUE
val UB_START = (UB_MAX - 10u).toUByte()
@@ -2,6 +2,7 @@
// WASM_MUTE_REASON: STDLIB_COLLECTIONS
// KJS_WITH_FULL_RUNTIME
// WITH_RUNTIME
// IGNORE_BACKEND_FIR: JVM_IR
const val MaxUI = UInt.MAX_VALUE
const val MinUI = UInt.MIN_VALUE
@@ -2,6 +2,7 @@
// WASM_MUTE_REASON: STDLIB_COLLECTIONS
// KJS_WITH_FULL_RUNTIME
// WITH_RUNTIME
// IGNORE_BACKEND_FIR: JVM_IR
const val MaxUI = UInt.MAX_VALUE
const val MinUI = UInt.MIN_VALUE
@@ -1,5 +1,6 @@
// KJS_WITH_FULL_RUNTIME
// WITH_RUNTIME
// IGNORE_BACKEND_FIR: JVM_IR
const val MaxUI = UInt.MAX_VALUE
const val MinUI = UInt.MIN_VALUE
@@ -1,5 +1,6 @@
// KJS_WITH_FULL_RUNTIME
// WITH_RUNTIME
// IGNORE_BACKEND_FIR: JVM_IR
const val MaxUI = UInt.MAX_VALUE
const val MinUI = UInt.MIN_VALUE
@@ -1,5 +1,6 @@
// KJS_WITH_FULL_RUNTIME
// WITH_RUNTIME
// IGNORE_BACKEND_FIR: JVM_IR
const val MaxUI = UInt.MAX_VALUE
const val MinUI = UInt.MIN_VALUE
@@ -2,6 +2,7 @@
// WASM_MUTE_REASON: UNSIGNED_ARRAYS
// WITH_RUNTIME
// KJS_WITH_FULL_RUNTIME
// IGNORE_BACKEND_FIR: JVM_IR
fun box(): String {
var sum = 0u
@@ -1,5 +1,6 @@
// KJS_WITH_FULL_RUNTIME
// WITH_RUNTIME
// IGNORE_BACKEND_FIR: JVM_IR
fun box(): String {
var sum = 0u
@@ -2,6 +2,7 @@
// WASM_MUTE_REASON: PROPERTY_REFERENCES
// KJS_WITH_FULL_RUNTIME
// WITH_RUNTIME
// IGNORE_BACKEND_FIR: JVM_IR
import kotlin.reflect.KProperty
import kotlin.reflect.KProperty0
@@ -1,5 +1,6 @@
// KJS_WITH_FULL_RUNTIME
// WITH_RUNTIME
// IGNORE_BACKEND_FIR: JVM_IR
val ua = 1234U
val ub = 5678U
@@ -1,5 +1,6 @@
// KJS_WITH_FULL_RUNTIME
// WITH_RUNTIME
// IGNORE_BACKEND_FIR: JVM_IR
val ua = 1234U
val ub = 5678U
@@ -1,5 +1,6 @@
// KJS_WITH_FULL_RUNTIME
// WITH_RUNTIME
// IGNORE_BACKEND_FIR: JVM_IR
val ua = 1234UL
val ub = 5678UL
@@ -1,5 +1,6 @@
// KJS_WITH_FULL_RUNTIME
// WITH_RUNTIME
// IGNORE_BACKEND_FIR: JVM_IR
val ua = 1234UL
val ub = 5678UL
@@ -2,6 +2,7 @@
// WASM_MUTE_REASON: STDLIB_TEXT
// KJS_WITH_FULL_RUNTIME
// WITH_RUNTIME
// IGNORE_BACKEND_FIR: JVM_IR
const val MAX_BYTE: UByte = 0xFFu
const val HUNDRED: UByte = 100u
@@ -2,6 +2,7 @@
// WASM_MUTE_REASON: SPREAD_OPERATOR
// WITH_RUNTIME
// KJS_WITH_FULL_RUNTIME
// IGNORE_BACKEND_FIR: JVM_IR
fun uint(vararg us: UInt): UIntArray = us
@@ -1,5 +1,6 @@
// JVM_TARGET: 1.8
// WITH_RUNTIME
// IGNORE_BACKEND_FIR: JVM_IR
val ua = 1234U
val ub = 5678U
@@ -1,5 +1,6 @@
// JVM_TARGET: 1.8
// WITH_RUNTIME
// IGNORE_BACKEND_FIR: JVM_IR
val ua = 1234U
val ub = 5678U
@@ -1,5 +1,6 @@
// JVM_TARGET: 1.8
// WITH_RUNTIME
// IGNORE_BACKEND_FIR: JVM_IR
val ua = 1234UL
val ub = 5678UL
@@ -1,5 +1,6 @@
// JVM_TARGET: 1.8
// WITH_RUNTIME
// IGNORE_BACKEND_FIR: JVM_IR
val ua = 1234UL
val ub = 5678UL
@@ -74,6 +74,24 @@ public class GenerateRangesCodegenTestData {
private static final List<String> JVM_IR_FAILING_UNSIGNED_EXPRESSION_TESTS = Collections.emptyList();
private static final List<String> FIR_FAILING_UNSIGNED_LITERAL_TESTS = new ArrayList<String>() {{
add("inexactDownToMinValue");
add("progressionMaxValueMinusTwoToMaxValue");
add("inexactToMaxValue");
add("simpleRangeWithNonConstantEnds");
add("maxValueMinusTwoToMaxValue");
add("progressionDownToMinValue");
}};
private static final List<String> FIR_FAILING_UNSIGNED_EXPRESSION_TESTS = new ArrayList<String>() {{
add("inexactDownToMinValue");
add("progressionMaxValueMinusTwoToMaxValue");
add("inexactToMaxValue");
add("simpleRangeWithNonConstantEnds");
add("maxValueMinusTwoToMaxValue");
add("progressionDownToMinValue");
}};
static {
for (String integerType : INTEGER_PRIMITIVES) {
String suffix = integerType.substring(0, integerType.startsWith("U") ? 2 : 1);
@@ -138,7 +156,7 @@ public class GenerateRangesCodegenTestData {
out.printf("// IGNORE_BACKEND: %s%n%n", backendName);
}
private static void writeToFile(File file, String generatedBody, boolean isForUnsigned, boolean ignoreJvmIR) {
private static void writeToFile(File file, String generatedBody, boolean isForUnsigned, boolean ignoreJvmIR, boolean ignoreFir) {
PrintWriter out;
try {
//noinspection IOResourceOpenedButNotSafelyClosed
@@ -155,6 +173,9 @@ public class GenerateRangesCodegenTestData {
out.println("// KJS_WITH_FULL_RUNTIME");
out.println("// Auto-generated by " + GenerateRangesCodegenTestData.class.getName() + ". DO NOT EDIT!");
out.println("// WITH_RUNTIME");
if (ignoreFir) {
out.println("// IGNORE_BACKEND_FIR: JVM_IR");
}
out.println();
// Import min/max values, but only in case when the generated test case actually uses them (not to clutter tests which don't)
out.println();
@@ -233,12 +254,14 @@ public class GenerateRangesCodegenTestData {
}
String fileName = testFunName + ".kt";
writeToFile(new File(AS_LITERAL_DIR, fileName), asLiteralBody.toString(), false, false);
writeToFile(new File(AS_EXPRESSION_DIR, fileName), asExpressionBody.toString(), false, false);
writeToFile(new File(AS_LITERAL_DIR, fileName), asLiteralBody.toString(), false, false, false);
writeToFile(new File(AS_EXPRESSION_DIR, fileName), asExpressionBody.toString(), false, false, false);
writeToFile(new File(UNSIGNED_AS_LITERAL_DIR, fileName), unsignedAsLiteralBody.toString(), true,
JVM_IR_FAILING_UNSIGNED_LITERAL_TESTS.contains(testFunName));
JVM_IR_FAILING_UNSIGNED_LITERAL_TESTS.contains(testFunName),
FIR_FAILING_UNSIGNED_LITERAL_TESTS.contains(testFunName));
writeToFile(new File(UNSIGNED_AS_EXPRESSION_DIR, fileName), unsignedAsExpressionBody.toString(), true,
JVM_IR_FAILING_UNSIGNED_EXPRESSION_TESTS.contains(testFunName));
JVM_IR_FAILING_UNSIGNED_EXPRESSION_TESTS.contains(testFunName),
FIR_FAILING_UNSIGNED_EXPRESSION_TESTS.contains(testFunName));
}
}
}
@@ -19,6 +19,7 @@ object GenerateSteppedRangesCodegenTestData {
private val KT_34166_AFFECTED_FILENAMES = setOf("illegalStepZero.kt", "illegalStepNegative.kt", "illegalStepNonConst.kt")
private val JVM_IR_FAILING_FOR_UNSIGNED_FILENAMES = setOf<String>()
private val FIR_FAILING_FOR_UNSIGNED_FILENAMES = setOf("minValueToMaxValueStepMaxValue.kt", "zeroToMaxValueStepMaxValue.kt")
private enum class Type(val type: String, val isLong: Boolean = false, val isUnsigned: Boolean = false) {
INT("Int"),
@@ -163,12 +164,16 @@ object GenerateSteppedRangesCodegenTestData {
extraCode: String?,
fullSubdir: File,
asLiteral: Boolean,
shouldIgnoreForJvmIR: Boolean = false
shouldIgnoreForJvmIR: Boolean = false,
shouldIgnoreForFir: Boolean = false,
) {
fullSubdir.mkdirs()
PrintWriter(File(fullSubdir, fileName)).use {
with(it) {
println("// $PREAMBLE_MESSAGE")
if (shouldIgnoreForFir) {
println("// IGNORE_BACKEND_FIR: JVM_IR")
}
if (shouldIgnoreForJvmIR) {
println("// IGNORE_BACKEND: JVM_IR")
}
@@ -220,6 +225,7 @@ object GenerateSteppedRangesCodegenTestData {
File(UNSIGNED_TEST_DATA_DIR, fullSubdirPath),
asLiteral,
shouldIgnoreForJvmIR = fileName in JVM_IR_FAILING_FOR_UNSIGNED_FILENAMES,
shouldIgnoreForFir = fileName in FIR_FAILING_FOR_UNSIGNED_FILENAMES,
)
}
if (signedTests.isNotEmpty()) {
@@ -6867,6 +6867,11 @@ public class IrCodegenBoxWasmTestGenerated extends AbstractIrCodegenBoxWasmTest
runTest("compiler/testData/codegen/box/inlineClasses/boxReturnValueOnOverride/kt28483.kt");
}
@TestMetadata("overrideGenericWithInlineClass.kt")
public void testOverrideGenericWithInlineClass() throws Exception {
runTest("compiler/testData/codegen/box/inlineClasses/boxReturnValueOnOverride/overrideGenericWithInlineClass.kt");
}
@TestMetadata("overrideGenericWithNullableInlineClassUpperBoundWithNonNullAny.kt")
public void testOverrideGenericWithNullableInlineClassUpperBoundWithNonNullAny() throws Exception {
runTest("compiler/testData/codegen/box/inlineClasses/boxReturnValueOnOverride/overrideGenericWithNullableInlineClassUpperBoundWithNonNullAny.kt");