aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--build.gradle.kts19
-rw-r--r--src/gametest/kotlin/moe/nea/firmament/gametest/GameTest.kt24
-rw-r--r--src/gametest/resources/fabric.mod.json14
-rw-r--r--src/test/kotlin/MixinTest.kt13
4 files changed, 57 insertions, 13 deletions
diff --git a/build.gradle.kts b/build.gradle.kts
index cf08323..aad2b5b 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -17,6 +17,7 @@ import net.fabricmc.loom.LoomGradleExtension
import org.apache.tools.ant.taskdefs.condition.Os
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
+import org.jetbrains.kotlin.gradle.utils.extendsFrom
import java.nio.charset.StandardCharsets
import java.util.*
@@ -27,7 +28,7 @@ plugins {
alias(libs.plugins.kotlin.plugin.serialization)
alias(libs.plugins.kotlin.plugin.powerassert)
alias(libs.plugins.kotlin.plugin.ksp)
- alias(libs.plugins.loom)
+ alias(libs.plugins.loom)
alias(libs.plugins.shadow) apply false
id("firmament.common")
id("firmament.license-management")
@@ -182,6 +183,17 @@ val testAgent by configurations.creating {
isVisible = false
}
+fabricApi.configureTests {
+ createSourceSet.set(true)
+ enableClientGameTests.set(true)
+ modId.set("firmament-gametest")
+ eula.set(true)
+ username.set("CoolGuy123")
+}
+val gameTestSourceSet by sourceSets.named("gametest") {
+ configurations.named(compileClasspathConfigurationName).extendsFrom(configurations.testCompileClasspath)
+ configurations.named(runtimeClasspathConfigurationName).extendsFrom(configurations.testRuntimeClasspath)
+}
val configuredSourceSet = createIsolatedSourceSet(
"configured",
@@ -279,6 +291,8 @@ dependencies {
testImplementation("net.fabricmc:fabric-loader-junit:${libs.versions.fabric.loader.get()}")
testAgent(files(tasks.getByPath(":testagent:jar")))
+ "gametestImplementation"(sourceSets.test.map { it.output })
+
implementation(projects.symbols)
ksp(projects.symbols)
}
@@ -514,6 +528,9 @@ fun patchRenderDoc(
tasks.runClient {
javaLauncher.set(javaToolchains.launcherFor(java.toolchain).map { patchRenderDoc(it) })
}
+tasks.named("runClientGameTest") {
+ enabled = true
+}
tasks.withType<AbstractArchiveTask>().configureEach {
isPreserveFileTimestamps = false
diff --git a/src/gametest/kotlin/moe/nea/firmament/gametest/GameTest.kt b/src/gametest/kotlin/moe/nea/firmament/gametest/GameTest.kt
new file mode 100644
index 0000000..0ef0340
--- /dev/null
+++ b/src/gametest/kotlin/moe/nea/firmament/gametest/GameTest.kt
@@ -0,0 +1,24 @@
+package moe.nea.firmament.gametest
+
+import net.fabricmc.fabric.api.client.gametest.v1.FabricClientGameTest
+import net.fabricmc.fabric.api.client.gametest.v1.context.ClientGameTestContext
+import org.junit.jupiter.api.Assertions
+import org.spongepowered.asm.mixin.MixinEnvironment
+import moe.nea.firmament.init.MixinPlugin
+import moe.nea.firmament.test.FirmTestBootstrap
+
+class GameTest : FabricClientGameTest {
+ override fun runTest(ctx: ClientGameTestContext) {
+ FirmTestBootstrap.bootstrapMinecraft()
+ MixinEnvironment.getCurrentEnvironment().audit()
+ val mp = MixinPlugin.instances.single()
+ Assertions.assertEquals(
+ mp.expectedFullPathMixins,
+ mp.appliedFullPathMixins,
+ )
+ Assertions.assertNotEquals(
+ 0,
+ mp.mixins.size
+ )
+ }
+}
diff --git a/src/gametest/resources/fabric.mod.json b/src/gametest/resources/fabric.mod.json
new file mode 100644
index 0000000..fb1174d
--- /dev/null
+++ b/src/gametest/resources/fabric.mod.json
@@ -0,0 +1,14 @@
+{
+ "schemaVersion": 1,
+ "id": "firmament-gametest",
+ "version": "1.0.0",
+ "name": "Firmament Game Tests",
+ "environment": "*",
+ "entrypoints": {
+ "fabric-gametest": [
+ ],
+ "fabric-client-gametest": [
+ "moe.nea.firmament.gametest.GameTest"
+ ]
+ }
+}
diff --git a/src/test/kotlin/MixinTest.kt b/src/test/kotlin/MixinTest.kt
index 55aa7c2..37d79c6 100644
--- a/src/test/kotlin/MixinTest.kt
+++ b/src/test/kotlin/MixinTest.kt
@@ -9,18 +9,7 @@ import moe.nea.firmament.init.MixinPlugin
class MixinTest {
@Test
fun mixinAudit() {
- FirmTestBootstrap.bootstrapMinecraft()
- MixinEnvironment.getCurrentEnvironment().audit()
- val mp = MixinPlugin.instances.single()
- Assertions.assertEquals(
- mp.expectedFullPathMixins,
- mp.appliedFullPathMixins,
- )
- Assertions.assertNotEquals(
- 0,
- mp.mixins.size
- )
-
+ // Moved to GameTest
}
@Test