-
Notifications
You must be signed in to change notification settings - Fork 56
/
build.gradle.kts
85 lines (74 loc) · 2.48 KB
/
build.gradle.kts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
/*
* Copyright 2017-2023 JetBrains s.r.o. and respective authors and developers.
* Use of this source code is governed by the Apache 2.0 license that can be found in the LICENCE file.
*/
import org.gradle.internal.os.OperatingSystem
import org.jetbrains.kotlin.gradle.targets.js.dsl.ExperimentalWasmDsl
plugins {
id("kotlinx-io-multiplatform")
id("kotlinx-io-publish")
id("kotlinx-io-dokka")
id("kotlinx-io-android-compat")
alias(libs.plugins.kover)
}
kotlin {
js {
nodejs {
testTask {
useMocha {
timeout = "300s"
}
}
}
browser {
testTask {
useMocha {
timeout = "300s"
}
}
}
}
@OptIn(ExperimentalWasmDsl::class)
wasmWasi {
nodejs {
testTask {
// fd_readdir is unsupported on Windows:
// https://github.com/nodejs/node/blob/6f4d6011ea1b448cf21f5d363c44e4a4c56ca34c/deps/uvwasi/src/uvwasi.c#L19
if (OperatingSystem.current().isWindows) {
filter.setExcludePatterns("*SmokeFileTest.listDirectory")
}
}
}
}
sourceSets {
commonMain.dependencies {
api(project(":kotlinx-io-bytestring"))
}
appleTest.dependencies {
implementation(libs.kotlinx.coroutines.core)
}
}
}
tasks.named("wasmWasiNodeTest") {
// TODO: remove once https://youtrack.jetbrains.com/issue/KT-65179 solved
doFirst {
val layout = project.layout
val templateFile = layout.projectDirectory.file("wasmWasi/test/test-driver.mjs.template").asFile
val driverFile = layout.buildDirectory.file(
"compileSync/wasmWasi/test/testDevelopmentExecutable/kotlin/kotlinx-io-kotlinx-io-core-wasm-wasi-test.mjs"
)
fun File.mkdirsAndEscape(): String {
mkdirs()
return absolutePath.replace("\\", "\\\\")
}
val tmpDir = temporaryDir.resolve("kotlinx-io-core-wasi-test").mkdirsAndEscape()
val tmpDir2 = temporaryDir.resolve("kotlinx-io-core-wasi-test-2").mkdirsAndEscape()
val newDriver = templateFile.readText()
.replace("<SYSTEM_TEMP_DIR>", tmpDir, false)
.replace("<SYSTEM_TEMP_DIR2>", tmpDir2, false)
driverFile.get().asFile.writeText(newDriver)
}
}
animalsniffer {
annotation = "kotlinx.io.files.AnimalSnifferIgnore"
}