test(KT-31614): fixate behavior of serialization/deserialization of UTF characters.
This commit is contained in:
+5
@@ -170,6 +170,11 @@ public class InvalidationTestGenerated extends AbstractInvalidationTest {
|
|||||||
runTest("js/js.translator/testData/incremental/invalidation/transitiveInlineFunction/");
|
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")
|
@TestMetadata("variance")
|
||||||
public void testVariance() throws Exception {
|
public void testVariance() throws Exception {
|
||||||
runTest("js/js.translator/testData/incremental/invalidation/variance/");
|
runTest("js/js.translator/testData/incremental/invalidation/variance/");
|
||||||
|
|||||||
js/js.translator/testData/incremental/invalidation/unicodeSerializationAndDeserialization/lib1/l1.kt
Vendored
+1
@@ -0,0 +1 @@
|
|||||||
|
fun foo() = "\uD800"
|
||||||
+1
@@ -0,0 +1 @@
|
|||||||
|
fun foo() = "\uDB6A"
|
||||||
+11
@@ -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
|
||||||
js/js.translator/testData/incremental/invalidation/unicodeSerializationAndDeserialization/lib2/l2.kt
Vendored
+2
@@ -0,0 +1,2 @@
|
|||||||
|
fun qux() = foo()
|
||||||
|
fun quz() = bar()
|
||||||
+7
@@ -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
|
||||||
js/js.translator/testData/incremental/invalidation/unicodeSerializationAndDeserialization/lib3/l3.kt
Vendored
+1
@@ -0,0 +1 @@
|
|||||||
|
fun bar() = "\uD800"
|
||||||
+1
@@ -0,0 +1 @@
|
|||||||
|
fun bar() = "\uDFFF"
|
||||||
+11
@@ -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
|
||||||
Vendored
+24
@@ -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"
|
||||||
|
}
|
||||||
+7
@@ -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
|
||||||
+11
@@ -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
|
||||||
Reference in New Issue
Block a user