diff --git a/backend.native/tests/build.gradle b/backend.native/tests/build.gradle index e1d2d02c277..9141d72f6d6 100644 --- a/backend.native/tests/build.gradle +++ b/backend.native/tests/build.gradle @@ -564,6 +564,30 @@ task worker3(type: RunKonanTest) { source = "runtime/workers/worker3.kt" } +task worker4(type: RunKonanTest) { + disabled = (project.testTarget == 'wasm32') // Workers need pthreads. + goldValue = "Got 42\nOK\n" + source = "runtime/workers/worker4.kt" +} + +task worker5(type: RunKonanTest) { + disabled = (project.testTarget == 'wasm32') // Workers need pthreads. + goldValue = "Got 3\nOK\n" + source = "runtime/workers/worker5.kt" +} + +task worker6(type: RunKonanTest) { + disabled = (project.testTarget == 'wasm32') // Workers need pthreads. + goldValue = "Got 42\nOK\n" + source = "runtime/workers/worker6.kt" +} + +task worker7(type: RunKonanTest) { + disabled = (project.testTarget == 'wasm32') // Workers need pthreads. + goldValue = "Input\nGot kotlin.Unit\nOK\n" + source = "runtime/workers/worker7.kt" +} + task superFunCall(type: RunKonanTest) { goldValue = "\n\n" source = "codegen/basics/superFunCall.kt" diff --git a/backend.native/tests/runtime/workers/worker4.kt b/backend.native/tests/runtime/workers/worker4.kt new file mode 100644 index 00000000000..0855d8975d8 --- /dev/null +++ b/backend.native/tests/runtime/workers/worker4.kt @@ -0,0 +1,17 @@ +package runtime.workers.worker4 + +import kotlin.test.* + +import konan.worker.* + +@Test fun runTest() { + val worker = startWorker() + val future = worker.schedule(TransferMode.CHECKED, { 41 }) { + input -> input + 1 + } + future.consume { + result -> println("Got $result") + } + worker.requestTermination().consume { _ -> } + println("OK") +} \ No newline at end of file diff --git a/backend.native/tests/runtime/workers/worker5.kt b/backend.native/tests/runtime/workers/worker5.kt new file mode 100644 index 00000000000..a1d8cdd6de1 --- /dev/null +++ b/backend.native/tests/runtime/workers/worker5.kt @@ -0,0 +1,17 @@ +package runtime.workers.worker5 + +import kotlin.test.* + +import konan.worker.* + +@Test fun runTest() { + val worker = startWorker() + val future = worker.schedule(TransferMode.CHECKED, { "zzz".shallowCopy() }) { + input -> input.length + } + future.consume { + result -> println("Got $result") + } + worker.requestTermination().consume { _ -> } + println("OK") +} \ No newline at end of file diff --git a/backend.native/tests/runtime/workers/worker6.kt b/backend.native/tests/runtime/workers/worker6.kt new file mode 100644 index 00000000000..6219b8e5e90 --- /dev/null +++ b/backend.native/tests/runtime/workers/worker6.kt @@ -0,0 +1,17 @@ +package runtime.workers.worker6 + +import kotlin.test.* + +import konan.worker.* + +@Test fun runTest() { + val worker = startWorker() + val future = worker.schedule(TransferMode.CHECKED, { 42 }) { + input -> input.toString() + } + future.consume { + result -> println("Got $result") + } + worker.requestTermination().consume { _ -> } + println("OK") +} \ No newline at end of file diff --git a/backend.native/tests/runtime/workers/worker7.kt b/backend.native/tests/runtime/workers/worker7.kt new file mode 100644 index 00000000000..18b520c9642 --- /dev/null +++ b/backend.native/tests/runtime/workers/worker7.kt @@ -0,0 +1,17 @@ +package runtime.workers.worker7 + +import kotlin.test.* + +import konan.worker.* + +@Test fun runTest() { + val worker = startWorker() + val future = worker.schedule(TransferMode.CHECKED, { "Input".shallowCopy() }) { + input -> println(input) + } + future.consume { + result -> println("Got $result") + } + worker.requestTermination().consume { _ -> } + println("OK") +} \ No newline at end of file