Move coroutines to kotlin.coroutines package: tests

Introduce COMMON_COROUTINES_TEST directive.
Every test with this directive is run twice: one time with
language version 1.2 and kotlin.coroutines.experimental package
and the other time with language version 1.3 and kotlin.coroutines
package. Each run is a separate method: with suffixes _1_2 and _1_3
respectively.
However, since codegen of release coroutines is not supported in JS
backend, we generate only one method: with suffix _1_2.
 #KT-23362
This commit is contained in:
Ilmir Usmanov
2018-04-19 17:10:47 +03:00
parent 30ab1e2b35
commit f60787d57c
340 changed files with 9150 additions and 3046 deletions
@@ -1,7 +1,8 @@
// FILE: test.kt
// COMMON_COROUTINES_TEST
// WITH_RUNTIME
import kotlin.coroutines.experimental.*
import COROUTINES_PACKAGE.*
suspend inline fun test1(c: suspend () -> Unit) {
c()
@@ -13,9 +14,10 @@ suspend inline fun test2(crossinline c: suspend () -> Unit) {
}
// FILE: box.kt
// COMMON_COROUTINES_TEST
import kotlin.coroutines.experimental.*
import kotlin.coroutines.experimental.intrinsics.*
import COROUTINES_PACKAGE.*
import COROUTINES_PACKAGE.intrinsics.*
fun builder(c: suspend () -> Unit) {
c.startCoroutine(object: Continuation<Unit> {
@@ -1,7 +1,8 @@
// FILE: test.kt
// COMMON_COROUTINES_TEST
// WITH_RUNTIME
import kotlin.coroutines.experimental.*
import COROUTINES_PACKAGE.*
inline suspend fun foo(crossinline a: suspend () -> Unit, crossinline b: suspend () -> Unit) {
var x = "OK"
@@ -28,6 +29,7 @@ fun builder(c: suspend () -> Unit) {
}
// FILE: box.kt
// COMMON_COROUTINES_TEST
fun box(): String {
var y = "fail"
@@ -1,8 +1,9 @@
// FILE: test.kt
// COMMON_COROUTINES_TEST
// WITH_RUNTIME
// NO_CHECK_LAMBDA_INLINING
import kotlin.coroutines.experimental.*
import COROUTINES_PACKAGE.*
class Controller {
var res = "FAIL 1"
@@ -35,8 +36,9 @@ suspend inline fun test3(controller: Controller = defaultController, crossinline
}
// FILE: box.kt
// COMMON_COROUTINES_TEST
import kotlin.coroutines.experimental.*
import COROUTINES_PACKAGE.*
fun builder(c: suspend () -> Unit) {
c.startCoroutine(object: Continuation<Unit> {
@@ -1,8 +1,9 @@
// FILE: test.kt
// COMMON_COROUTINES_TEST
// WITH_RUNTIME
// NO_CHECK_LAMBDA_INLINING
import kotlin.coroutines.experimental.*
import COROUTINES_PACKAGE.*
class Controller {
var res = "FAIL 1"
@@ -15,8 +16,9 @@ suspend inline fun test(controller: Controller = defaultController, c: suspend C
}
// FILE: box.kt
// COMMON_COROUTINES_TEST
import kotlin.coroutines.experimental.*
import COROUTINES_PACKAGE.*
fun builder(c: suspend () -> Unit) {
c.startCoroutine(object: Continuation<Unit> {
@@ -1,7 +1,8 @@
// FILE: test.kt
// COMMON_COROUTINES_TEST
// WITH_RUNTIME
import kotlin.coroutines.experimental.*
import COROUTINES_PACKAGE.*
// Block is allowed to be called from nested classes/lambdas (as common crossinlines)
// Are suspend calls possible inside lambda matching to the parameter
@@ -39,6 +40,7 @@ fun builder(c: suspend () -> Unit) {
}
// FILE: box.kt
// COMMON_COROUTINES_TEST
suspend fun calculate() = "OK"
@@ -1,7 +1,8 @@
// FILE: test.kt
// COMMON_COROUTINES_TEST
// WITH_RUNTIME
import kotlin.coroutines.experimental.*
import COROUTINES_PACKAGE.*
// Block is allowed to be called from nested classes/lambdas (as common crossinlines)
// Start coroutine call is possible
@@ -46,6 +47,7 @@ fun builder(c: suspend () -> Unit) {
}
// FILE: box.kt
// COMMON_COROUTINES_TEST
suspend fun calculate() = "OK"
@@ -1,4 +1,5 @@
// FILE: test.kt
// COMMON_COROUTINES_TEST
// WITH_RUNTIME
// NO_CHECK_LAMBDA_INLINING
@@ -33,10 +34,11 @@ suspend inline fun test5(crossinline c: suspend() -> Unit) {
}
// FILE: box.kt
// COMMON_COROUTINES_TEST
import kotlin.coroutines.experimental.*
import kotlin.coroutines.experimental.intrinsics.*
import kotlin.coroutines.experimental.jvm.internal.*
import COROUTINES_PACKAGE.*
import COROUTINES_PACKAGE.intrinsics.*
import COROUTINES_PACKAGE.jvm.internal.*
object EmptyContinuation: Continuation<Unit> {
override val context: CoroutineContext
@@ -1,7 +1,8 @@
// FILE: test.kt
// COMMON_COROUTINES_TEST
// WITH_RUNTIME
import kotlin.coroutines.experimental.*
import COROUTINES_PACKAGE.*
// Block is allowed to be called inside the body of owner inline function
// Block is allowed to be called from nested classes/lambdas (as common crossinlines)
@@ -43,8 +44,9 @@ fun builder(c: suspend () -> Unit) {
}
// FILE: box.kt
// COMMON_COROUTINES_TEST
import kotlin.coroutines.experimental.*
import COROUTINES_PACKAGE.*
fun box() : String {
var res = "FAIL 1"
@@ -1,7 +1,8 @@
// FILE: test.kt
// COMMON_COROUTINES_TEST
// WITH_RUNTIME
import kotlin.coroutines.experimental.*
import COROUTINES_PACKAGE.*
// Block is allowed to be called inside the body of owner inline function
// Block is allowed to be called from nested classes/lambdas (as common crossinlines)
@@ -30,8 +31,9 @@ suspend inline fun test3(crossinline c: suspend () -> Unit) {
}
// FILE: box.kt
// COMMON_COROUTINES_TEST
import kotlin.coroutines.experimental.*
import COROUTINES_PACKAGE.*
fun builder(c: suspend () -> Unit) {
c.startCoroutine(object: Continuation<Unit> {
@@ -1,7 +1,8 @@
// FILE: test.kt
// COMMON_COROUTINES_TEST
// WITH_RUNTIME
import kotlin.coroutines.experimental.*
import COROUTINES_PACKAGE.*
// Block is allowed to be called inside the body of owner inline function
// Block is allowed to be called from nested classes/lambdas (as common crossinlines)
@@ -43,8 +44,9 @@ fun builder(c: suspend () -> Unit) {
}
// FILE: box.kt
// COMMON_COROUTINES_TEST
import kotlin.coroutines.experimental.*
import COROUTINES_PACKAGE.*
fun box() : String {
var res = "FAIL 1"
@@ -1,7 +1,8 @@
// FILE: test.kt
// COMMON_COROUTINES_TEST
// WITH_RUNTIME
import kotlin.coroutines.experimental.*
import COROUTINES_PACKAGE.*
// Block is allowed to be called from nested classes/lambdas (as common crossinlines)
// Are suspend calls possible inside lambda matching to the parameter
@@ -51,8 +52,9 @@ suspend inline fun test4(noinline c: suspend () -> Unit) {
}
// FILE: box.kt
// COMMON_COROUTINES_TEST
import kotlin.coroutines.experimental.*
import COROUTINES_PACKAGE.*
suspend fun calculate() = "OK"
@@ -1,8 +1,9 @@
// FILE: test.kt
// COMMON_COROUTINES_TEST
// WITH_RUNTIME
// NO_CHECK_LAMBDA_INLINING
import kotlin.coroutines.experimental.*
import COROUTINES_PACKAGE.*
// Block is allowed to be called inside the body of owner inline function
// suspend calls possible inside lambda matching to the parameter
@@ -30,8 +31,9 @@ inline fun transform(crossinline c: suspend () -> Unit) {
}
// FILE: box.kt
// COMMON_COROUTINES_TEST
import kotlin.coroutines.experimental.*
import COROUTINES_PACKAGE.*
suspend fun calculate() = "OK"
@@ -1,8 +1,9 @@
// FILE: test.kt
// COMMON_COROUTINES_TEST
// WITH_RUNTIME
// NO_CHECK_LAMBDA_INLINING
import kotlin.coroutines.experimental.*
import COROUTINES_PACKAGE.*
// Block is allowed to be called inside the body of owner inline function
// suspend calls possible inside lambda matching to the parameter
@@ -12,8 +13,9 @@ suspend inline fun test(c: suspend () -> Unit) {
}
// FILE: box.kt
// COMMON_COROUTINES_TEST
import kotlin.coroutines.experimental.*
import COROUTINES_PACKAGE.*
fun builder(c: suspend () -> Unit) {
c.startCoroutine(object: Continuation<Unit> {
@@ -1,4 +1,5 @@
// FILE: inlined.kt
// COMMON_COROUTINES_TEST
// WITH_RUNTIME
// NO_CHECK_LAMBDA_INLINING
@@ -54,8 +55,9 @@ suspend inline fun crossinlineMe(crossinline c: suspend () -> Unit) {
}
// FILE: inlineSite.kt
// COMMON_COROUTINES_TEST
import kotlin.coroutines.experimental.*
import COROUTINES_PACKAGE.*
fun builder(c: suspend () -> Unit) {
c.startCoroutine(object: Continuation<Unit> {
@@ -1,4 +1,5 @@
// FILE: inlined.kt
// COMMON_COROUTINES_TEST
// WITH_RUNTIME
// NO_CHECK_LAMBDA_INLINING
@@ -25,8 +26,9 @@ suspend inline fun crossinlineMe(crossinline c: suspend () -> Unit) {
}
// FILE: inlineSite.kt
// COMMON_COROUTINES_TEST
import kotlin.coroutines.experimental.*
import COROUTINES_PACKAGE.*
fun builder(c: suspend () -> Unit) {
c.startCoroutine(object: Continuation<Unit> {
@@ -1,7 +1,8 @@
// FILE: test.kt
// COMMON_COROUTINES_TEST
// WITH_RUNTIME
import kotlin.coroutines.experimental.*
import COROUTINES_PACKAGE.*
// Block is allowed to be called from nested classes/lambdas (as common crossinlines)
// Are suspend calls possible inside lambda matching to the parameter
@@ -43,6 +44,7 @@ fun builder(controller: Controller, c: suspend Controller.() -> Unit) {
}
// FILE: box.kt
// COMMON_COROUTINES_TEST
suspend fun calculate() = "OK"
@@ -1,7 +1,8 @@
// FILE: test.kt
// COMMON_COROUTINES_TEST
// WITH_RUNTIME
import kotlin.coroutines.experimental.*
import COROUTINES_PACKAGE.*
// Block is allowed to be called from nested classes/lambdas (as common crossinlines)
// Start coroutine call is possible
@@ -50,6 +51,7 @@ fun builder(controller: Controller, c: suspend Controller.() -> Unit) {
}
// FILE: box.kt
// COMMON_COROUTINES_TEST
suspend fun calculate() = "OK"
@@ -1,7 +1,8 @@
// FILE: test.kt
// COMMON_COROUTINES_TEST
// WITH_RUNTIME
import kotlin.coroutines.experimental.*
import COROUTINES_PACKAGE.*
// Block is allowed to be called inside the body of owner inline function
// Block is allowed to be called from nested classes/lambdas (as common crossinlines)
@@ -47,8 +48,9 @@ fun builder(controller : Controller, c: suspend Controller.() -> Unit) {
}
// FILE: box.kt
// COMMON_COROUTINES_TEST
import kotlin.coroutines.experimental.*
import COROUTINES_PACKAGE.*
fun box() : String {
val controller = Controller()
@@ -1,7 +1,8 @@
// FILE: test.kt
// COMMON_COROUTINES_TEST
// WITH_RUNTIME
import kotlin.coroutines.experimental.*
import COROUTINES_PACKAGE.*
// Block is allowed to be called inside the body of owner inline function
// Block is allowed to be called from nested classes/lambdas (as common crossinlines)
@@ -34,8 +35,9 @@ class Controller {
}
// FILE: box.kt
// COMMON_COROUTINES_TEST
import kotlin.coroutines.experimental.*
import COROUTINES_PACKAGE.*
fun builder(controller: Controller, c: suspend Controller.() -> Unit) {
c.startCoroutine(controller, object: Continuation<Unit> {
@@ -1,7 +1,8 @@
// FILE: test.kt
// COMMON_COROUTINES_TEST
// WITH_RUNTIME
import kotlin.coroutines.experimental.*
import COROUTINES_PACKAGE.*
// Block is allowed to be called inside the body of owner inline function
// Block is allowed to be called from nested classes/lambdas (as common crossinlines)
@@ -47,8 +48,9 @@ fun builder(controller: Controller, c: suspend Controller.() -> Unit) {
}
// FILE: box.kt
// COMMON_COROUTINES_TEST
import kotlin.coroutines.experimental.*
import COROUTINES_PACKAGE.*
fun box() : String {
val controller = Controller()
@@ -1,7 +1,8 @@
// FILE: test.kt
// COMMON_COROUTINES_TEST
// WITH_RUNTIME
import kotlin.coroutines.experimental.*
import COROUTINES_PACKAGE.*
// Block is allowed to be called from nested classes/lambdas (as common crossinlines)
// Are suspend calls possible inside lambda matching to the parameter
@@ -55,8 +56,9 @@ fun builder(controller: Controller, c: suspend Controller.() -> Unit) {
}
// FILE: box.kt
// COMMON_COROUTINES_TEST
import kotlin.coroutines.experimental.*
import COROUTINES_PACKAGE.*
suspend fun calculate() = "OK"
@@ -1,8 +1,9 @@
// FILE: test.kt
// COMMON_COROUTINES_TEST
// WITH_RUNTIME
// NO_CHECK_LAMBDA_INLINING
import kotlin.coroutines.experimental.*
import COROUTINES_PACKAGE.*
// Block is allowed to be called inside the body of owner inline function
// suspend calls possible inside lambda matching to the parameter
@@ -34,8 +35,9 @@ fun builder(controller: Controller, c: suspend Controller.() -> Unit) {
}
// FILE: box.kt
// COMMON_COROUTINES_TEST
import kotlin.coroutines.experimental.*
import COROUTINES_PACKAGE.*
suspend fun calculate() = "OK"
@@ -1,8 +1,9 @@
// FILE: test.kt
// COMMON_COROUTINES_TEST
// WITH_RUNTIME
// NO_CHECK_LAMBDA_INLINING
import kotlin.coroutines.experimental.*
import COROUTINES_PACKAGE.*
// Block is allowed to be called inside the body of owner inline function
// suspend calls possible inside lambda matching to the parameter
@@ -16,8 +17,9 @@ class Controller {
}
// FILE: box.kt
// COMMON_COROUTINES_TEST
import kotlin.coroutines.experimental.*
import COROUTINES_PACKAGE.*
fun builder(controller: Controller, c: suspend Controller.() -> Unit) {
c.startCoroutine(controller, object: Continuation<Unit> {
+6 -4
View File
@@ -1,8 +1,9 @@
// FILE: inlined.kt
// COMMON_COROUTINES_TEST
// WITH_RUNTIME
// NO_CHECK_LAMBDA_INLINING
import kotlin.coroutines.experimental.*
import kotlin.coroutines.experimental.intrinsics.*
import COROUTINES_PACKAGE.*
import COROUTINES_PACKAGE.intrinsics.*
inline suspend fun suspendThere(v: String): String = suspendCoroutineOrReturn { x ->
x.resume(v)
@@ -16,8 +17,9 @@ suspend inline fun complexSuspend(crossinline c: suspend () -> String): String {
}
// FILE: inleneSite.kt
import kotlin.coroutines.experimental.*
import kotlin.coroutines.experimental.intrinsics.*
// COMMON_COROUTINES_TEST
import COROUTINES_PACKAGE.*
import COROUTINES_PACKAGE.intrinsics.*
fun builder(c: suspend () -> Unit) {
c.startCoroutine(object: Continuation<Unit> {
@@ -1,4 +1,5 @@
// FILE: inlined.kt
// COMMON_COROUTINES_TEST
// WITH_RUNTIME
// NO_CHECK_LAMBDA_INLINING
@@ -8,9 +9,10 @@ suspend inline fun crossinlineMe(crossinline c: suspend () -> Unit) {
}
// FILE: inlineSite.kt
// COMMON_COROUTINES_TEST
import kotlin.coroutines.experimental.*
import kotlin.coroutines.experimental.intrinsics.*
import COROUTINES_PACKAGE.*
import COROUTINES_PACKAGE.intrinsics.*
fun builder(c: suspend () -> Unit) {
c.startCoroutine(object: Continuation<Unit> {
@@ -1,4 +1,5 @@
// FILE: inlined.kt
// COMMON_COROUTINES_TEST
// WITH_RUNTIME
// NO_CHECK_LAMBDA_INLINING
@@ -13,9 +14,10 @@ suspend inline fun crossinlineMe(crossinline c: suspend () -> Unit) {
}
// FILE: inlineSite.kt
// COMMON_COROUTINES_TEST
import kotlin.coroutines.experimental.*
import kotlin.coroutines.experimental.intrinsics.*
import COROUTINES_PACKAGE.*
import COROUTINES_PACKAGE.intrinsics.*
fun builder(c: suspend () -> Unit) {
c.startCoroutine(object: Continuation<Unit> {
@@ -1,8 +1,9 @@
// FILE: inlined.kt
// COMMON_COROUTINES_TEST
// WITH_RUNTIME
// NO_CHECK_LAMBDA_INLINING
import kotlin.coroutines.experimental.intrinsics.*
import COROUTINES_PACKAGE.intrinsics.*
var i = 0;
@@ -23,8 +24,9 @@ suspend inline fun crossinlineMe(crossinline c: suspend () -> Unit) {
}
// FILE: inlineSite.kt
// COMMON_COROUTINES_TEST
import kotlin.coroutines.experimental.*
import COROUTINES_PACKAGE.*
fun builder(c: suspend () -> Unit) {
c.startCoroutine(object: Continuation<Unit> {
@@ -1,4 +1,5 @@
// FILE: inlined.kt
// COMMON_COROUTINES_TEST
// WITH_RUNTIME
// NO_CHECK_LAMBDA_INLINING
@@ -35,9 +36,10 @@ suspend inline fun crossinlineMe(crossinline c: suspend () -> Unit) {
}
// FILE: inlineSite.kt
// COMMON_COROUTINES_TEST
import kotlin.coroutines.experimental.*
import kotlin.coroutines.experimental.intrinsics.*
import COROUTINES_PACKAGE.*
import COROUTINES_PACKAGE.intrinsics.*
fun builder(c: suspend () -> Unit) {
c.startCoroutine(object: Continuation<Unit> {
@@ -1,4 +1,5 @@
// FILE: inlined.kt
// COMMON_COROUTINES_TEST
// WITH_RUNTIME
// NO_CHECK_LAMBDA_INLINING
@@ -14,9 +15,10 @@ suspend inline fun crossinlineMe(crossinline c: suspend () -> Unit) {
}
// FILE: inlineSite.kt
// COMMON_COROUTINES_TEST
import kotlin.coroutines.experimental.*
import kotlin.coroutines.experimental.intrinsics.*
import COROUTINES_PACKAGE.*
import COROUTINES_PACKAGE.intrinsics.*
fun builder(c: suspend () -> Unit) {
c.startCoroutine(object: Continuation<Unit> {
@@ -1,4 +1,5 @@
// FILE: inlined.kt
// COMMON_COROUTINES_TEST
// WITH_RUNTIME
// NO_CHECK_LAMBDA_INLINING
@@ -16,9 +17,10 @@ suspend inline fun crossinlineMe(crossinline c: suspend () -> Unit) {
}
// FILE: inlineSite.kt
// COMMON_COROUTINES_TEST
import kotlin.coroutines.experimental.*
import kotlin.coroutines.experimental.intrinsics.*
import COROUTINES_PACKAGE.*
import COROUTINES_PACKAGE.intrinsics.*
fun builder(c: suspend () -> Unit) {
c.startCoroutine(object: Continuation<Unit> {
@@ -1,4 +1,5 @@
// FILE: inlined.kt
// COMMON_COROUTINES_TEST
// WITH_RUNTIME
// NO_CHECK_LAMBDA_INLINING
@@ -21,9 +22,10 @@ suspend inline fun crossinlineMe(crossinline c: suspend () -> Unit) {
}
// FILE: inlineSite.kt
// COMMON_COROUTINES_TEST
import kotlin.coroutines.experimental.*
import kotlin.coroutines.experimental.intrinsics.*
import COROUTINES_PACKAGE.*
import COROUTINES_PACKAGE.intrinsics.*
fun builder(c: suspend () -> Unit) {
c.startCoroutine(object: Continuation<Unit> {
@@ -1,4 +1,5 @@
// FILE: inlined.kt
// COMMON_COROUTINES_TEST
// WITH_RUNTIME
// NO_CHECK_LAMBDA_INLINING
@@ -21,9 +22,10 @@ suspend inline fun crossinlineMe(crossinline c1: suspend () -> Unit, crossinline
}
// FILE: inlineSite.kt
// COMMON_COROUTINES_TEST
import kotlin.coroutines.experimental.*
import kotlin.coroutines.experimental.intrinsics.*
import COROUTINES_PACKAGE.*
import COROUTINES_PACKAGE.intrinsics.*
fun builder(c: suspend () -> Unit) {
c.startCoroutine(object: Continuation<Unit> {
@@ -1,8 +1,9 @@
// FILE: inlined.kt
// COMMON_COROUTINES_TEST
// WITH_RUNTIME
// NO_CHECK_LAMBDA_INLINING
import kotlin.coroutines.experimental.intrinsics.*
import COROUTINES_PACKAGE.intrinsics.*
var i = 0;
@@ -29,8 +30,9 @@ suspend inline fun crossinlineMe(crossinline c: suspend () -> Unit) {
}
// FILE: inlineSite.kt
// COMMON_COROUTINES_TEST
import kotlin.coroutines.experimental.*
import COROUTINES_PACKAGE.*
fun builder(c: suspend () -> Unit) {
c.startCoroutine(object: Continuation<Unit> {
@@ -1,4 +1,5 @@
// FILE: inlined.kt
// COMMON_COROUTINES_TEST
// WITH_RUNTIME
// NO_CHECK_LAMBDA_INLINING
@@ -8,9 +9,10 @@ suspend inline fun crossinlineMe(crossinline c: suspend () -> Unit) {
}
// FILE: inlineSite.kt
// COMMON_COROUTINES_TEST
import kotlin.coroutines.experimental.*
import kotlin.coroutines.experimental.intrinsics.*
import COROUTINES_PACKAGE.*
import COROUTINES_PACKAGE.intrinsics.*
fun builder(c: suspend () -> Unit) {
c.startCoroutine(object: Continuation<Unit> {
@@ -1,4 +1,5 @@
// FILE: inlined.kt
// COMMON_COROUTINES_TEST
// WITH_RUNTIME
// NO_CHECK_LAMBDA_INLINING
@@ -12,9 +13,10 @@ suspend inline fun crossinlineMe2(crossinline c: suspend () -> Unit) {
}
// FILE: inlineSite.kt
// COMMON_COROUTINES_TEST
import kotlin.coroutines.experimental.*
import kotlin.coroutines.experimental.intrinsics.*
import COROUTINES_PACKAGE.*
import COROUTINES_PACKAGE.intrinsics.*
var result = "FAIL"
var i = 0
@@ -1,4 +1,5 @@
// FILE: inlined.kt
// COMMON_COROUTINES_TEST
// WITH_RUNTIME
// NO_CHECK_LAMBDA_INLINING
@@ -15,8 +16,9 @@ suspend inline fun crossinlineMe(crossinline c: suspend (String) -> String, cros
}
// FILE: inlineSite.kt
// COMMON_COROUTINES_TEST
import kotlin.coroutines.experimental.*
import COROUTINES_PACKAGE.*
fun builder(c: suspend () -> Unit) {
c.startCoroutine(object: Continuation<Unit> {