test(KT-31614): fixate behavior of serialization/deserialization of UTF characters.

This commit is contained in:
Artem Kobzar
2022-04-21 09:22:24 +00:00
committed by Space
parent e974d16e7a
commit 7327bc864e
12 changed files with 82 additions and 0 deletions
@@ -170,6 +170,11 @@ public class InvalidationTestGenerated extends AbstractInvalidationTest {
runTest("js/js.translator/testData/incremental/invalidation/transitiveInlineFunction/");
}
@TestMetadata("unicodeSerializationAndDeserialization")
public void testUnicodeSerializationAndDeserialization() throws Exception {
runTest("js/js.translator/testData/incremental/invalidation/unicodeSerializationAndDeserialization/");
}
@TestMetadata("variance")
public void testVariance() throws Exception {
runTest("js/js.translator/testData/incremental/invalidation/variance/");
@@ -0,0 +1 @@
fun foo() = "\uD800"
@@ -0,0 +1 @@
fun foo() = "\uDB6A"
@@ -0,0 +1,11 @@
STEP 0:
dependencies: stdlib
dirty: l1.kt
STEP 1:
dependencies: stdlib
modifications:
U : l1.kt.1.txt -> l1.kt
dirty: l1.kt
STEP 2:
flags: FP
dependencies: stdlib
@@ -0,0 +1,2 @@
fun qux() = foo()
fun quz() = bar()
@@ -0,0 +1,7 @@
STEP 0:
dependencies: stdlib, lib1, lib3
dirty: l2.kt
STEP 1:
dependencies: stdlib, lib1, lib3
STEP 2:
dependencies: stdlib, lib1, lib3
@@ -0,0 +1 @@
fun bar() = "\uD800"
@@ -0,0 +1 @@
fun bar() = "\uDFFF"
@@ -0,0 +1,11 @@
STEP 0:
dependencies: stdlib
dirty: l3.kt
STEP 1:
dependencies: stdlib
flags: FP
STEP 2:
dependencies: stdlib
modifications:
U : l3.kt.2.txt -> l3.kt
dirty: l3.kt
@@ -0,0 +1,24 @@
fun box(step: Int): String {
return when (step) {
0 -> checkStep(step, qux = "\uD800", quz = "\uD800")
1 -> checkStep(step, qux = "\uDB6A", quz = "\uD800")
2 -> checkStep(step, qux = "\uDB6A", quz = "\uDFFF")
else -> "Unknown Step"
}
}
fun checkStep(step: Int, qux: String, quz: String): String {
val a = qux()
val b = quz()
if (a != qux || a == "?") {
return "Fail(qux): Step $step"
}
if (b != quz || b == "?") {
return "Fail(quz): Step $step"
}
return "OK"
}
@@ -0,0 +1,7 @@
STEP 0:
dependencies: stdlib, lib1, lib2, lib3
dirty: m.kt
STEP 1:
dependencies: stdlib, lib1, lib2, lib3
STEP 2:
dependencies: stdlib, lib1, lib2, lib3
@@ -0,0 +1,11 @@
MODULES: lib1, lib3, lib2, main
STEP 0:
libs: lib1, lib3, lib2, main
dirty js: stdlib, lib1, lib2, lib3, main
STEP 1:
libs: lib1, lib3, lib2, main
dirty js: lib1
STEP 2:
libs: lib1, lib3, lib2, main
dirty js: lib3