Skip to content

Commit

Permalink
添加 TestRuntimeModules.kt
Browse files Browse the repository at this point in the history
  • Loading branch information
tangshimin committed Sep 6, 2024
1 parent d7595d9 commit 6e4b3a8
Showing 1 changed file with 36 additions and 0 deletions.
36 changes: 36 additions & 0 deletions src/test/kotlin/util/TestRuntimeModules.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
package util

import org.junit.Test
import player.isWindows
import java.io.File

/**
* 有时候增加了一些代码,本地运行没有问题,但是打包后运行时会出现一些问题,比如找不到类,这时候可能是因为没有包含某些模块。
* 这个测试用例会输出需要包含的模块, 如果模块不匹配,就修改 `build.gradle.kts` 中的 `nativeDistributions`
*/
class TestRuntimeModules {

@Test
fun `Test Native Distribution Modules`() {
val workDir = File("").absolutePath
val task = "gradlew suggestRuntimeModules"
val command = mutableListOf<String>()
if(isWindows()){
command.add("cmd")
command.add("/c")
}
command.add(task)

val processBuilder = ProcessBuilder(command)
processBuilder.directory(File(workDir))
val process = processBuilder.start()
val output = process.inputStream.bufferedReader().readText()
process.waitFor()

assert(output.contains("Suggested runtime modules to include:"))
val expectModules = "modules(\"java.compiler\", \"java.instrument\", \"java.management\", \"java.prefs\", \"java.security.jgss\", \"java.sql\", \"java.xml.crypto\", \"jdk.unsupported\")"
assert(output.contains(expectModules)) { "Expect $expectModules in output" }
println("Output:\n$output")
}
}

0 comments on commit 6e4b3a8

Please sign in to comment.