Problem with 1.9.23 KMP version. It's been fixed in 2.0 so it needs to be updated

This commit is contained in:
Maria Chernova 2024-12-28 00:23:46 +03:00 committed by kildishevps
parent bd83e9aee0
commit 59f2d77890
11 changed files with 132 additions and 34 deletions

View File

@ -47,7 +47,7 @@ kotlin {
browser {
testTask {
useKarma {
useChromeHeadless()
useChrome()
}
}
}

View File

@ -306,7 +306,7 @@ kotlin {
implementation(Deps.Common.coroutines)
// implementation("org.jetbrains.kotlinx:kotlinx-coroutines-test:1.9.0")
// implementation(kotlin("test"))
implementation(kotlin("test"))
// implementation(kotlin("test-junit"))
}
}
@ -333,6 +333,24 @@ kotlin {
}
}
// TODO: это скопипасчено с блока runningOnLinuxx86_64 (примерно 590 строка)
val wasmJsMain by getting {
dependencies {
// implementation(kotlin(Deps.wasmJs.stdLib))
implementation(npm(Deps.wasmJs.Npm.libsodiumWrappers.first, Deps.wasmJs.Npm.libsodiumWrappers.second))
}
}
val wasmJsTest by getting {
dependencies {
dependsOn(commonTest)
implementation(npm(Deps.wasmJs.Npm.libsodiumWrappers.first, Deps.wasmJs.Npm.libsodiumWrappers.second))
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-test:1.9.0")
implementation(kotlin("test"))
}
}
//Set up shared source sets
//linux, linuxArm32Hfp, linuxArm64
val linux64Bit = setOf(
@ -572,25 +590,6 @@ kotlin {
runningOnLinuxx86_64 {
println("Configuring Linux 64 Bit source sets")
val wasmJsMain by getting {
// TODO: разобраться (и с test)
dependencies {
// implementation(kotlin(Deps.wasmJs.stdLib))
implementation(npm(Deps.wasmJs.Npm.libsodiumWrappers.first, Deps.wasmJs.Npm.libsodiumWrappers.second))
}
}
val wasmJsTest by getting {
dependencies {
// implementation(kotlin(Deps.wasmJs.test))
implementation(npm(Deps.wasmJs.Npm.libsodiumWrappers.first, Deps.wasmJs.Npm.libsodiumWrappers.second))
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-test:1.9.0")
// implementation("kotlinx-coroutines-test")
implementation(kotlin("test"))
implementation(kotlin("test-junit"))
}
}
val jsMain by getting {
dependencies {
implementation(kotlin(Deps.Js.stdLib))
@ -742,12 +741,12 @@ tasks {
// }
// TODO: ваще не жс тест, помогите
// val wasmJsBrowserTest by getting(KotlinJsTest::class) {
// testLogging {
// events("PASSED", "FAILED", "SKIPPED")
// showStandardStreams = true
// }
// }
val wasmJsBrowserTest by getting(KotlinJsTest::class) {
testLogging {
events("PASSED", "FAILED", "SKIPPED")
showStandardStreams = true
}
}
val jsBrowserTest by getting(KotlinJsTest::class) {
testLogging {

View File

@ -17,6 +17,7 @@ class SmokeTest {
//TODO Browser ignores our testBlocking, node works fine though
@Test
fun testIfLibraryIsNotOnFire() {
throw Exception("aoaoao")
testBlocking {
LibsodiumInitializer.initialize()
val hashResult = GenericHash.genericHash("Hello".encodeToUByteArray(), 64)

View File

@ -0,0 +1,11 @@
//package com.ionspin.kotlin.crypto.debug
import kotlin.test.Test
import kotlin.test.assertEquals
class TestTest {
@Test
fun wasmSymbolsTest() {
assertEquals(42, 42)
}
}

View File

@ -4,8 +4,8 @@ import kotlin.test.Test
import kotlin.test.assertEquals
class WasmSymbolsTest {
// @Test
// fun wasmSymbolsTest() {
// assertEquals(42, 42)
// }
@Test
fun wasmSymbolsTest() {
assertEquals(42, 42)
}
}

17
package-lock.json generated Normal file
View File

@ -0,0 +1,17 @@
{
"name": "kotlin-multiplatform-libsodium",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"dependencies": {
"libsodium-sumo": "^0.7.15"
}
},
"node_modules/libsodium-sumo": {
"version": "0.7.15",
"resolved": "https://registry.npmjs.org/libsodium-sumo/-/libsodium-sumo-0.7.15.tgz",
"integrity": "sha512-5tPmqPmq8T8Nikpm1Nqj0hBHvsLFCXvdhBFV7SGOitQPZAA6jso8XoL0r4L7vmfKXr486fiQInvErHtEvizFMw=="
}
}
}

View File

@ -17,9 +17,9 @@
@file:Suppress("UnstableApiUsage")
import org.jetbrains.kotlin.gradle.targets.js.testing.KotlinJsTest
import org.jetbrains.kotlin.gradle.targets.native.tasks.KotlinNativeTest
import org.gradle.api.tasks.testing.logging.TestExceptionFormat
import org.jetbrains.kotlin.gradle.targets.js.dsl.ExperimentalWasmDsl
import org.jetbrains.kotlin.gradle.targets.native.tasks.KotlinNativeTest
import org.jetbrains.kotlin.gradle.tasks.FatFrameworkTask
plugins {
@ -82,6 +82,36 @@ kotlin {
}
@OptIn(ExperimentalWasmDsl::class)
wasmJs {
browser {
webpackTask {
}
testTask {
useKarma {
useChrome()
}
}
}
binaries.executable()
// browser {
// val rootDirPath = project.rootDir.path
// val projectDirPath = project.projectDir.path
// commonWebpackConfig {
// outputFileName = "composeApp.js"
// devServer = (devServer ?: KotlinWebpackConfig.DevServer()).apply {
//// static = (static ?: mutableListOf()).apply {
//// // Serve sources to debug inside browser
//// add(rootDirPath)
//// add(projectDirPath)
//// }
// }
// }
// }
// binaries.executable()
}
linuxX64("linux") {
binaries {
@ -207,6 +237,22 @@ kotlin {
}
}
val wasmJsMain by getting {
dependencies {
// implementation(kotlin(Deps.wasmJs.stdLib))
implementation(npm(Deps.wasmJs.Npm.libsodiumWrappers.first, Deps.wasmJs.Npm.libsodiumWrappers.second))
}
}
val wasmJsTest by getting {
dependencies {
dependsOn(commonTest)
implementation(npm(Deps.wasmJs.Npm.libsodiumWrappers.first, Deps.wasmJs.Npm.libsodiumWrappers.second))
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-test:1.9.0")
implementation(kotlin("test"))
}
}
// val nativeMain by creating {

View File

@ -0,0 +1,12 @@
import com.ionspin.kotlin.crypto.LibsodiumInitializer
fun main() {
LibsodiumInitializer.initializeWithCallback {
// val hash = Hash.sha512("123".encodeToUByteArray())
// println("Hash (SHA512) of 123: ${hash.toHexString()}")
println("Hello")
}
}

View File

@ -0,0 +1,12 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Libsodium bindings sample app!</title>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">
</head>
<body>
<div id="root"></div>
<script src="sample.js"></script>
</body>
</html>