test: Use kotest
This commit is contained in:
32
src/main/kotlin/util/JvmUtil.kt
Normal file
32
src/main/kotlin/util/JvmUtil.kt
Normal file
@@ -0,0 +1,32 @@
|
||||
package moe.nea.firmament.util
|
||||
|
||||
import com.sun.tools.attach.VirtualMachine
|
||||
import java.lang.management.ManagementFactory
|
||||
import java.nio.file.Path
|
||||
import kotlin.io.path.absolutePathString
|
||||
|
||||
object JvmUtil {
|
||||
fun guessJVMPid(): String {
|
||||
val name = ManagementFactory.getRuntimeMXBean().name
|
||||
val pid = name.substringBefore('@')
|
||||
ErrorUtil.softCheck("Not a valid PID: $pid", pid.toIntOrNull() != null)
|
||||
return pid
|
||||
}
|
||||
|
||||
fun getVM(): VirtualMachine {
|
||||
return VirtualMachine.attach(guessJVMPid())
|
||||
}
|
||||
|
||||
fun useVM(block: (VirtualMachine) -> Unit) {
|
||||
val vm = getVM()
|
||||
block(vm)
|
||||
vm.detach()
|
||||
}
|
||||
|
||||
fun loadAgent(jarPath: Path, options: String? = null) {
|
||||
useVM {
|
||||
it.loadAgent(jarPath.absolutePathString(), options)
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -105,7 +105,7 @@ object MC {
|
||||
inline val currentRegistries: RegistryWrapper.WrapperLookup? get() = world?.registryManager
|
||||
val defaultRegistries: RegistryWrapper.WrapperLookup by lazy { BuiltinRegistries.createWrapperLookup() }
|
||||
inline val currentOrDefaultRegistries get() = currentRegistries ?: defaultRegistries
|
||||
val defaultItems: RegistryWrapper.Impl<Item> = defaultRegistries.getOrThrow(RegistryKeys.ITEM)
|
||||
val defaultItems: RegistryWrapper.Impl<Item> by lazy { defaultRegistries.getOrThrow(RegistryKeys.ITEM) }
|
||||
var lastWorld: World? = null
|
||||
get() {
|
||||
field = world ?: field
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
package moe.nea.firmament.util
|
||||
|
||||
object TestUtil {
|
||||
val isInTest = Thread.currentThread().stackTrace.any { it.className.startsWith("org.junit.") }
|
||||
val isInTest =
|
||||
Thread.currentThread().stackTrace.any {
|
||||
it.className.startsWith("org.junit.") || it.className.startsWith("io.kotest.")
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user