From 86e221ed58b716b3e6fc6b179e5666f2dd6b4b05 Mon Sep 17 00:00:00 2001 From: Igor Chevdar Date: Tue, 5 Dec 2017 18:08:51 +0300 Subject: [PATCH] Added tests on workers's bridges --- backend.native/tests/build.gradle | 24 +++++++++++++++++++ .../tests/runtime/workers/worker4.kt | 17 +++++++++++++ .../tests/runtime/workers/worker5.kt | 17 +++++++++++++ .../tests/runtime/workers/worker6.kt | 17 +++++++++++++ .../tests/runtime/workers/worker7.kt | 17 +++++++++++++ 5 files changed, 92 insertions(+) create mode 100644 backend.native/tests/runtime/workers/worker4.kt create mode 100644 backend.native/tests/runtime/workers/worker5.kt create mode 100644 backend.native/tests/runtime/workers/worker6.kt create mode 100644 backend.native/tests/runtime/workers/worker7.kt 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