From 8e295feb4638eee0987f9c56243039861399f225 Mon Sep 17 00:00:00 2001 From: Ugljesa Jovanovic Date: Tue, 9 Feb 2021 14:41:08 +0100 Subject: [PATCH] At least IR browseer tests can now be run --- buildSrc/src/main/kotlin/Deps.kt | 2 +- gradle.properties | 1 - multiplatform-crypto-api/build.gradle.kts | 14 +++++++------- .../build.gradle.kts | 18 ++++++++++++++++-- .../com/ionspin/kotlin/crypto/hash/HashTest.kt | 9 +++++---- .../com/ionspin/kotlin/crypto/util/TestUtil.kt | 3 +++ .../ionspin/kotlin/crypto/debug/DebugTest.kt | 9 +++++++++ .../com/ionspin/kotlin/crypto/util/runTest.kt | 7 +++++++ .../com/ionspin/kotlin/crypto/util/runTest.kt | 7 +++++++ .../com/ionspin/kotlin/crypto/util/TestUtil.kt | 7 +++++++ 10 files changed, 62 insertions(+), 15 deletions(-) create mode 100644 multiplatform-crypto-libsodium-bindings/src/jsTest/kotlin/com/ionspin/kotlin/crypto/debug/DebugTest.kt create mode 100644 multiplatform-crypto-libsodium-bindings/src/jsTest/kotlin/com/ionspin/kotlin/crypto/util/runTest.kt create mode 100644 multiplatform-crypto-libsodium-bindings/src/jvmTest/kotlin/com/ionspin/kotlin/crypto/util/runTest.kt create mode 100644 multiplatform-crypto-libsodium-bindings/src/nativeTest/kotlin/com/ionspin/kotlin/crypto/util/TestUtil.kt diff --git a/buildSrc/src/main/kotlin/Deps.kt b/buildSrc/src/main/kotlin/Deps.kt index 5eec6a7..8198cec 100644 --- a/buildSrc/src/main/kotlin/Deps.kt +++ b/buildSrc/src/main/kotlin/Deps.kt @@ -48,7 +48,7 @@ object Deps { val stdLib = "stdlib-common" val test = "test-common" val testAnnotation = "test-annotations-common" - val coroutines = "org.jetbrains.kotlinx:kotlinx-coroutines-core-common:${Versions.kotlinCoroutines}" + val coroutines = "org.jetbrains.kotlinx:kotlinx-coroutines-core:${Versions.kotlinCoroutines}" val serialization = "org.jetbrains.kotlinx:kotlinx-serialization-json:${Versions.kotlinSerialization}" val atomicfu = "com.ionspin.kotlin.atomicfu:atomicfu:${Versions.atomicfu}" diff --git a/gradle.properties b/gradle.properties index 51da301..7f02a10 100644 --- a/gradle.properties +++ b/gradle.properties @@ -17,7 +17,6 @@ org.gradle.parallel=true kotlin.code.style=official -kotlin.js.compiler=ir #kotlin.js.experimental.generateKotlinExternals=true #kotlin.mpp.enableGranularSourceSetsMetadata=true kotlin.native.disableCompilerDaemon=true diff --git a/multiplatform-crypto-api/build.gradle.kts b/multiplatform-crypto-api/build.gradle.kts index 30299cc..7eb6f8c 100644 --- a/multiplatform-crypto-api/build.gradle.kts +++ b/multiplatform-crypto-api/build.gradle.kts @@ -44,7 +44,7 @@ kotlin { val hostOsName = getHostOsName() runningOnLinuxx86_64 { jvm() - js { + js() { browser { testTask { enabled = false //Until I sort out testing on travis @@ -284,12 +284,12 @@ tasks { } } - val jsNodeTest by getting(KotlinJsTest::class) { - testLogging { - events("PASSED", "FAILED", "SKIPPED") - showStandardStreams = true - } - } +// val jsNodeTest by getting(KotlinJsTest::class) { +// testLogging { +// events("PASSED", "FAILED", "SKIPPED") +// showStandardStreams = true +// } +// } // val legacyjsNodeTest by getting(KotlinJsTest::class) { // diff --git a/multiplatform-crypto-libsodium-bindings/build.gradle.kts b/multiplatform-crypto-libsodium-bindings/build.gradle.kts index 4cb2428..11163a1 100644 --- a/multiplatform-crypto-libsodium-bindings/build.gradle.kts +++ b/multiplatform-crypto-libsodium-bindings/build.gradle.kts @@ -83,7 +83,7 @@ kotlin { runningOnLinuxx86_64 { println("Configuring Linux X86-64 targets") jvm() - js { + js(IR) { browser { testTask { isRunningInGitlabCi { @@ -258,6 +258,7 @@ kotlin { dependencies { implementation(kotlin(Deps.Common.test)) implementation(kotlin(Deps.Common.testAnnotation)) + implementation(Deps.Common.coroutines) } } @@ -627,7 +628,6 @@ tasks { showStackTraces = true } } - val jsNodeTest by getting(KotlinJsTest::class) { testLogging { events("PASSED", "FAILED", "SKIPPED") @@ -653,6 +653,20 @@ tasks { showStandardStreams = true } } + +// val jsLegacyBrowserTest by getting(KotlinJsTest::class) { +// testLogging { +// events("PASSED", "FAILED", "SKIPPED") +// showStandardStreams = true +// } +// } +// +// val jsIrBrowserTest by getting(KotlinJsTest::class) { +// testLogging { +// events("PASSED", "FAILED", "SKIPPED") +// showStandardStreams = true +// } +// } } if (getHostOsName() == "windows") { diff --git a/multiplatform-crypto-libsodium-bindings/src/commonTest/kotlin/com/ionspin/kotlin/crypto/hash/HashTest.kt b/multiplatform-crypto-libsodium-bindings/src/commonTest/kotlin/com/ionspin/kotlin/crypto/hash/HashTest.kt index 70800e3..86dc9c6 100644 --- a/multiplatform-crypto-libsodium-bindings/src/commonTest/kotlin/com/ionspin/kotlin/crypto/hash/HashTest.kt +++ b/multiplatform-crypto-libsodium-bindings/src/commonTest/kotlin/com/ionspin/kotlin/crypto/hash/HashTest.kt @@ -3,6 +3,7 @@ package com.ionspin.kotlin.crypto.hash import com.ionspin.kotlin.crypto.LibsodiumInitializer import com.ionspin.kotlin.crypto.util.encodeToUByteArray import com.ionspin.kotlin.crypto.util.hexStringToUByteArray +import com.ionspin.kotlin.crypto.util.runTest import com.ionspin.kotlin.crypto.util.toHexString import kotlin.test.Test import kotlin.test.assertTrue @@ -31,8 +32,8 @@ class HashTest { @Test - fun hashTestSha256() { - LibsodiumInitializer.initializeWithCallback { + fun hashTestSha256() = runTest { + LibsodiumInitializer.initialize() val input = ("Input for various hash functions").encodeToUByteArray() val expected = ("2bb078ec5993b5428355ba49bf030b1ac7" + "1519e635aebc2f28124fac2aef9264").hexStringToUByteArray() @@ -48,12 +49,12 @@ class HashTest { assertTrue { multipartResult.contentEquals(expected) } - } + } @Test - fun hashTestSha512() { + fun hashTestSha512() = runTest { LibsodiumInitializer.initializeWithCallback { val input = ("Input for various hash functions").encodeToUByteArray() val expected = ("34fcbcdcfe9e6aa3e6d5a64649afcfafb449c4b8435a65e5e7b7c2b6af3b04da350acee" + diff --git a/multiplatform-crypto-libsodium-bindings/src/commonTest/kotlin/com/ionspin/kotlin/crypto/util/TestUtil.kt b/multiplatform-crypto-libsodium-bindings/src/commonTest/kotlin/com/ionspin/kotlin/crypto/util/TestUtil.kt index 6358a90..1f28e02 100644 --- a/multiplatform-crypto-libsodium-bindings/src/commonTest/kotlin/com/ionspin/kotlin/crypto/util/TestUtil.kt +++ b/multiplatform-crypto-libsodium-bindings/src/commonTest/kotlin/com/ionspin/kotlin/crypto/util/TestUtil.kt @@ -16,6 +16,7 @@ package com.ionspin.kotlin.crypto.util +import kotlinx.coroutines.CoroutineScope import kotlin.coroutines.Continuation import kotlin.coroutines.EmptyCoroutineContext import kotlin.coroutines.startCoroutine @@ -35,4 +36,6 @@ fun testBlocking(block : suspend () -> Unit) { block.startCoroutine(continuation) } +expect fun runTest(block: suspend (scope : CoroutineScope) -> Unit) + diff --git a/multiplatform-crypto-libsodium-bindings/src/jsTest/kotlin/com/ionspin/kotlin/crypto/debug/DebugTest.kt b/multiplatform-crypto-libsodium-bindings/src/jsTest/kotlin/com/ionspin/kotlin/crypto/debug/DebugTest.kt new file mode 100644 index 0000000..9c23968 --- /dev/null +++ b/multiplatform-crypto-libsodium-bindings/src/jsTest/kotlin/com/ionspin/kotlin/crypto/debug/DebugTest.kt @@ -0,0 +1,9 @@ +package com.ionspin.kotlin.crypto.debug + +/** + * Created by Ugljesa Jovanovic + * ugljesa.jovanovic@ionspin.com + * on 08-Feb-2021 + */ +class DebugTest { +} diff --git a/multiplatform-crypto-libsodium-bindings/src/jsTest/kotlin/com/ionspin/kotlin/crypto/util/runTest.kt b/multiplatform-crypto-libsodium-bindings/src/jsTest/kotlin/com/ionspin/kotlin/crypto/util/runTest.kt new file mode 100644 index 0000000..3308acc --- /dev/null +++ b/multiplatform-crypto-libsodium-bindings/src/jsTest/kotlin/com/ionspin/kotlin/crypto/util/runTest.kt @@ -0,0 +1,7 @@ +package com.ionspin.kotlin.crypto.util + +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.GlobalScope +import kotlinx.coroutines.promise + +actual fun runTest(block: suspend (scope : CoroutineScope) -> Unit): dynamic = GlobalScope.promise { block(this) } diff --git a/multiplatform-crypto-libsodium-bindings/src/jvmTest/kotlin/com/ionspin/kotlin/crypto/util/runTest.kt b/multiplatform-crypto-libsodium-bindings/src/jvmTest/kotlin/com/ionspin/kotlin/crypto/util/runTest.kt new file mode 100644 index 0000000..1bfc4a2 --- /dev/null +++ b/multiplatform-crypto-libsodium-bindings/src/jvmTest/kotlin/com/ionspin/kotlin/crypto/util/runTest.kt @@ -0,0 +1,7 @@ +package com.ionspin.kotlin.crypto.util + +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.runBlocking + +actual fun runTest(block: suspend (scope : CoroutineScope) -> Unit) = runBlocking { block(this) } + diff --git a/multiplatform-crypto-libsodium-bindings/src/nativeTest/kotlin/com/ionspin/kotlin/crypto/util/TestUtil.kt b/multiplatform-crypto-libsodium-bindings/src/nativeTest/kotlin/com/ionspin/kotlin/crypto/util/TestUtil.kt new file mode 100644 index 0000000..1bfc4a2 --- /dev/null +++ b/multiplatform-crypto-libsodium-bindings/src/nativeTest/kotlin/com/ionspin/kotlin/crypto/util/TestUtil.kt @@ -0,0 +1,7 @@ +package com.ionspin.kotlin.crypto.util + +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.runBlocking + +actual fun runTest(block: suspend (scope : CoroutineScope) -> Unit) = runBlocking { block(this) } +