Mute/unmute failing/passing unsigned progression tests for FIR.

This commit is contained in:
Mark Punzalan
2020-04-23 01:24:00 -07:00
committed by Alexander Udalov
parent f249e7f5e9
commit eaddd02e9b
24 changed files with 42 additions and 10 deletions
@@ -1,4 +1,5 @@
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit! // Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
// IGNORE_BACKEND_FIR: JVM_IR
// KJS_WITH_FULL_RUNTIME // KJS_WITH_FULL_RUNTIME
// WITH_RUNTIME // WITH_RUNTIME
import kotlin.test.* import kotlin.test.*
@@ -1,4 +1,5 @@
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit! // Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
// IGNORE_BACKEND_FIR: JVM_IR
// KJS_WITH_FULL_RUNTIME // KJS_WITH_FULL_RUNTIME
// WITH_RUNTIME // WITH_RUNTIME
import kotlin.test.* import kotlin.test.*
@@ -1,4 +1,5 @@
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit! // Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
// IGNORE_BACKEND_FIR: JVM_IR
// KJS_WITH_FULL_RUNTIME // KJS_WITH_FULL_RUNTIME
// WITH_RUNTIME // WITH_RUNTIME
import kotlin.test.* import kotlin.test.*
@@ -1,4 +1,5 @@
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit! // Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
// IGNORE_BACKEND_FIR: JVM_IR
// KJS_WITH_FULL_RUNTIME // KJS_WITH_FULL_RUNTIME
// WITH_RUNTIME // WITH_RUNTIME
import kotlin.test.* import kotlin.test.*
@@ -1,4 +1,5 @@
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit! // Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
// IGNORE_BACKEND_FIR: JVM_IR
// KJS_WITH_FULL_RUNTIME // KJS_WITH_FULL_RUNTIME
// WITH_RUNTIME // WITH_RUNTIME
import kotlin.test.* import kotlin.test.*
@@ -1,4 +1,5 @@
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit! // Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
// IGNORE_BACKEND_FIR: JVM_IR
// KJS_WITH_FULL_RUNTIME // KJS_WITH_FULL_RUNTIME
// WITH_RUNTIME // WITH_RUNTIME
import kotlin.test.* import kotlin.test.*
@@ -1,4 +1,5 @@
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit! // Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
// IGNORE_BACKEND_FIR: JVM_IR
// KJS_WITH_FULL_RUNTIME // KJS_WITH_FULL_RUNTIME
// WITH_RUNTIME // WITH_RUNTIME
import kotlin.test.* import kotlin.test.*
@@ -1,4 +1,5 @@
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit! // Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
// IGNORE_BACKEND_FIR: JVM_IR
// KJS_WITH_FULL_RUNTIME // KJS_WITH_FULL_RUNTIME
// WITH_RUNTIME // WITH_RUNTIME
import kotlin.test.* import kotlin.test.*
@@ -1,4 +1,5 @@
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit! // Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
// IGNORE_BACKEND_FIR: JVM_IR
// KJS_WITH_FULL_RUNTIME // KJS_WITH_FULL_RUNTIME
// WITH_RUNTIME // WITH_RUNTIME
import kotlin.test.* import kotlin.test.*
@@ -1,4 +1,5 @@
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit! // Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
// IGNORE_BACKEND_FIR: JVM_IR
// KJS_WITH_FULL_RUNTIME // KJS_WITH_FULL_RUNTIME
// WITH_RUNTIME // WITH_RUNTIME
import kotlin.test.* import kotlin.test.*
@@ -1,4 +1,5 @@
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit! // Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
// IGNORE_BACKEND_FIR: JVM_IR
// KJS_WITH_FULL_RUNTIME // KJS_WITH_FULL_RUNTIME
// WITH_RUNTIME // WITH_RUNTIME
import kotlin.test.* import kotlin.test.*
@@ -1,4 +1,5 @@
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit! // Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
// IGNORE_BACKEND_FIR: JVM_IR
// KJS_WITH_FULL_RUNTIME // KJS_WITH_FULL_RUNTIME
// WITH_RUNTIME // WITH_RUNTIME
import kotlin.test.* import kotlin.test.*
@@ -1,4 +1,5 @@
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit! // Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
// IGNORE_BACKEND_FIR: JVM_IR
// KJS_WITH_FULL_RUNTIME // KJS_WITH_FULL_RUNTIME
// WITH_RUNTIME // WITH_RUNTIME
import kotlin.test.* import kotlin.test.*
@@ -1,4 +1,5 @@
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit! // Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
// IGNORE_BACKEND_FIR: JVM_IR
// KJS_WITH_FULL_RUNTIME // KJS_WITH_FULL_RUNTIME
// WITH_RUNTIME // WITH_RUNTIME
import kotlin.test.* import kotlin.test.*
@@ -1,4 +1,5 @@
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit! // Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
// IGNORE_BACKEND_FIR: JVM_IR
// KJS_WITH_FULL_RUNTIME // KJS_WITH_FULL_RUNTIME
// WITH_RUNTIME // WITH_RUNTIME
import kotlin.test.* import kotlin.test.*
@@ -1,4 +1,5 @@
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit! // Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
// IGNORE_BACKEND_FIR: JVM_IR
// KJS_WITH_FULL_RUNTIME // KJS_WITH_FULL_RUNTIME
// WITH_RUNTIME // WITH_RUNTIME
import kotlin.test.* import kotlin.test.*
@@ -1,4 +1,5 @@
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit! // Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
// IGNORE_BACKEND_FIR: JVM_IR
// KJS_WITH_FULL_RUNTIME // KJS_WITH_FULL_RUNTIME
// WITH_RUNTIME // WITH_RUNTIME
import kotlin.test.* import kotlin.test.*
@@ -1,4 +1,5 @@
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit! // Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
// IGNORE_BACKEND_FIR: JVM_IR
// KJS_WITH_FULL_RUNTIME // KJS_WITH_FULL_RUNTIME
// WITH_RUNTIME // WITH_RUNTIME
import kotlin.test.* import kotlin.test.*
@@ -1,4 +1,3 @@
// IGNORE_BACKEND_FIR: JVM_IR
// KJS_WITH_FULL_RUNTIME // KJS_WITH_FULL_RUNTIME
// Auto-generated by org.jetbrains.kotlin.generators.tests.GenerateRangesCodegenTestData. DO NOT EDIT! // Auto-generated by org.jetbrains.kotlin.generators.tests.GenerateRangesCodegenTestData. DO NOT EDIT!
// WITH_RUNTIME // WITH_RUNTIME
@@ -1,4 +1,3 @@
// IGNORE_BACKEND_FIR: JVM_IR
// KJS_WITH_FULL_RUNTIME // KJS_WITH_FULL_RUNTIME
// Auto-generated by org.jetbrains.kotlin.generators.tests.GenerateRangesCodegenTestData. DO NOT EDIT! // Auto-generated by org.jetbrains.kotlin.generators.tests.GenerateRangesCodegenTestData. DO NOT EDIT!
// WITH_RUNTIME // WITH_RUNTIME
@@ -1,4 +1,3 @@
// IGNORE_BACKEND_FIR: JVM_IR
// KJS_WITH_FULL_RUNTIME // KJS_WITH_FULL_RUNTIME
// Auto-generated by org.jetbrains.kotlin.generators.tests.GenerateRangesCodegenTestData. DO NOT EDIT! // Auto-generated by org.jetbrains.kotlin.generators.tests.GenerateRangesCodegenTestData. DO NOT EDIT!
// WITH_RUNTIME // WITH_RUNTIME
@@ -1,4 +1,3 @@
// IGNORE_BACKEND_FIR: JVM_IR
// KJS_WITH_FULL_RUNTIME // KJS_WITH_FULL_RUNTIME
// Auto-generated by org.jetbrains.kotlin.generators.tests.GenerateRangesCodegenTestData. DO NOT EDIT! // Auto-generated by org.jetbrains.kotlin.generators.tests.GenerateRangesCodegenTestData. DO NOT EDIT!
// WITH_RUNTIME // WITH_RUNTIME
@@ -71,10 +71,12 @@ public class GenerateRangesCodegenTestData {
private static final Map<String, String> MIN_MAX_CONSTANTS = new LinkedHashMap<>(); private static final Map<String, String> MIN_MAX_CONSTANTS = new LinkedHashMap<>();
private static final List<String> FIR_PASSING_UNSIGNED_LITERAL_TESTS = private static final List<String> FIR_PASSING_UNSIGNED_LITERAL_TESTS =
Arrays.asList("emptyDownto", "emptyRange", "reversedEmptyBackSequence", "reversedEmptyRange"); Arrays.asList("emptyDownto", "emptyRange", "oneElementDownTo", "oneElementRange", "reversedEmptyBackSequence",
"reversedEmptyRange");
private static final List<String> FIR_PASSING_UNSIGNED_EXPRESSION_TESTS = private static final List<String> FIR_PASSING_UNSIGNED_EXPRESSION_TESTS =
Arrays.asList("emptyDownto", "emptyRange", "reversedEmptyBackSequence", "reversedEmptyRange"); Arrays.asList("emptyDownto", "emptyRange", "oneElementDownTo", "oneElementRange", "reversedEmptyBackSequence",
"reversedEmptyRange");
static { static {
for (String integerType : INTEGER_PRIMITIVES) { for (String integerType : INTEGER_PRIMITIVES) {
@@ -234,8 +236,10 @@ public class GenerateRangesCodegenTestData {
String fileName = testFunName + ".kt"; String fileName = testFunName + ".kt";
writeToFile(new File(AS_LITERAL_DIR, fileName), asLiteralBody.toString(), false, false); 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_EXPRESSION_DIR, fileName), asExpressionBody.toString(), false, false);
writeToFile(new File(UNSIGNED_AS_LITERAL_DIR, fileName), unsignedAsLiteralBody.toString(), true, !FIR_PASSING_UNSIGNED_LITERAL_TESTS.contains(testFunName)); writeToFile(new File(UNSIGNED_AS_LITERAL_DIR, fileName), unsignedAsLiteralBody.toString(), true,
writeToFile(new File(UNSIGNED_AS_EXPRESSION_DIR, fileName), unsignedAsExpressionBody.toString(), true, !FIR_PASSING_UNSIGNED_EXPRESSION_TESTS.contains(testFunName)); !FIR_PASSING_UNSIGNED_LITERAL_TESTS.contains(testFunName));
writeToFile(new File(UNSIGNED_AS_EXPRESSION_DIR, fileName), unsignedAsExpressionBody.toString(), true,
!FIR_PASSING_UNSIGNED_EXPRESSION_TESTS.contains(testFunName));
} }
} }
} }
@@ -17,6 +17,15 @@ object GenerateSteppedRangesCodegenTestData {
|// KT-34166: Translation of loop over literal completely removes the validation of step |// KT-34166: Translation of loop over literal completely removes the validation of step
|// DONT_TARGET_EXACT_BACKEND: JS""".trimMargin() |// DONT_TARGET_EXACT_BACKEND: JS""".trimMargin()
private val KT_34166_AFFECTED_FILENAMES = setOf("illegalStepZero.kt", "illegalStepNegative.kt", "illegalStepNonConst.kt") private val KT_34166_AFFECTED_FILENAMES = setOf("illegalStepZero.kt", "illegalStepNegative.kt", "illegalStepNonConst.kt")
private val FIR_FAILING_FOR_UNSIGNED_FILENAMES = setOf(
"emptyProgressionToMinValue.kt",
"maxValueToMinValueStepMaxValue.kt",
"maxValueToOneStepMaxValue.kt",
"maxValueToZeroStepMaxValue.kt",
"minValueToMaxValueStepMaxValue.kt",
"oneToMaxValueStepMaxValue.kt",
"zeroToMaxValueStepMaxValue.kt"
)
private enum class Type(val type: String, val isLong: Boolean = false, val isUnsigned: Boolean = false) { private enum class Type(val type: String, val isLong: Boolean = false, val isUnsigned: Boolean = false) {
INT("Int"), INT("Int"),
@@ -160,12 +169,16 @@ object GenerateSteppedRangesCodegenTestData {
function: Function, function: Function,
extraCode: String?, extraCode: String?,
fullSubdir: File, fullSubdir: File,
asLiteral: Boolean asLiteral: Boolean,
shouldIgnoreForFIR: Boolean = false
) { ) {
fullSubdir.mkdirs() fullSubdir.mkdirs()
PrintWriter(File(fullSubdir, fileName)).use { PrintWriter(File(fullSubdir, fileName)).use {
with(it) { with(it) {
println("// $PREAMBLE_MESSAGE") println("// $PREAMBLE_MESSAGE")
if (shouldIgnoreForFIR) {
println("// IGNORE_BACKEND_FIR: JVM_IR")
}
println("// KJS_WITH_FULL_RUNTIME") println("// KJS_WITH_FULL_RUNTIME")
println("// WITH_RUNTIME") println("// WITH_RUNTIME")
if (asLiteral && KT_34166_AFFECTED_FILENAMES.contains(fileName)) { if (asLiteral && KT_34166_AFFECTED_FILENAMES.contains(fileName)) {
@@ -210,7 +223,8 @@ object GenerateSteppedRangesCodegenTestData {
function, function,
extraCode, extraCode,
File(UNSIGNED_TEST_DATA_DIR, fullSubdirPath.toString()), File(UNSIGNED_TEST_DATA_DIR, fullSubdirPath.toString()),
asLiteral asLiteral,
fileName in FIR_FAILING_FOR_UNSIGNED_FILENAMES
) )
} }
if (signedTests.isNotEmpty()) { if (signedTests.isNotEmpty()) {